想象一下這種極端情況:
一個City有 10 個變數的類,但是有 1000 行函式和操作這些變數的邏輯。
Class Person {
// 10 variables
int age = 20;
int height = 180;
String name = "Name";
.
.
.
// 1000 lines of functions and logic
public void increaseAge(int years){
age =years;
}
public void doLogic(){
//some logic
}
.
.
.
}
我不知道這個類的一個實體究竟會占用多少記憶體,但是假設變數占用10 bytes和1000行函式占用1 kb來放置一個樣本量。
如果您有該類的 100 個實體,則應該占用 100 次重復的變數,10*100 bytes但是函式會發生什么?這些功能會1*100 kb占用記憶體嗎?或者編譯器會做些什么來避免這種情況?
謝謝你。
uj5u.com熱心網友回復:
我不知道這個類的一個實體究竟會占用多少記憶體,但是假設變數占用 10 個位元組,1000 行函式占用 1 kb 來放置一個樣本量。
在這種情況下,此類的一個實體將占用 10 個位元組。(這實際上是不可能的,因為根據 JVM 設定,物件具有從 4 到 12 位元組不等的各種固定大小的標頭,即使如此,它們也會被四舍五入為 8 位元組的倍數,但關鍵是您只需為類的變數。)
給定類的函式實作只有一份副本存盤在記憶體中。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/447539.html
