24.9.2——小學期開發實記

sodamate發表於2024-09-03

1.IDEA匯入專案出現Error: java: 程式包javax.servlet.http不存在錯誤的解決辦法

解決方法:開啟File>Project Structure>Libraries,點選右側加號,尋找到tomcat的lib資料夾。

2.IDEA控制檯亂碼問題

24.9.2——小學期開發實記

物件的知識:

在 Java 中,使用 new 關鍵字建立物件時:

  1. 堆記憶體分配: 首先在堆記憶體中分配一塊空間,用於儲存物件例項資料,並記錄該物件的類資訊(指向方法區的指標)。

  2. 棧記憶體分配: 然後在棧記憶體中建立一個變數(例如 S1),儲存指向堆記憶體中物件例項的地址。

  3. 方法呼叫: 呼叫物件方法時,透過棧記憶體中的物件地址找到堆記憶體中的物件例項,再根據類資訊找到方法區中對應的方法進行呼叫。方法執行過程中,引數和區域性變數等資訊會壓入棧記憶體。

(我的理解):

new一個物件,存在棧記憶體中,然後被堆記憶體中的物件類的記憶體空間地址賦值,堆記憶體開闢一片空間以物件類的模板儲存資料,並且也存了類的地址,方法區存變數和方法。new得來的物件,例如稱作S1。S1的屬性透過棧記憶體中的地址找到堆記憶體中的空間,找到具體屬性值,賦值。S1的方法呼叫的時候,透過棧記憶體中的地址,找到堆記憶體中的物件,再透過堆記憶體中的地址找到方法區的呼叫的方法,然後再壓到棧記憶體上。

相關文章