value type 就不會在 heap,不需要被 GC (跟 primitive 一樣)
請問一下,若不是放在 heap 中,那是放在哪裡?
沒有 GC 的話,value type & primitive 佔用的記憶體會被釋放嗎?
放在 stack, 脫離作用域就釋放
對吼,除了 heap 之外還有 stack 可以放資料到記憶體中 (stack 太少被提到了,差點忘了它的存在...)
但若是宣告在物件裡的 primitive 就會被放到 heap 中了吧?
對阿,這時primitive的生命週期就是跟著那個物件了。 (題外話C++物件可以宣告在stack上XDDD
原來如此,所以 Valhalla 要做的事就是把物件裡用到的多個 primitive 放在連續的記憶體空間中,以減少記憶體指標 (reference) 的使用。
以 char[] 來說,JVM 只需要知道開始的位置及陣列 (array) 的長度 (length),即可存取到陣列 (array) 裡面的任一元素 (element) 之值 (value), 而不用每個元素 (element) 都去紀錄值(value) 所在的記憶體指標 (reference)。
放在 stack 啊
Kmark 是一個類似 Markdown 語法的格式,以下為提供的功能:
*兩邊加單星*
**兩邊加雙星**
~~兩邊加雙曲號~~
> 左邊加個大於符號
左邊加個大於符號
* 可用星號 * 也可以 - 減號 * 數字加點也可以
`abcdefghijk`
兩邊用倒引號包住
abcdefghijk
``` function abc() ```
上下都用三個倒引號包住
function abc()
[這是連結][1] [1]: http://example.com
連結第一部份是文字,先用中括號包住,後面再加上 [編號]。 第二部份是連結本身,放在文末,開頭是 [編號]: http
這是連結1