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)在計算機中數據的運算是先將數據轉換為補碼,然後進行計算,最後將補碼轉換為原碼。
關於原碼、反碼、補碼的介紹: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
java編程入門6 java語言基礎與流程控制