java程式設計入門6 java語言基礎與流程控制
語言基礎
基本資料型別
1.整數型別
1)不能以0作為十進位制數的開頭(0除外)
2)八進位制必須以0開頭
3)十六進位制必須以0X或0x開頭
4)整型資料型別根據它所佔記憶體大小的不同,可分為byte、short、int和long4中型別
資料型別 | 記憶體空間(8位位元位等於1位元組) | 取值範圍 |
byte | 8位 | -2^7~2^7-1 |
short | 16位 | -2^15~2^15-1 |
int | 32位 | -2^31~2^31-1 |
long | 64位 | -2^63~2^63-1 |
5)若賦給的值大於int型的最大值或小於int型的最小值,則需要在數字後加L或l,表示該數值為長整型。
2.浮點型別
1)浮點型資料型別
資料型別 | 記憶體空間 | 取值範圍 |
float | 32位 | 1.4E-45~3.4028235E38 |
double | 64位 | 4.9E-324~1.7976931348623157E308 |
2)在預設情況下,小數都被看作double型,若使用float型小數,則需要在小數後面新增F或f。
3.轉義字元
轉義字元 | 含義 |
\ddd | 1~3位八進位制資料所代表的字元 |
\uxxxx | 4位十六進位制資料所表示的字元 |
\r | 回車 |
4.布林型別
1)通過關鍵字boolean來定義布林型別變數,只有true和false兩個值。
變數與常量
1.關鍵字
1)strictfp
strict float point (精確浮點)
使用 strictfp 關鍵字宣告一個方法時,該方法中所有的float和double表示式都嚴格遵守FP-strict的限制,符合IEEE-754規範。當對一個類或介面使用 strictfp 關鍵字時,該類中的所有程式碼,包括巢狀型別中的初始設定值和程式碼,都將嚴格地進行計算。
2)transient
變數修飾符。標記為transient的變數,在物件儲存時,這些變數狀態不會被持久化。當物件序列化的儲存在儲存器上時,不希望有些欄位資料被儲存,為了保證安全性,可以把這些欄位宣告為transient。
3)synchronized
可用來給物件和方法或者程式碼塊加鎖,當它鎖定一個方法或者一個程式碼塊的時候,同一時刻最多隻有一個執行緒執行這段程式碼。當兩個併發執行緒訪問同一個物件object中的這個加鎖同步程式碼塊時,一個時間內只能有一個執行緒得到執行。另一個執行緒必須等待當前執行緒執行完這個程式碼塊以後才能執行該程式碼塊。
4)instanceof
java 中的instanceof 運算子是用來在執行時指出物件是否是特定類的一個例項。instanceof通過返回一個布林值來指出,這個物件是否是這個特定類或者是它的子類的一個例項。
用法: boolean result = object instanceof class
移位操作
1.原碼、反碼、補碼
1)在計算機中資料的運算是先將資料轉換為補碼,然後進行計算,最後將補碼轉換為原碼。
關於原碼、反碼、補碼的介紹: ofollow,noindex">https://www.cnblogs.com/ccsuCBG/p/9678387.html
2.左移
1)將運算子左邊的運算元的二進位制資料按照運算子右邊運算元指定的位數向左移,右邊移空的部分補0
3.右移
1)將運算子左邊的運算元的二進位制資料按照運算子右邊運算元指定的位數向右移。
2)如果最高為是0,右移空的位就填入0;如果最高位是1,右移空的位就填入1。
4.無符號右移
1)java提供了無符號右移">>>",無論最高位是0還是1,左側被移空的高位都填入0。
5.移位運算子適用的資料型別有byte、short、char、int、long。
資料型別轉換
1.資料型別轉換有兩種方式,即隱式轉換與顯示轉換。
2.隱式型別轉換
1)從低階型別向高階型別的轉換,系統將自動執行。
2)型別按精度從低到高排序的順序為 byte<long<int<long<float<double
3.顯示型別轉換
當把高精度的變數的值賦給低精度的變數時,必須使用顯式型別轉換運算(又稱強制型別轉換)
程式碼註釋
1.單行註釋://
2.多行註釋:/* */
3.文件註釋:/** */
1)當文件註釋出現在宣告之前時,會被javadoc文件工具讀取作為javadoc文件內容
流程控制
1.switch語句中表達式的值必須是整型、字元型或字串型別,
2.foreach
1.foreach語句是for語句的特殊簡化版本,不能完全取代for語句,但任何foreach語句都可以改寫為for語句版本
2.語法如下:
for(元素變數 x:遍歷物件 obj){ 引用了x的java語句 }
for example:
//遍歷一維陣列 public class Text { public static void main(String[] args) { int array[]= {7,10,1}; for(int x:array) { System.out.println(x); } } }
3.goto
1.在java中goto關鍵字本身沒有任何意義,但是保留了C中goto的功能,並且只能用於巢狀迴圈時跳出外層迴圈
2.java提供的"標籤"的語法如下(與break和continue一起使用):
標籤名:迴圈體{ break 標籤名; } 標籤名:迴圈體{ continue 標籤名; }
for example:
public class Text { public static void main(String[] args) { Label:for(int i=1;i<=10;i++){ for(int j=1;j<=5;j++) { if(i>1) continue/*break*/ Label; System.out.println("i:"+i+" "+"j:"+j); } } } }
2018-11-28