天天看點

java核心技術-基礎知識_Java核心技術之基礎知識

一、類型轉換

數值類型之間的轉換

java核心技術-基礎知識_Java核心技術之基礎知識

強制類型轉換

a)       将一個數值強制轉換成另一種類型時,如果超出目标類型的便是範圍,結果就會截斷成一個完全不同的值。(如:(byte)300的實際值為44)

b)       将boolean類型的值轉換成其他類型時,可使用三目表達式(如:b?1:0 将boolean轉換成int型)

二、運算符

Java沒有逗号運算符,但可以在for語句的第1部分和第3部分使用逗号分隔表達式清單

運算符優先級

java核心技術-基礎知識_Java核心技術之基礎知識

三、枚舉類型

四、字元串

1. String類被稱為不可變字元串,不可修改一個字元串中的任何一個字元,但可以讓其引用另外一個字元串。不可變字元串優點:編譯器可以讓字元串共享,共享所帶來的高效率遠遠勝于提取、拼接字元串所帶來的低效率。

2. 當一個字元串與一個非字元串進行拼接時,後者被轉換成字元串(任何一個Java對象都可以轉換成字元串)

3. 常用String靜态方法

如果需要把多個字元串放在一起,用一個定界符分割,可以使用靜态join方法。

equals方法檢測兩個字元串是否相等,如需不區分大小寫,可以使用equalsIgnoreCase。

trim方法傳回一個删除了源字元串頭部和尾部的空格的新字元串。

format方法建立一個格式化的字元串而不列印輸出

4. StringBuffer:效率較低,但允許采用多線程的方式執行添加或删除字元的操作,而jdk5.0引入的StringBuilder是單線程的。這兩個類的API是相同的。

五、 輸入輸出

1.控制台讀取輸入,首先需要構造一個Scanner對象,并與标準輸入流(即System.in)關聯(即 Scanner in = new Scanner(System.in);)。Scanner中,nextLine()讀取一行(包含空格,以回車為分隔符);next()讀取一個單詞(以空格為分隔符);nextInt()讀取一個整數,nextDouble()讀取一個浮點數…

2. 格式化輸出(System.out.printf())

用于printf的轉換符、标志(控制格式化輸出)、日期與時間的轉換符(詳見博文)。

3. 檔案輸入輸出

要想對檔案進行讀取,需要一個用File對象構造的Scanner對象(即Scanner in = new Scanner(Paths.get(“myfile.txt”),“utf-8”))

要想寫入檔案,就需要構造一個PrintWriter對象。(即PrintWriter out = new PrintWriter(“myfile.txt”,”utf-8”),當檔案不存在時會自動建立檔案)

六、控制流程

1. 塊(即複合語句)是由一堆大括号括起來的若幹條簡單的Java語句。不能再嵌套的兩個塊中聲明同名的變量。

2. 中斷控制流程語句(break、continue)

在一條語句或語句塊前加上标簽及冒号(如 hello:),使得可以在循環語句中使用break 标簽名或continue 标簽名(如break hello; continue hello;),能跳出或跳到标簽所代表的語句塊。

七、大數值

1. BigInteger類實作了任意精度的證書運算,BigDecimal實作了任意精度的浮點數運算,但不可以使用算術運算符(+-*/%),而是使用相應的方法

八、數組

1. 數字數組所有元素會被初始化為0,boolean數組是false,對象數組的元素則是null。

2. 常用Arrays類靜态方法

列印數組可使用Arrays.toString(a);

Arrays.copyOf()将一個數組的所有值拷貝到一個指定長度的新數組中,如果新數組長度小于源數組,則隻拷貝最前面的資料元素,否則則對多餘的元素自動指派,規則參考上一條。

Arrays.sort()對數值型數組進行排序

Arrays.binarySearch()采用二分搜尋算法查找值

Arrays.fill()将數組的所有資料元素設定為同一個參數

Arrays.equal()如果兩個數組的大小及其下标對應的元素相等,則傳回true