基本数据类型和表达式
1. 八进制以0开头,十六进制以0x开头。
2. 科学计数法:1.23E(e)5→→→1.23*105
3. 转义序列:\’,\”,\\,\n(换行),\r(回车),\t (可用于格式化输出,控制对齐),\f(换页符),\b(退格)
4. 逻辑运算符
!, (^,&,|)→不仅是逻辑运算符也是位运算法,(&&,||)→短路运算符。
5. 位运算符
~(按位非),<<(左移)→→a<<b,a左移b位,右边补0.
>>(带符号右移)→→a>>b, a右移b位,若a的最高位为1,左边补1,否则补0.
>>>(无符号右移)→→a>>>b, a右移b位,左边补0.
注:右移运算符可用于提取二进制数串中的某些位数,eg:a=0000,0000,1100,1000;b=0000,0000,0000,1111; c=a&b,c为a的最后四位二进制数;a=a>>>4;c=a&b,c为a倒数四位二进制数。
&(按位与)、^(按位异或)(某个数两次异或运算同一个数后,其值不变,可用于加密算法)、|(按位或)、~(按位取反)(6取反为-7, -5取反为4)
6. Java 数以补码形式表示。
7. Byte(一个字节) char(两个字节) int(4个字节) short(2个字节)long(8个字节)
Double(8个字节) float(4个字节)
8. Char字符统一占两个字节,无论是否是ASCII字符。
9. 对于unicode编码,每个字符占两个字节,短字符(如‘a’)占低八位,高八位为0。
对于ANSI编码,短字符占一个字节,正数;长字符占两个字节,均用负数表示。
10. ‘\u000’~‘\uFFFF’代表Unicode字符编码。
11. Windows操作平台的换行符为\r\n linux换行符为\n
12. 变量(实例)的初始值为0或null。
13. 二元运算类型转换优先级,double、float、long、int。
14. 二元运算左面“对象”的计算高于右面“对象”的计算。
15. 对于+号运算符,若运算对象都不是字符串,则是加法运算符。
16. 浮点型数据都是不准确的
17. 对于浮点数,小数+大数更精确!
18. 注意运算符优先级,%、\都比+运算符高!
19. 应用修饰符“.”优先级高于类型转换()。
20. +=、-=...等赋值运算符自动进行强制类型转换。
21. 在计算机内部,二进制乘法与十进制乘法运算规则相同。
22. 三元运算符(?:)自动进行强制类型转换
23. 栈:局部变量
堆:对象、数组实体
共享区(方法区、数据区):静态数据、方法