Java學習的第二天
Java語言基礎組成
- 關鍵字
被java賦予特殊含義的某些單詞、
特點:都是小寫
- 識別符號
在程式中自定義的一些名稱
由英文字母,$,_開頭;由英文字母,$,_和數字組成;
規則:
- 不能以數字開頭
- 不可以使用關鍵字
Java嚴格區分大小寫
- 註釋
- 常量與變數
常用常量的分類
- 整數常量,所有整數
- 小數常量,所有小數
- 布林型常量,較為特殊,只有兩個兩個數值---true false
- 字元常量,將一個數字字母或者符號用單引號(’’)標識,只能存放單個字元;’4’,’+’
- 字串常量,將一個或者多個字元用雙引號標識。”a”, ” ” ,”ab”
- null常量,只有一個數值就是null
進位制轉換(二進位制,十進位制,八進位制,十六進位制)
變數:將不確定的資料進行儲存。也就是說需要在記憶體中開闢一個空間;通過明確資料型別,變數名稱來完成;空間的型別---資料型別,名稱---變數名;
1.資料型別
1.1.基本資料型別
1.1.1.數值型
1.1.1.1.整數型(byte(一個位元組數),short(兩個位元組數),int(四個位元組數),long(八個位元組數))1個位元組八位(-27至27-1)(節約記憶體)
1.1.1.1.浮點型(float(四個位元組數),double(八個位元組數))(精確程度不同)
1.1.2.字元型(char(兩個位元組數))
1.1.3.布林型(boolean)(一個位元組數)
格式---資料型別 變數名 = 初始化值;
1.2.引用資料型別
1.2.1.類(class)
1.2.2.介面(interface)
1.2.3.陣列([])
注:對於基本資料型別的變數,在記憶體空間裡存放的是它的值。
數字值不能直接轉換為布林值。因此,不能使用非0代表邏輯真(與C語言不同)
整型預設為int型,小數預設為double型
byte b = 2;//-128~127; //byte b1 = 128;這樣是錯誤的方式 short s = 30000; long l = 4l; float f = 2.3f; double d = 34.56; char ch = '4'; char ch1 = 'a'; char ch2 = '+'; char ch3 = ' '; boolean bo = true; boolean bo1 = false; /* 什麼時候定義變數? 當資料不確定的時候。需要對資料進行儲存時。 就定義一個變數來完成儲存動作。 */ |
整型預設為int型,小數預設為double型 byte b = 3; b = b + 2; b為byte型,一個位元組,2為int 型四個位元組;由【自動型別提升】,會將b(位元組少的)提升到四個位元組,這樣把(b+2)(四個位元組)賦給b(一個位元組)會報錯 b = (byte)(b+2);---強制將(b+2)四個位元組轉化為一個位元組【強制型別轉換】 直接輸出System.out.println(‘a’+ 1);---輸出98 原因:’a’為char型,char是兩個位元組,1預設為int型四個位元組,自動型別轉換為四個位元組,所以列印的結果為98; 【a---97 A---65】 System.out.println((char)(‘a’+ 1));---輸出b 將double型強制轉換為int型取整數; |
- 運算子
- 算術運算子
int x = 4270;
x = x / 1000 * 1000;---x = 4000;(整型除整型等於整型,不會是小數)
+ - * \ % 【1%5】---(1)【-1%5】---(-1)【1%-5】---(1)【-1%-5】---(-1)結論:取餘的正負號只與%前面的正負號有關 |
++ -- 注意放在前面和放在後面時的運算優先順序的差別 int a = 3; b = a++;---b=3;a=4; int a = 3; b = ++a;---b=4;a=4; |
+ 字串連線符””+”” 字串資料和任何資料使用+都是相連線,最終都會變成字串; System.out.println(“ab”+5+5); ----ab55 System.out.println(“ab”+ “bc”); ----abbc System.out.println(“a=”+a+”,”+”b=”+b); ---a=a的值,b=b的值 println----ln表示換行的意思 |
轉義字元:通過\來轉變後面字母或者符號的含義 \n---換行 \b---退格,相當與backspace \r---按下回車鍵 \t製表符,相當於tab鍵 System.out.println(”Hello\nWorld”); System.out.println(”\ ”HelloWorld\””);---將”轉義---“Hello World” System.out.println(”\ \HelloWorld\\”);---將\轉義 ---\Hello World\ char = ‘\’’;---轉義’ char =’你’;---一個漢字兩個位元組,char兩個位元組,可以儲存; |
- 賦值運算子
= += -= \= %= |
short s=4; s =s + 5;---編譯失敗,因為s會被提升為int型別,運算後的結果還是int型別。無法賦值給short型別。 s += 5;---編譯成功,因為+=運算子在給s賦值時,自動完成了強制操作。 |
- 比較運算子
== != < > <= >=---結果不是真就是假 |
== 用來比較是否相同 = 用來賦值 |
- 邏輯運算子
&(與) |(或) ^(異或,只有真假不一樣時才為真) !(非)&&(短路) ||(短路) |
邏輯運算子用於連線boolean型別的表示式 Int a = 2; a>3&a<6; ---先運算a>3(假),再運算a<6(真)然後綜合結果為假 a>3&&a<6; ---運算a>3(假)後不再運算 提高效率 |
- 位運算子(針對與二進位制)
<< 左移 >> 右移 >>>>無符號右移 &與運算 |或運算 ^異或運算 ~反碼 |
- 三元運算子
格式 (條件表示式)?表示式1:表示式2; 如z=(x>y)?x:y; |
- 語句
- 判斷結構
if(條件表示式){滿足執行區域} 如果控制的語句只有一條,可以不用寫{} |
if(條件表示式){滿足執行區域} else{滿足執行區域} |
if(條件表示式){滿足執行區域} else if(條件表示式){滿足執行區域} …… else{滿足執行區域} 只要有一個滿足,這個整體就結束了; |
if(條件表示式){滿足執行區域}---1 if(條件表示式){滿足執行區域}---2 if(條件表示式){滿足執行區域}---3 else{滿足執行區域} 這是三個整體; 判讀要執行三次; if(x==3||x==4||x==5) if(x>=3 && x<=5) |
- 選擇結構
switch(表示式)//選擇的型別只有四種:byte,short,int,char 沒有long { case 取值1:執行語句break; case 取值2:執行語句break; …… default: 執行語句 }//結束switch語句有兩種情況:遇到break或者執行到swich語句結束 在case中取值正確,執行語句;取值錯誤,不執行語句;但這兩種情況都會向下執行,直到遇見break;跳出語句 當情況不滿足所有的case的時候執行default語句,與case和default的前後順序無關; |
switch(x) { case 3: case 4: case 5: System.out.println(x+"春季"); break; case 6: case 7: case 8: System.out.println(x+"夏季"); break; case 9: case 10: case 11: System.out.println(x+"秋季"); break; case 12: case 1: case 2: System.out.println(x+"冬季"); break; default: System.out.println("nono"); } |
if和switch語句很像。 具體什麼場景下,應用哪個語句呢? 如果判斷的具體數值不多,而是符合byte short int char這四種類型。 雖然兩個語句都可以使用,建議使用swtich語句。因為效率稍高。 其他情況:對區間判斷,對結果為boolean型別判斷,使用if,if的使用範圍更廣。 抒發牢騷(不用看) 神奇的中秋假期,周圍的人聚餐,旅行,遊玩,發空間,發朋友圈…… 但,苦逼的我埋頭學習,難過,傷心,嫉妒呀。 以前欠的債都是要還的,學習的時候開小差,以後就會用玩的時間去彌補,怎能不恨呢? 堅持一天一更,不要中斷,失去的,總有一天會一點一滴的要回來的, |