chchwy 積分 2

放在 stack, 脫離作用域就釋放

這是文章的子討論串,你可以回到上層查看所有討論和文章
natsu 積分 0

放在 stack, 脫離作用域就釋放

對吼,除了 heap 之外還有 stack 可以放資料到記憶體中 (stack 太少被提到了,差點忘了它的存在...)

但若是宣告在物件裡的 primitive 就會被放到 heap 中了吧?

chchwy 積分 1

對阿,這時primitive的生命週期就是跟著那個物件了。 (題外話C++物件可以宣告在stack上XDDD

natsu 積分 1 編輯於

原來如此,所以 Valhalla 要做的事就是把物件裡用到的多個 primitive 放在連續的記憶體空間中,以減少記憶體指標 (reference) 的使用。

以 char[] 來說,JVM 只需要知道開始的位置及陣列 (array)長度 (length),即可存取到陣列 (array) 裡面的任一元素 (element)值 (value), 而不用每個元素 (element) 都去紀錄值(value) 所在的記憶體指標 (reference)