【標識符】java
Java對各類變量、方法和類等要素命名時使用的字符序列。編程
Java標識符命名規則:函數
<1>由字母、數字、下劃線"_"和美圓符"$"組成(不能有空格);佈局
<2>以字母、下劃線、$開頭;編碼
<3>對大小寫敏感,長度無限制。spa
【關鍵字】操作系統
Java關鍵字都是小寫。code
goto和const雖然從未被使用,但也做爲Java關鍵字保留。對象
【Java常量】排序
Java的常量用字符串表示,區分爲不一樣的數據類型:
<1>整型常量:123
<2>實型常量:1.23
<3>字符常量:'a'
<4>邏輯常量:true false
<5>字符串常量:"hello"
【注意】"常量"還會用在其餘語境中,表示值不可變的變量(--變量賦值後,不容許改變,例如final)。
【變量】
<1>Java變量是程序中最基本的存儲單元,其要素包括變量名、變量類型和做用域。
<2>Java程序中每一個變量都有特定的數據類型,在使用前必須對其聲明,格式以下:
type varName = value ;
【注意】
變量其實是內存上的一小塊區域,使用變量名訪問這塊區域,所以,每一個變量使用前必需要先申明[聲明],而後必須進行賦值[填充內容],才能使用。
【分類】
局部變量:方法或語句塊內部定義的變量(方法參數列表中的形參也屬於局部變量)。
成員變量:方法外部、類的內部定義的變量。
【注意】
類外面(即與類對應的大括號外面)不能有變量聲明,即不存在C++中的全局變量的概念,緣由在於Java是純面向對象的語言,只要出現變量,必須是在對象class內部聲明。
【程序執行過程】
<1>放置在硬盤上的可執行文件只有加載到內存中才能運行(加載後存放在內存的cod segment中);
<2>實際代碼的運行還須要藉助於操做系統的代碼(已經加載在內存中);
<3>在code segment中找到main方法開始執行程序時,須要其他三部分的支持(heap、stack、data segment);
【數據類型】
注:邏輯型--布爾型 文本型--字符型
【內存中如何區分不一樣數據類型】
<1>在內存中所佔大小不一樣;
<2>在內存中佔用空間相同的,經過內部01佈局區分。
【布爾型】
boolean類型數據只容許取true、false,不能夠以0或非0的整數替代true和false,這點和C語言不一樣。
【字符型】
Java字符采用Unicode編碼(全球語言統一編碼),每一個字符佔兩個字節,於是可用十六進制形式表示。
char c = '\u0061'; //這裏\u表示Unicode編碼
char c =125;//直接給出ASCII碼值也能夠
【整數類型】
<1>Java各整數類型有固定的表數範圍和字段長度,其不受具體操做系統的影響,以保證Java程序的可移植性。
(這也是C語言編譯後不可移植的緣由)
<2>Java語言整型常量有3種表示形式:
a>十進制整數;
b>八進制整數(要求以0開頭);
c>十六進制整數(要求以0x或0X開頭)。
<3>Java語言的整型常量默認爲int型,聲明long型常量能夠在後面加上"l"或"L"。
int i = 88888888888888888L;
//必須加L,不然會出錯
【注意】
<1>在java中沒有無符號的整數(C++裏面有unsigned int類型)。
<2>以byte爲例,Java中byte單獨拿出一位做爲該數的符號(即正負數),所以表示的範圍爲:-128~(128-1)。
【浮點類型】
<1>Java浮點類型有固定的表數範圍和字段長度,不受平臺影響。
<2>有兩種表示方式:
a>十進制形式:3.14
b>科學計數法形式:3.14e2
<3>浮點類型默認是double類型,若是要聲明一個float類型,則需在數字後面加上f或F。
float f = 12.3f;
//必須加上F,不然出錯
注:計算機中浮點數是離散的,實際中是連續的,所以因爲計算機精度的問題,形成存在偏差。
所以在實際程序中不多會涉及到浮點數之間的比較,而把其差做爲比較對象。
【數據類型轉換】
<1>boolean類型不能夠轉換爲其餘數據類型;
<2>整型、字符型、浮點型的數據在混合運算中相互轉換,轉換時遵循如下原則:
a>容量小的類型自動轉換爲容量大的類型,數據類型按照容量大小排序爲:
(這裏的容量大小指的是表示的數的大小,而不是在內存中所佔大小,好比long和float)
byte,short,char->int->long->float->double
byte,short,char之間不會相互轉換,它們三者在計算時首先會轉換成int類型
舉例:
byte b1 = 1;
byte b2 = 2;
byte b3 = (byte)(b1+b2);
//執行b1+b2操做時,兩個byte類型數據都會轉換爲int類型,其結果是int類型,而不是byte類型,所以須要強制類型轉換
b>容量大的類型轉換爲容量小的類型時,要加上強制類型轉換符,但可能形成精度下降或溢出,使用時要格外注意!
c>有多種類型數據混合運算時,系統首先自動的將全部數據轉換成容量最大的那一種數據類型,而後再進行計算
d>實數常量默認爲double
e>整數常量默認爲int
【重要區別】
(1)區別1
byte b1 = 67;
byte b2 = 89;
byte b3 = (byte)(b1+b2);
上述程序輸出b3時會顯示:b3=-100
分析:
b1+b2後會超出byte類型的表數範圍,在內存中int類型4個字節,byte類型1個字節,要將int轉換成byte只須要把多餘3個字節
截去便可,剩下的那個字節是多少結果就認爲是多少。
double d1 = 1e200;
float f1 = (float)d1;
上述程序輸出f1時會發生溢出
分析:
浮點型數據在計算機內部用特殊的形式表示,專門在中間存儲了一個小數點,來計算小數點後有幾位數,因此直接截取是轉換不
過來的(這樣內部的格式就不對了)。
(2)區別2
float f1 = (float)0.1;
//0.1佔8個字節,強制轉換爲4個字節
float f1= 0.1f;
//0.1f自己就是4個字節
找出是否存在錯誤:
<1>float f1=0.1; 出錯,0.1爲double
<2>long l2=88888888888L;
<3>byte b3 = 129; 出錯
<4>j=j+10; j未賦值
<5>i=i/10; 計算結果爲0
<6>i=i*0.1; 0.1爲double類型,double賦值爲int類型i會出錯
<7>byte b = b1-b2; b1-b2爲int類型,賦值給byte會出錯
<8>char c = c1+c2-1; 出錯,至關於int類型賦值給char
<9>float f4 = f1+f2*0.1; 0.1爲double類型
【格式】
<1>大括號對齊;
<2>遇到"{"縮進,Tab/Shift+Tab(往回縮的時候用:Shift+Table);
<3>程序塊之間加空行;
<4>並排語句之間加空格(public class HelloWorld {}--在HelloWorld後加空格);
<5>運算符兩側加空格;
<6>"{"前有空格;
<7>成對編程(防止遺漏"}")。
【運算符】
(1)自加和自減運算符
(2)邏輯運算符
(3)賦值運算符和拓展賦值運算符
(4)字符串鏈接符
(5)表達式
(6)三目條件運算符
【語句】
(1)條件語句
if/if...else/if...else if/if...else if...else if...else/switch
(2)循環語句
for(JDK1.5引入新語法)/while/do...while
a> for循環語句
b>while與do-while語句
c>break與continue語句
【相關程序】
d> switch語句
注:
<1>switch語句中能夠是int類型的值,也能夠是char、short、byte類型的值(轉換成int類型);
<2>不要忘記使用break語句。
【方法】
C/C++中稱爲函數,Java中稱爲方法。