3.1 字面量:包括整型,实型,字符,字符串,布尔,null
整形:
除非后面有个l或L,一般总是int类型
除非是0x,0,0b开头,一般总是十进制
无论什么进制,中间都可以有_,无意义,只是看的更清楚
如果是int,最大的十进制是2^31
而其他进制最大是2^31-1=0b0111_1111_1111_1111_1111_1111_1111_1111
所有进制的最小值都是-2^31=0b1000_0000_0000_0000_0000_0000_0000_0000
超过范围的字面量会编译错误
long同理
实型:
可以是十进制或16进制,十进制幂是e或E,16进制幂是p或P
除非后面有个f或F,一般总是double
无论什么进制,中间都可以有_,无意义,只是看的更清楚
字符串字面量:
字符串字面量中不能有换行符,可以用+连接
两个字符串字面量连接后还是一个字符串字面量
相等的字符串字面量总是引用同一个String对象
+中如果有一个不是编译时常量,则会新建一个String对象
"hello"=="hel"+"lo"; 总是为true//编译时处理
String lo="lo";"hello"=="hel"+lo; 为false//运行时处理
String lo="lo";"hello"==("hel"+lo).intern(); 为true//显式内联
4.2 原始类型:
整型的运算,有long则结果是long,没有long则结果是int,但移位除外
整型不能转换为boolean
实型的运算,有double则结果是double,没有double则结果是float
如果位运算时有一个是浮点,结果就是浮点
实型也不能转换为boolean
当浮点转成整型时,是向0取整
boolean可以有位操作,但不会短路
true&true 真
true^false 真
false|false 假
+在遇到String和整型,实型时,首先转为十进制,然后变成字符串,然后连接成新的字符串
true会变成"true"
引用类型:类(枚举),接口,泛型,数组(String)
转为String时,引用类型为null,会变成"null",否则调用toString()
6.1 规范的命名
类和接口:
应该是有意义的名词或名词短语,每个头字母大写,如 BufferedInputStream
接口也可以是形容词,描述一种动作,如Runnable
方法:
应该是动词或动词短语,首字母小写,以后每个单词首字母大写,如 printMessage()
特殊的如 getXX(),isXX()和setXX(),length(),toString()
字段:
应该是名词或名词短语
非final的首字母小写,以后每个单词首字母大写,如 myBook
final的,全部大写,用_连接,如 MAX_VALUE
视情况可以加统一前缀,如 PS_A, PS_B
局部变量,形参:
通常都很短,能看懂就行,如 cp, out, a ,b