看板 java 關於我們 聯絡資訊
想請教各位一個 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: 114.32.241.164 ※ 編輯: tamamad 來自: 114.32.241.164 (09/17 22:59) ※ 編輯: tamamad 來自: 114.32.241.164 (09/17 23:00)
weiyucsie:什麼問題? @.@ 09/17 23:36
slalala: 什麼問題? @.@ 09/18 00:19
godfat: 什麼問題? @.@ 09/18 00:35
TWisely: 什麼問題? @.@ 09/18 10:12
PsMonkey: 什麼問題? @.@ 這就是推文的樂趣 09/18 10:41
jlovet: 什麼問題? @.@ 09/18 12:53
corevalue:什麼問題? @.@ 09/18 14:47
adrianshum:s麼問題? @.@ 沒照顧長 ID 09/18 16:04
guestciel:什麼問題? @.@ 第一次玩推齊ㄝ:D:D 09/18 20:33
pico2k: 什麼問題? @.@ 09/19 14:11
willieliao: 麼問題? @.@ 沒照顧長 ID 09/24 04:05