一.關(guān)鍵字&標識符
1.關(guān)鍵字:被java語言賦予特殊含義的字符串(或單詞),
2.保留字:被java語言占用,但是還沒有具體含義。關(guān)鍵字保留字都小寫

3.標識符:凡是可以自己命名的地方,都是標識符。
????定義合法標識符規(guī)則:
????????>由26個英文字母大小寫,0-9 ,_或 $ 組成
????????>數(shù)字不可以開頭。
????????>不可以使用關(guān)鍵字和保留字,但能包含關(guān)鍵字和保留字。
????????>Java中嚴格區(qū)分大小寫,長度無限制。
????????>標識符不能包含空格。
4.java命名規(guī)范
????包名:多單詞組成時所有字母都小寫:xxxyyyzzz
????類名、接口名:多單詞組成時,所有單詞的首字母大寫:XxxYyyZzz
????變量名、方法名:多單詞組成時,第一個單詞首字母小寫,第二個單詞開始每個單詞首字母大寫:xxxYyyZzz(駝峰)
????常量名:所有字母都大寫。多單詞時每個單詞用下劃線連接:XXX_YYY_ZZZ
? ??在起名字時,為了提高閱讀性,要盡量有意義,“見名知意”。
二.變量
1.變量的聲明格式:數(shù)據(jù)類型 變量名 = 初始化值; ?必須先聲明后使用,都有其作用域。
2.變量類型的分類


3.每種數(shù)據(jù)類型的使用
? ? 1).整型 : byte(1字節(jié)) short(2字節(jié)) int(4字節(jié)) long(8字節(jié)) ??一般使用int型
? ??????????????byte b1 = 127;
? ? ? ? ? ? ? ? b1 = 128;//編譯不通過,超出了byte的取值范圍
????????????????定義一個long型的變量,以"l"或者"L"結(jié)尾 ? ?long l = 1243124L;
? ? ?2)浮點型:float(4字節(jié)) double(8字節(jié)),表示帶小數(shù)的數(shù)值?
? ??????????????比較常用的是double ? ? ?double d1 = 123.3;
????????????????定義float型變量時,需要末尾添加"f"或者"F" ? ?float f1 = 123.2f;
? ? ?3)boolean型:取值只有兩個:true 或 false。不能取值為null
? ? ?4)字符型:char(2字節(jié))
? ??????一個char型變量,表示一個字符
? ??????????char c1 = 'a';
????????????char c2 = 'ab';//編譯不通過
????????????char c3 = '1';
????????????char c4 = '中';
????????????char c5 = '\n'; ? ??c5 = '\t'; ??//轉(zhuǎn)義字符
????????????System.out.println("abcd" + c5 + "def");
????????????char c6 = '\u1234'; ??//用的不多
????????????System.out.println("c6:" + c6);
4.變量間的運算
? ??①自動類型提升:容量小(表數(shù)范圍)的變量與容量大的變量間做運算,結(jié)果的數(shù)據(jù)類型與容量大的變量的類型一致。
????????????byte、short、char ---> int --->long---->float----> double
????????????當byte\short\char三者之間的變量做運算的話,結(jié)果都為int型。
????②強制類型轉(zhuǎn)換:是自動類型提升的逆過程:將容量大的數(shù)據(jù)類型的變量轉(zhuǎn)換為容量小的數(shù)據(jù)類型的變量
????????????使用強制類型轉(zhuǎn)換符:()
????????????double d1 = 123.3;
????????????int i = (int)d1;//123
????????????byte b = (byte)i;
????????????注意:強轉(zhuǎn)時,可能會導致精度損失。
三.運算符
????1. 算術(shù)運算符:+(正) ?-(負) ? ? + - * / % (前)++ (后)++ (前)-- (后)-- +(字符串連接運算)
????????????1) int i = 12;
? ? ????????????? int j = i / 5;
? ? ????????????? System.out.println(j);//2
????????????2)取模運算與被模數(shù)符號一樣。
? ? ? ? ? ? ????????? int i = 12;
? ? ? ? ? ? ????????? int j = 3;
? ? ????????????????? if(i % j == 0){....}
????????????3)(前)++ :先+1,后運算
? ???????????? (后)++:先運算,后+1
? ? 2.賦值運算符: = += -= *= /= %=
? ??????運算結(jié)果不改變原有變量的數(shù)據(jù)類型:
????????????int i = 12;
????????????i += 10;//i = i + 10;
????????????short s = 10;
????????????s += 2;//s = (short)(s + 2);
????????????int m = 12;
????????????m *= 0.1;//編譯能通過。
????????????m = m * 0.1;//編譯不通過
? ??3.比較運算符(關(guān)系運算符): == > < >= <= intanceof
? ??????>比較運算符的結(jié)果都為boolean類型!
? ? ? ? >通常使用在條件判斷和循環(huán)語句中
? ? 4.邏輯運算符?且: & && 或: | || ? ! ^
? ??????????>運算符處理的都是boolean類型的變量
????????????>& 與 && 區(qū)別:當符號左邊是false時,& 繼續(xù)執(zhí)行右邊的運算;&& 不再執(zhí)行右邊的運算
????????????>|? 與 || 區(qū)別:當符號左邊是true時,| 繼續(xù)執(zhí)行右邊的運算;|| 不再執(zhí)行右邊的運算
????????????>開發(fā)時,常用&&? 和 ||
? ??5.位運算符: << ? ? >> ?>>> ?& ? ?| ? ?^ ?~
? ??????>處理的是數(shù)值型的變量
????????>在一定范圍內(nèi),左移一位,相當于這個數(shù)值 * 2。
????????????int i = 6;
? ? ? ????? int j = ~i; //-7
? ? 6.三元運算符:(條件表達式)? 表達式1 : 表達式2
? ???????注:1.表達式1和表達式2的類型要一致
? ? ? ? ? ? ? 2.表達式1和表達式2的類型,決定了運算符的類型
? ? ? ? ? ? ? 3.凡是使用三元運算符的操作都可以轉(zhuǎn)換為if-else結(jié)構(gòu)。反之不成立.
? ???????????? 如果二者都可以使用的情況下,建議使用三元運算符,效率高。
四.流程控制
1.分支結(jié)構(gòu)
? ? if(){}else{} ? if(){}else if(){}...else{}
? ? 1).如果多個條件表達式是"互斥"關(guān)系,那么執(zhí)行結(jié)構(gòu)誰上誰下都可以。
? ? ? ? ?如果多個條件表達式是"包含"關(guān)系,要求將范圍小的寫在范圍大的上面
? ? ?2)如果條件判斷的執(zhí)行語句只有一行的話,可以省略一對{}.建議不省略
? ??????switch(變量){
????????????????case 值1:
????????????????????語句1;
????????????????????break;
????????????????????????...
????????????????default:
????????????????????語句;
???????????????}
? ? 1)default:可選的,同時位置是靈活的。
? ? 2)switch中的變量只能是如下的類型之一:byte short int char 枚舉類 String(JDK1.7新加入的)
? ? 3)使用switch-case的結(jié)構(gòu)都能轉(zhuǎn)換為if-else結(jié)構(gòu)。反之,不成立
? ? 4)如果switch-case和if-else結(jié)構(gòu)都可以使用,建議使用switch-case,因為效率高
? ? 5)case中只能寫取值(常量),不能表示范圍
2.循環(huán)結(jié)構(gòu)
? ? ? ?1.?循環(huán)結(jié)構(gòu)的4個要素:
????????????①初始化條件
????????????②循環(huán)條件(是boolean類型的結(jié)果)
????????????③循環(huán)體
????????????④迭代條件
? ??2.三種循環(huán)結(jié)構(gòu):
????????????for(①;②;④){
????????????????????????③
????????????????}
????????????①
????????????while(②){
????????????③;
????????????④;
????????????}
????????????①
????????????do{
????????????????????③;
????????????????????④;
? ? ? ? ? ? ? ? ? ?}while(②);
????注:三種循環(huán)間都可以相互轉(zhuǎn)換
????區(qū)別:①for循環(huán)的初始化條件執(zhí)行完循環(huán)以后就不可再在循環(huán)外調(diào)用。而while循環(huán)的初始化條件在循環(huán)結(jié)束以后,初始化變量聲明所在的{}內(nèi)還可以被調(diào)用
????????????????②do-while至少會被執(zhí)行一次。
3.兩個特殊的循環(huán)結(jié)構(gòu):
? ??while(true) 或者 for(;;)
????????第一種情況:當某次執(zhí)行時,②循環(huán)條件返回false,進而結(jié)束當前循環(huán)
????????第二種情況:在循環(huán)結(jié)構(gòu)內(nèi),執(zhí)行到break語句,調(diào)出當前循環(huán)。
????????明確:若循環(huán)結(jié)構(gòu)沒有出現(xiàn)上述兩種情況之一,那這個循環(huán)就是死循環(huán)!
? ? ? ????????????死循環(huán)是我們寫程序要避免的!
五.break和continue關(guān)鍵字的使用
? ??break:①可以使用在switch-case或者循環(huán)結(jié)構(gòu)中
? ? ? ? ? ? ? ②:如果在循環(huán)結(jié)構(gòu)中使用:結(jié)束當前循環(huán)結(jié)構(gòu)(默認結(jié)束的是離break最近的循環(huán)結(jié)構(gòu))
? ??continue:①只能使用在循環(huán)結(jié)構(gòu)中
? ? ? ? ? ? ? ? ? ?②:如果在循環(huán)結(jié)構(gòu)中使用:結(jié)束當次循環(huán)(默認結(jié)束的是離break最近的循環(huán)結(jié)構(gòu))
說明:在break和continue關(guān)鍵字后面不能有任何的操作語句。否則編譯不通過。

