java程式執行時沒有賦值的基本型別變數會在記憶體

時間 2021-08-16 03:09:23

1樓:匿名使用者

看不懂你說什麼,不過好像大致沒錯,你說的這種情況和普通物件類似.

簡單說,棧存的是地址,堆存的是具體資料

你說的沒有賦值的基本型別,比如方法中的基本型別就這樣的情況不過不賦處置,編譯器都過不了

不賦初值的不是你說的這種情況

2樓:x證

要看你這句int a處於什麼地方,如果是在方法內部中被執行到,也就是說是區域性變數,就會在棧記憶體中分配記憶體,由於是int型,所以就是4位元組,也就是32bit,long型別的才會是64bit。

而你說的表示地址我們稱為堆記憶體。建立的物件以及物件中的方法和資料是儲存在堆記憶體中的。jvm會在棧記憶體中建立物件的引用,然後當執行到new語句時,在堆記憶體中建立物件,這時就將這個物件的型別以及這塊區域的記憶體地址值賦給引用,然後進行物件中資料的初始化。

也就是說,物件的引用儲存在棧記憶體中,存放的是型別以及hash值,如integer@0xff67。而物件裡的內容實際上是儲存在堆記憶體中的。

如果你這句int a只是在某個物件內作為成員變數,那麼根本不會涉及到棧記憶體。a就儲存在它所在的那個物件的堆記憶體中。明白了麼?

matlab gui如何在程式執行時使任何操作都無效

個人覺得樓上建議把gui設為不可見的做法不妥,因為那種情況下使用者完全有可能不小心把matlab給關閉了。提供一段簡單的 供參考 建立資訊提示視窗 waitfig figure closerequestfcn windowstyle modal uicontrol style text units ...

excel巨集,執行時提示next沒有for

把你的 第一個 exit for 刪除掉就好了。exit for 意思是跳出 迴圈了。要不就是你第一個next i 之前的 if 因沒有endif 而 報的錯 你的 有問題。邏輯上有問題。excel 提示next沒有fou 改一下即可 with sheets 庫存資料 相同的 庫位,合併一行 for...

c 順序表程式,編譯沒有錯誤,但是執行時就是不行,求指教

樓主 type data 是一個結構體指標,你想把它當做結構體指標陣列來用。l.data l.size item 我根據你程式要實現的意思,提出幾種修改建議 1 修改結構體成員type data 為陣列 type data maxsize 原 typedef struct seqlist 修改為 t...