作者tamamad (tamamad)
看板java
標題Re: [問題] local variable
時間Fri Sep 18 17:36:39 2009
經本人再次實驗結果,這種寫法 沒 有 問 題 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