关于java值传递的问题
2011-06-27 16:38
239 查看
public class PassAddr { public static void main(String[] args) { String s=new String("old"); //1 method(s); //3 System.out.println(s); } static void method(String str){ str=new String("new"); //2 } }
这个输出结果为:old
public class T { public static void main(String[] args) { String[] arr=new String[2]; arr[0]="old_0"; arr[1]="old_1"; //11 method(arr); //14 System.out.println(arr[0]+";"+arr[1]); } static void method(String[] a){//12 a[0]="new_0"; a[1]="new_1"; //13 } }
这个输出却是:new_0;new_1
-------------------------------------------
自己发的问题,想了半天想通了。解析下,希望各位斧正!
===================================
string://1处时:
//2处时:
//3处:
由于方法调用已经完成,所以str临时变量在stack中消失,s还是0x001,其地址处对象new String("old")没有被动;所以输出结果还是old;
---------------------------------------------------固执的分割线------------------------------------------------------
//11处内存状态:
//12处:
//13处时候的内存状况:
此时a[0]和a[1]的值被改变,其实就是arr的相应值改变了。最后就出现了结果如图://14
所以就出现结果改变的情况了。
这么一作图,很直观了。
相关文章推荐
- 关于java值传递的问题,图解直观,若您有有高见请斧正!
- 关于JAVA中URL传递中文参数的问题
- 关于Java中的参数传递问题
- java中关于参数传递问题的解释(传值与传引用的若干问题的解释)
- 关于Boolean类型在flex与java中间传递的问题
- java中关于“按值传递”的相关问题
- 关于Boolean类型在flex与java中间传递的问题
- 关于Boolean类型在flex与java中间传递的问题
- java中关于参数传递问题的解释(传…
- 关于前台URL传递中文参数到java后台乱码的问题
- 关于JAVA中包装类的是什么类型传递这个问题的笔记
- 关于Java中按值传递和按引用传递的问题详解
- 黑马程序员——Java中的一个关于参数传递的小问题
- 关于Java中String类型的参数传递问题
- 关于java中的值传递问题
- 关于JAVA参数传递的问题!~
- 关于Java中按值传递和按引用传递的问题详解
- 关于java中的参数传递问题
- 关于Java后台的Json数据的传递问题
- 关于java语言中方法参数传递问题