第三章 Java的基本程式設計結構
一個簡單的Java應用程式
- Java 1.4及以後版本中強制main方法必須是public。
- Java的所有函數都是某個類的方法。
- Java中的main方法必須是靜态的。
注釋
- 結束用于生成文檔。
資料類型
整型
- 長整型後接L或l,十六進制數值有字首0x或0X,八進制有字首0。
- 從Java7開始加上字首0b或0B就可以寫二進制數。
- 從Java7開始可以在數字字面量加下劃線,如1000_000_000,隻為了更易讀,Java編譯器會去掉這些下劃線。
- Java沒有無符号形式的int,long,short,byte。
- 可使用Byte.toUnsignedInt(b)來得到一個0到255的int值。
浮點類型
- float類型的數值有字尾F或f。
- 預設為double
- 可使用十六進制來表示浮點數值,如0.125就可以表示為0x1.0p-3,p代表指數,尾數采用十六進制,指數采用十進制,指數基數為2。
- Double.POSITIVE_INFINITY(正無窮大)、Double.NEGATIVE_INFINITY(負無窮大)、Double.NaN(不是一個數字),0/0或負數的平方根結果就為NaN。
- 不可以用 == 檢測一個特定的值是否為NaN,應該使用Double.isNaN方法。
- 浮點數值不适用于無法接受舍入誤差的計算。
char類型
- char類型可以表示為十六進制值,從\u0000到\uFFFF。
- 轉義序列可以出現在加引号的字元字面量或字元串中。
- 轉義序列\u還可以出現在加引号的字元常量或字元串,其他轉義序列不可以,如String\u005B\u005D就是String[]。
- 注意注釋中的\u,會被編譯為轉義序列,容易出現錯誤。
Unicode和char類型
- 碼點指一個編碼表中的某個字元對應的代碼值。
- Unicode碼點可以分為17個代碼平面,其餘16個平面碼點從U+10000到U+10FFFF,使用代替區域(即第一個代碼平面未使用的2048個值),U+D800到U+DBFF作為第一個代碼單元,U+DC00到U+DFFF作為第二個代碼單元。
boolean類型
- 整型值與布爾值之間不可互相轉換。
變量與常量
變量初始化
- 不可使用未初始化的變量。
- 從Java10開始,局部變量如果可以從變量的初始值推斷出它的類型,就無需聲明類型,使用關鍵字var即可,如:
。var a = 10 ;
常量
- const是Java保留的關鍵字,但目前并沒有使用。
枚舉類型
- 例如:
enum Size{SMALL, MEDIUM, LARGE, EXTRA_LARGE}; Size s = Size.SMALL;
運算符
算術運算符
- 整數被零除産生異常,浮點數被零除得到無窮大或NaN。
數學函數與常量
- 如果被除數為負數,Math.floorMod()方法可以得到正餘數。
- StrictMath類可以確定在不同平台上得到相同的結果。
數值類型之間的轉換
-
對浮點數進行舍入運算,如果想得到最接近的整數可使用Math.round方法。
例如
double x = 9.997; int nx = (int)Math.round(x); // nx為10
位運算符
-
運算符用0填充高位。>>>
- 沒有
運算符。<<<
字元串
建構字元串
- StringBuilder,Java5中引入,前身為StringBuffer,效率更高,但StringBuffer允許采用多線程方法添加或删除字元。
輸入輸出
- Scanner // 可處理輸入流,檔案和字元串,檔案名要使用path.of(“檔案名”)
- PrintWriter // 可處理輸出流,檔案
- Console // 讀取密碼時不回顯
控制流程
- break、continue可以帶标簽,跳出多層循環。
大數
- BigInteger、BigDecimal
- 可使用vauleOf(),或者字元串參數構造。
- 不可使用算術運算符,要使用add(),multiply()方法。
數組
數組拷貝
- 使用Arrays.copyOf()方法。