作者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
1F:→ tamamad:by the way,原本的问题在我将变数改宣告成instant variabl 09/18 17:38
2F:→ tamamad:还是一样有问题,我昨天搞错了<(_ _)> 09/18 17:40
3F:推 PsMonkey:ㄜ... 有没有人能翻译一下,我实在看不太懂.... Orz 09/19 17:54
4F:→ weiyucsie:是说是在嵌入式系统执行,所以有硬体出错的可能吗?XD 09/20 03:00
5F:→ tamamad:楼上翻译正确 09/20 09:54