[問題] local variable
想請教各位一個 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)
→
09/17 23:36, , 1F
09/17 23:36, 1F
推
09/18 00:19, , 2F
09/18 00:19, 2F
→
09/18 00:35, , 3F
09/18 00:35, 3F
推
09/18 10:12, , 4F
09/18 10:12, 4F
推
09/18 10:41, , 5F
09/18 10:41, 5F
推
09/18 12:53, , 6F
09/18 12:53, 6F
推
09/18 14:47, , 7F
09/18 14:47, 7F
→
09/18 16:04, , 8F
09/18 16:04, 8F
推
09/18 20:33, , 9F
09/18 20:33, 9F
→
09/19 14:11, , 10F
09/19 14:11, 10F
推
09/24 04:05, , 11F
09/24 04:05, 11F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):