天天看點

Java核心技術 第三章 Java的基本程式設計結構第三章 Java的基本程式設計結構

第三章 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()方法。