看板 java 關於我們 聯絡資訊
經本人再次實驗結果,這種寫法 沒 有 問 題 XD 我目前寫的是跟硬體相關的程式 所以目前推測發生的問題可能跟機器本身執行的state有關(不過還是一樣沒有結論) 昨天測試不夠 還妄下斷論 還來發了篇廢文 所以這種寫法使用array沒有問題 請各位安心使用 版主如果覺得我的文太廢,請幫我刪掉吧 XD ※ 引述《tamamad (tamamad)》之銘言: : 想請教各位一個 local variable的問題,程式碼如下: : public void func(){ : byte[] buf = new byte[100]; : func2( buf ); : } : public void func2(byte[] formal ){ : .... : } : buf是一個local variable,JVM會將他放置在stack : 而buf所指到的byte array, JVM會將它放置在 heap 區 : 我想問的重點是,我call function時, : 如果引數部分傳給他的是一個 local variable(如程式碼 call func2 的那行 ) : 會不會有可能造成一些問題? : 我的想法是,JAVA只有pass by value,所以當我用 buf 當引數時, : 在func2裡的 formal 也會指到放在heap裡的byte array, : 所以原則上這應該是沒問題的引數傳遞 : 然而我在實作上卻會出現一些問題, : 後來我的解法是把要傳給func2的byte array reference宣告成 instance variable : 但是百思不得其解,為什麼傳 local variable會出問題, : 想請教板上各位高手, : 鳩境 問題出在哪裡? : 以上 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.128.228.22
tamamad:by the way,原本的問題在我將變數改宣告成instant variabl 09/18 17:38
tamamad:還是一樣有問題,我昨天搞錯了<(_ _)> 09/18 17:40
PsMonkey:ㄜ... 有沒有人能翻譯一下,我實在看不太懂.... Orz 09/19 17:54
weiyucsie:是說是在嵌入式系統執行,所以有硬體出錯的可能嗎?XD 09/20 03:00
tamamad:樓上翻譯正確 09/20 09:54