# Java學習筆記(二) —— 基礎知識篇
阿新 • • 發佈:2022-01-02
基礎知識
1.IDEA中一些快捷鍵
5.fori 可以快速調出for迴圈
array.fori 同理,array為陣列名
2.關於方法
修飾符 返回值型別 方法名稱(引數型別 引數名稱,...){
方法體
return;
}
注意事項:方法應該定義在類當中,不能巢狀定義
3.過載(OverLoad)
方法名稱相同,引數列表的個數和型別不同,與方法的返回值型別、名稱無關
4.陣列
- 引用資料型別
- 型別統一
- 長度不可改變
- 初始化方式:
- 動態初始化(指定長度):資料型別[] 陣列名稱=new 資料型別[長度] 未指定內容時,預設:整型為0,浮點型為0.0,字元型為'\u0000',布林為false,引用為null
- 靜態初始化(指定內容):資料型別[] 資料名稱=new 資料型別[]{值,···} 加粗部分省略時,不可先定義後初始化(拆分)
- 直接列印陣列名稱,得到的是陣列對應的記憶體地址雜湊值
- 越界會異常(ArrayIndexOutOfBoundsException)
- 空指標異常,沒有new(NullPointerException)
- 獲取陣列長度:陣列名稱.length
- 列印陣列 Arrays.toString(addr)
5.Java的記憶體
劃分為5個部分:
-
棧(Stack):存放的都是方法中的區域性變數
區域性變數:方法的引數和變數
作用域:超出作用域時,立刻從棧記憶體中消失
-
堆(Heap):凡是new出來的東西,都在堆中
堆中的東西,都有預設值,和4.4.1中的內容一致
-
方法區(Method Area):儲存.class的相關資訊,包含方法的資訊。
-
本地方法棧(Native Method Stack):與作業系統有關
-
暫存器(PC Register):與CPU有關
6.面向物件
特性:封裝、繼承、多型
類:一組相關屬性和行為的集合。
類是物件的模板,物件是類的實體。
7.類的使用
- 導包:import 包名稱.類名稱; 對於和當前類在同一個包的情況下,可以省略。
- 建立:類名稱 物件名=new 類名稱();
- 使用:物件名.成員變數名;物件名.成員方法名(引數);
- 堆中的成員方法儲存的是地址值,呼叫方法時根據地址把方法壓入棧中,執行完出棧。
- 當一個物件作為引數時,傳的是物件的地址。(返回值同理)
8.區域性變數和成員變數的區別
- 定義的位置不一樣:區域性變數在方法內部,成員變數在方法外部。
- 作用範圍不一樣:區域性變數只有在方法中才能使用,成員變數整個類都可以使用。
- 預設值不一樣:區域性變數沒有預設值,成員變數有預設值(引數是區域性變數,必定會被賦值)。
- 記憶體的位置不一樣:區域性變數位於棧記憶體,成員變數位於堆記憶體。
- 生命週期不一樣:區域性變數隨著方法入棧而誕生,隨著方法出棧而消失;成員變數隨著物件建立而誕生,隨著物件垃圾回收而消失。
9.封裝性
- 方法就是一種封裝
- 關鍵字private也是一種封裝(setXxx/getXxx間接訪問 對於boolean型別不是getXxx,而是isXxx)
10.構造方法
- 構造方法和類名一樣
- 沒有返回值
- 只要寫了構造方法,則沒有預設構造方法
- 可以過載
11.標準類
- 所有的成員變數都是私有的
- 為每一個成員變數編寫Getter/Setter方法
- 編寫一個無參構造方法
- 編寫一個全參構造方法