《俗人筆記》之《Java基礎語法下》
資料型別轉換
自動轉換:由小範圍轉大範圍,且byte,short,char運算過程中直接轉換為int
byte、short、char < int < long < float < double
強制轉換:
由大範圍到小範圍,需要我們人為操作轉化
ASCLL表
將字元與十進位制數一一對應
0->48,9->57,A->65,Z->90,a->97,z->122
操作:int i1=‘A’ int i2=97;char c1=(char)i2
運算子
資料型別兩邊一樣:正常操作,但byte,short和char會預設轉int
兩邊不一樣:往資料型別大的範圍靠
++與–
在前面是先計算再賦值,在後面是先賦值再計算
&&與&
&&有短路特點,及一假及假
同道理的還有||與|,一真即真
三元運算
boolean c=a>b ? true : false;後面的值要與接收的型別一致
流程控制
switch
1.在switch中的表示式只能是byte、short、int、char、Enum(列舉值)、String(字串)。用其它的型別值編譯會報錯。
Enum是在JDK1.5 引入的新特性, String型別是在JDK1.7引入的新特性。
2.case的穿透性:在switch語句中,如果case的後面不寫break,將出現穿透現象,不再判斷下一個case的值,直接向後執行,直到遇到break,或者整體switch結束。
for迴圈
for ( 初始化語句① ; 判斷條件語句② ; 控制條件語句④ ) {
迴圈體語句③
}
do…while
初始化表示式①
do{
迴圈體③
條件控制語句④
}while(條件判斷語句 ②); //這裡有分號結束
- 無條件會先執行一遍
- while寫在後面且()後面有分號,記住!
for 和 while 的小區別:
- 程式碼結構不同是最大的區別
- 控制條件語句所控制的那個變數:
- 在for迴圈結束後,就不能再被訪問到了
- while迴圈結束還可以繼續使用,如果你想繼續使用,就用while,否則推薦使用for(標準格式而言)。
死迴圈:
while( true ){}
for( ; ; ){
迴圈體;
}
在編譯過程中若被編譯器認定為死限迴圈,那麼在死迴圈下面不要再寫任何的語句,因為無法執行。即使寫了也會報錯:錯誤: 無法訪問的語句
int i=0;
while(i<10){
System.out.println(i);
//i++; //如果忘記i++ 了將會永遠迴圈
}
for(int x=1;x>0;i++) { //條件中 x>0 因為 x++永遠大於0 所以該迴圈也是死迴圈
System.out.println(i);
}
跳轉語句:
break:
-
在選擇結構switch語句中
當它出現在switch條件語句中時,作用是終止某個case並跳出switch結構(case中不加break會出現穿透,將switch時講解過)switch結構後面的程式碼。 -
在迴圈語句中
當出現在迴圈語句時,作用是終止並跳出迴圈語句,繼續執行迴圈結構後面的程式碼。
在巢狀迴圈的使用
當break語句出現在巢狀迴圈中的內層迴圈是,它只能跳出內層迴圈,如果想使用break語句跳出到外層迴圈則需要在外層迴圈的關鍵字前新增標記。
continue:
結束本次迴圈,繼續下一次的迴圈
方法:
呼叫:
靜態方法只能呼叫靜態方法,非靜態的可以呼叫靜態的
- 直接呼叫:直接寫方法名呼叫
- 賦值呼叫:呼叫方法,在方法前面定義變數,接收方法返回值
- 輸出語句呼叫: 有返回值型別的方法
過載
指在同一個類中,允許存在一個以上的同名方法,只要它們的引數列表中型別或個數不同即可,與修飾符和返回值型別無關。
(同名不同參) 跟形參變數名沒有關係
引數列表:個數不同,資料型別不同,順序不同(與形參的名字無關,這是基於相同型別無所謂)。
過載方法呼叫:JVM通過方法的引數列表,呼叫不同的方法。
陣列
陣列就是儲存資料長度固定的容器,儲存多個數據的資料型別要一致。
定義:
int[] arr = new int[3];
注意:陣列有定長特性,長度一旦指定,不可更改。
int[] arr = new int[]{1,2,3,4,5};
注意:這種格式定義的長度由 大括號裡面的元素個數指定,不要顯示的定義長度。
int[] arr ={1,2,3,4,5};
當資料確定時,我們可以使用格式2或者格式3進行定義陣列(這兩種定義方式也叫靜態定義)
當資料不確定,我們使用格式1行定義陣列(這兩種定義方式也叫動態定義)