【114天】尚學堂高琪JAVA300篇視頻筆記(31-37)第31-32集
棧——存放區域變數
堆——存放new出來的物件
方法區——存放:1、類的資訊(代碼)2、static變數3、常量池(字串常量)等
記憶體分析(重要!)
棧連續分配記憶體空間, 後進先出
堆不連續分配記憶體空間
第33集
垃圾回收機制, C++相對JAVA更加及時靈活, 但是團隊協作起來, Java容錯率更高。
Java中, 程式師無權調用垃圾回收器, 最多通過System.gc通知GC運行【給個建議】, 但是Java規範並不能保證你的建議立刻運行。 finalize方法是Java提供給程式師用來釋放物件或資源的方法, 但是儘量少用。
第34集
構造方法也是方法
Java通過new調用構造方法, 為啥?因為沒有構造方法,
第35集
重載:一個類中, 定義名字相同, 但參數不同的多個類。
這裡的參數不同, 指的是數量、順序、類型不同
形參值不一樣不算重載。
第36集
static變數又稱類變數
static方法又稱類方法
根據類這個目標新建出來的物件, 只有非靜態的屬性與方法。
靜態方法內部不能直接調用非靜態的方法和變數, 必須先新建一個物件, 才能借助物件調用非靜態的方法和變數, 但非靜態的方法能夠直接調用靜態的方法和變數, 為啥?因為先有類, 才有物件。
第37集
普通方法中, this總是指向調用該方法的物件。
構造方法中, this總是指向正要初始化的物件。
this不能用於static方法!(this指向當前物件,
普通方法中, 其實默認都傳入了this
this最常用法:
讓類中的一個方法, 訪問該類的另一個方法或屬性。
使用this關鍵字調用重載構造方法。 避免相同的初始化代碼, 只能在構造方法中用, 並且必須位於構造方法的第一句。