第一天java学习笔记
软件:一系列按照特定顺序组织的计算机数据和指令的集合
开发:制作软件
软件实现了人与计算机之间更好的交互(图形化界面,命令行方式)
一、命令行dos命令
1、dir:列出当前目录下的文件以及文件夹
2、md:创建目录
3、rd:删除目录
4、cd:进入指定目录
5、cd..返回到上一级目录
6、del:删除文件支持*
7、exit:退出cmd命令
8、echo:输出文件可以使用管道
Java是sun(Stanford university network)1995推出的高级编程语言,面向Internet的编程语言,是简单易学,完全面向对象,安全可靠,与平台无关的编程语言,JVM(javavirutalmachine)虚拟机(跨平台)
JDK编译程序,还包含JRE,JRE只能运行已编译过的java程序(JVM)
一个java文件中可以写多个类,但编译时,生成多个class文件,main函数是程序的入口会被JVM所调用
标识符:由26个英文字母,0-9,_$,数字不可以开头,不可以使用关键字
包名:多单词组成所有字母小写xxyyzz
类名和接口名:XxxYyyZzzz
变量名和方法名:xxxYyyZzz
常量名:XXX_YYY_ZZZZ
写代码时可以先把注释写好(即实现功能的思路),在写代码
字符常量:将一个数字字母或者符号用单引号(‘’)标识
十进制到二进制原理:对十进制数进行除2运算余数倒写
6的二进制为110
二进制到十进制原理二进制乘2的过程,从2^(0)开始
110=2^2+^2^1+2^0
八进制到16进制(0X开头)
四个二进制位为一个十六进制为
90的二进制0101(5)-1010(A)十六进制0x5A
三个二进制代表一位八进制数01(1)011(3)010(2)90八进制132
负数的二进制表现形式:
6=110
-6:其实是6的二进制取反(将二进制0变1,1变0)+1
0000-00000000-00000000-00000000-0110
取反1111-11111111-11111111-11111111-1001
+11111-11111111-11111111-11111111-1010=-6
计算机中所有的数据都是以二进制来表示,一个二进制代码称为一位,记bit,以8位二进制代码为一个单元存放在一起,为一个字节(byte),一个汉字二个字符,char,short一个字节(ASCII ),int2个字节,long,float4个字节,doouble8个字节
char 在java中是2个字节 java采用unicode
负数的最高位为1
基本数据类型
数值型
整数类型(byte(8个二进制位),short(16个二进制位),int(32个二进制位),long(64个二进制位))浮点类型(默认double)(float(),doouble(8个8位))
字符型char
布尔型boolean
数据类型变量名=初始化值;
Longl=4l;
Floatf=2.3f;
低级别向高级别转换(byte,short,char,int,long,float,double)其中(byte,short,char在计算时会先转化为int型)
运算符
字符串连接用(+)
System.out.println(); // 打印后换行
转义字符(写在被转义字符的前面)
\n 换行
\b:退格
\r:回车键。Windows中回车由两个字符表示\r\n
\t:制表符,tab键
Char c ='你';
Short s =4;
s=s+5 出错
s+=5 等价于 s=(short)s+5(只做赋值运算,自动完成强制转换) 正确
逻辑运算符
^ 异或 两边相同为假,不同为真
& (无论左边是true,false右边都运算) &&(短路,当左边不成立不会对右边进行判断)
| (都运算) ||(短路,左边为真,右边不运算)
<< 3<<2 =12=3*2^(1) 0000-0000 0000-0000 0000-0000 0000-0011
左移二位0000-0000 0000-0000 0000-0000 0000-1100
>> 6>>2=1=6/(2^(2)) 6>>1=3; 最高位补什么由原有数据最高位而定
>>>(无符号运算符) 无论最高位是什么都用0补
& 6&3=2 110&011对应位1&0为0(假)1&1=1 0&1=0(010=2)
|
^
~ 取反 110=6 取反 111…11001=-7 负数先-1再取反
一个数异或同一个数二次还是原数
2*8 最有效的方式2<<3 位
Int n=2,m=8 变量变换
1、通过第三方变量
2、不用第三方变量
n=n+m; m=n-m; n=n-m; 如果n和m的值非常大,容易超出int范围
3、通过异或 n=n^m ; m=n^m; n=n^m;
将60转化为十六进制, 获取60的最低四位 num&15=12(12-10+'A'),获取下一个四位将60 右移4位 &15获取最低四位
三元运算符
(条件表达式?表达式:表达式2)
判断结构
if语句
三种格式 : if else结构可用三元运算符代替
If , else if ,….else if ,else 前面不执行才会执行下面的else if语句
选择结构
Value 只能为byte,short,int,char四种
switch(value){
case 取值1:
执行语句;
break;
case 取值2:
执行语句;
break;
case 4:
case 5:
执行语句(多个case对应一个语句)
default:
执行语句;
}
注:default(最后执行,无论放在那里,当执行了default之后,若没有停止,就不再判断是否满足default下面的case语句)
switch(3){
default:
System.out.println("a");
//Break;
case 4:
System.out.println("b");
//Break;
case 5:
System.out.println("c");
Break;
}
执行结果:abc
如果判断的具体数值不多,而是符合byte,short,int,char用switch语句效率高
JDK 7.0可判断字符串,JDK5.0后可判断枚举类型 cls dos下清屏
循环结构
While(){} 先判断条件再执行
do{} while() 先执行在判断至少执行一次
for(初始化表达式;循环条件表达式;循环后的操作表达式){执行语句}
当要对某些语句执行很多次,用循环结构
for(式1,式11;式2;式3){
执行语句
}(先执行式1,式2是真还是假,真则执行语句,再执行式3)
无限循环的最简单表现形式 for(;;) while(true){}
循环一定要注意那些语句需要参加循环
在for循环嵌套时,注意循环中语句执行的顺序
其他流程控制语句
break语句应用于选择结构和循环结构 跳出break所在的循环,标号只用于循环结构,break后面的语句也不会执行
W:for(){
for(){
break:W;
}
}
continue 用于循环结构 结束本次循环,继续下次循环,continue下面的语句不会执行
函数:定义在类中具有特定功能的一段独立程序,(方法)
函数格式:修饰符 (public ,private)返回值类型(void,int...) 函数名(参数类型 形式参数1 ...){
执行语句
Return 返回值
}
函数特点: 可以将功能代码进行封装,只有在调用时才会被执行,提高代码复用性,不可以在函数内部定义函数(main函数)
函数重载:与参数类型不同,及参数个数不同有关和返回值无关
数组:同一种数据类型的集合,等价于一个容器
数组好处:自动给存入的元素编号
格式1 元素类型 [ ] 数组名 = new 元素类型[元素的长度]
内存结构:栈内存stack (数据使用完毕会自动释放,存放局部变量),堆内存heap(new出来的对象,java垃圾回收器定期清除垃圾)