一、標(biāo)識符
由字母數(shù)字 _ 和$組成首位不要是數(shù)字
最好符合命名規(guī)范
二、關(guān)鍵字
Java中會用到的的有特殊意義的單詞,都是小寫
goto(易引起程序混亂)和const(c語言中表示常量)為保留字
三、常量
final修飾的變量
與c語言中的const類似
但和c中預(yù)編譯的DEFINE完全不一樣
四、變量
?本質(zhì)為一塊內(nèi)存
分為基本類型和引用類型
基本類型的內(nèi)存中的二進(jìn)制編碼為數(shù)據(jù)本身,引用類型存的二進(jìn)制編碼為內(nèi)存地址(類似指針)
五、基本數(shù)據(jù)類型(這段參考了《java虛擬機規(guī)范JavaSE 8版》)
1.????? 整數(shù)類型
(1)????? byte:8位有符號的二進(jìn)制補碼整數(shù),默認(rèn)值為0;
(2)????? short:16位有符號的二進(jìn)制補碼整數(shù),默認(rèn)值為0;
(3)????? int:32位有符號的二進(jìn)制補碼整數(shù),默認(rèn)值為0;
(4)????? long:64位有符號的二進(jìn)制補碼整數(shù),默認(rèn)值為0;
2.????? 浮點數(shù)類型
(1)????? float:與IEEE754標(biāo)準(zhǔn)的32位單精度的格式和操作相同;
(2)????? double:與IEEE754標(biāo)準(zhǔn)的64位雙精度的格式和操作相同;
3.????? boolean類型:true或false
“雖然Java虛擬機定義了boolean這種數(shù)據(jù)類型,但是只對它提供了非常有限的支持。在Java虛擬機中沒有任何供boolean值專用的字節(jié)碼指令,Java語言表達(dá)式所操作的boolean值,在編譯之后都使用Java虛擬機中的int數(shù)據(jù)類型來代替。”
——摘自《java虛擬機規(guī)范JavaSE 8版》
4.????? char類型 unsigned兩字節(jié)正整數(shù)Unicode編碼
5.???? (returnAddress型:指向虛擬機指令的操作碼,只存在與虛擬機底層中,java語言中看不到,并且JDK7開始已處于名存實亡狀態(tài))
?????? tips:1.byte short char 的運算在加載到操作數(shù)棧時都以int型來運算,因為在虛擬機中沒有對應(yīng)的操作指令
??????????????? 2.賦值時如果值處于范圍內(nèi)如short a=1是沒問題的;
六、運算符:
1.二元運算符:
(1)算術(shù)運算符(+-*/%,)
2.一元運算符:自增和自減;
++i先運算再賦值
i++先賦值再運算
tips:測試i++與++i性能



??????? 上面分別在jdk8的版本中和在jdk12版本中的結(jié)果,所以在需要自增時,盡量使用i++而不是++i
六、轉(zhuǎn)義字符
\n \t \\ \r \t \b 等
???????? Tips:關(guān)于\r\n
?????????????????? Windows中使用\r\n或\n\r來換行, linux中使用\n來換行, mac中使用\r來換???????? 行,使用時注意差異。
(參考https://www.cnblogs.com/xiaotiannet/p/3510586.html)
七、進(jìn)制轉(zhuǎn)換
二進(jìn)制0b 八進(jìn)制0 十六進(jìn)制0x
二進(jìn)制字節(jié)碼可用十六進(jìn)制來表示