1.基础数据类型--四类八种
整数:byte,hort,int,long
浮点型:float,double
逻辑型:boolean
字符型:char
Ps: String不属于四类八种 2.数据类型的转换
实数类型默认:int
浮点类型默认:double
byte,short,char->int->long->float->double
可以直接将int类型赋值给byte,short,char只要不超过范围
例如:byte = 128(错误)
byte,short,char之间不会互相装换,
Ps:这三者在计算时自动转换成int
例如:
byte a = 1;byte b = 2;
byte c = (byte)(a + b); 低类型->高类型:隐式转换 高类型->低类型:需要强制转换 char a = 20--可以 byte a = 20--可以 int b = 20; char a = (char)b--必须强制类型转换
3.运算符
异或^:相异为true,相同为false
逻辑与&:前后均要判断
短路与&&:前面条件可以判定全式后面就不用判断
4.-8在内存的表示 (1)8 在内存表示 :0000 1000 (2)取反: 1111 0111 (3)+1 1111 1000 --存储表示 +8 内存表示:0000 1000 存储表示:0000 1000 -8 内存表示:负数没有内存表示,只有存储表示:从+8的内存表示取反+1得到 1111 1000
事例2: int i = 257 //存储表示:0000 0000--- 0000 0000---0000 0001---0000 0001 byte b = (byte)i //因为byte类型是1个字节,8位,所以从int类型强转时,要把多余的位数去掉 //b的内存表示:0000 0001 转换存储表示,符号位是0,所以是正数 所以最后 b的值是 1 int i =- 257 //存储表示:从257 转换过来 1111 1111---1111 1111---1111 1110---1111 1111 byte b = (byte)i //去掉多余位数 1111 1111 转换存储表示,符号位是1,是负数,所以转换成 1000 0001 最后b是-1 总结:强制转换时,存储表示去掉多余位数后的二进制码,是内存表示,需要看符号位,如果是1,说明是负数,需要转换
5.任意字符异或两次还原源文 源文:0101 密钥:1111 加密:0101 ^1111 = 1010 解密:1010 ^1111 = 0101
6.int[][]这里的int指定的是第二维数组的类型,因为第一维数组里存储的都是二维数组的首地址。
7. javac -d d:\a Hello.java 将编译后的class文件存在d:\a目录下 java -classpath d:\a Hello.java 执行指定目录下的class文件 javadoc -d d:\a Hello.java 在指定目录下生成帮助文档,文档注释只能注释类和方法
8.Java编译器把源代码编译成.class文件,再由虚拟机解释成机器码
9.JDK的结构 JDK包含1.工具包,编译器等exe文件 2.JRE JRE包含1.java类库和本地程序 2.JVM
10.在100次的for循环里 int i,由于编译器的优化,内存里只有一个i,不会造成冗余,可是如果是new的话就有100个
|