1. 程式人生 > 其它 ># Java學習筆記(二) —— 基礎知識篇

# Java學習筆記(二) —— 基礎知識篇

基礎知識

1.IDEA中一些快捷鍵

5.fori 可以快速調出for迴圈

array.fori 同理,array為陣列名

2.關於方法

修飾符 返回值型別 方法名稱(引數型別 引數名稱,...){

​ 方法體

​ return;

}

注意事項:方法應該定義在類當中,不能巢狀定義

3.過載(OverLoad)

方法名稱相同,引數列表的個數和型別不同,與方法的返回值型別、名稱無關

4.陣列

  1. 引用資料型別
  2. 型別統一
  3. 長度不可改變
  4. 初始化方式:
    1. 動態初始化(指定長度):資料型別[] 陣列名稱=new 資料型別[長度] 未指定內容時,預設:整型為0,浮點型為0.0,字元型為'\u0000',布林為false,引用為null
    2. 靜態初始化(指定內容):資料型別[] 資料名稱=new 資料型別[]{值,···} 加粗部分省略時,不可先定義後初始化(拆分)
  5. 直接列印陣列名稱,得到的是陣列對應的記憶體地址雜湊值
  6. 越界會異常(ArrayIndexOutOfBoundsException)
  7. 空指標異常,沒有new(NullPointerException)
  8. 獲取陣列長度:陣列名稱.length
  9. 列印陣列 Arrays.toString(addr)

5.Java的記憶體

劃分為5個部分:

  1. 棧(Stack):存放的都是方法中的區域性變數

    區域性變數:方法的引數和變數

    作用域:超出作用域時,立刻從棧記憶體中消失

  2. 堆(Heap):凡是new出來的東西,都在堆中

    堆中的東西,都有預設值,和4.4.1中的內容一致

  3. 方法區(Method Area):儲存.class的相關資訊,包含方法的資訊。

  4. 本地方法棧(Native Method Stack):與作業系統有關

  5. 暫存器(PC Register):與CPU有關

6.面向物件

特性:封裝、繼承、多型

類:一組相關屬性和行為的集合。

類是物件的模板,物件是類的實體。

7.類的使用

  1. 導包:import 包名稱.類名稱; 對於和當前類在同一個包的情況下,可以省略。
  2. 建立:類名稱 物件名=new 類名稱();
  3. 使用:物件名.成員變數名;物件名.成員方法名(引數);
  4. 堆中的成員方法儲存的是地址值,呼叫方法時根據地址把方法壓入棧中,執行完出棧。
  5. 當一個物件作為引數時,傳的是物件的地址。(返回值同理)

8.區域性變數和成員變數的區別

  1. 定義的位置不一樣:區域性變數在方法內部,成員變數在方法外部。
  2. 作用範圍不一樣:區域性變數只有在方法中才能使用,成員變數整個類都可以使用。
  3. 預設值不一樣:區域性變數沒有預設值,成員變數有預設值(引數是區域性變數,必定會被賦值)。
  4. 記憶體的位置不一樣:區域性變數位於棧記憶體,成員變數位於堆記憶體。
  5. 生命週期不一樣:區域性變數隨著方法入棧而誕生,隨著方法出棧而消失;成員變數隨著物件建立而誕生,隨著物件垃圾回收而消失。

9.封裝性

  1. 方法就是一種封裝
  2. 關鍵字private也是一種封裝(setXxx/getXxx間接訪問 對於boolean型別不是getXxx,而是isXxx)

10.構造方法

  1. 構造方法和類名一樣
  2. 沒有返回值
  3. 只要寫了構造方法,則沒有預設構造方法
  4. 可以過載

11.標準類

  1. 所有的成員變數都是私有的
  2. 為每一個成員變數編寫Getter/Setter方法
  3. 編寫一個無參構造方法
  4. 編寫一個全參構造方法