引用传递
---------siwuxie095
引用传递:
代码1:
package com.siwuxie095.ref;
class Ref1{ int temp=10; }
public class RefDemo01 {
public static void main(String[] args) { Ref1 r1= new Ref1(); r1.temp=20; System.out.println(r1.temp); tell(r1); System.out.println(r1.temp); }
//引用传递 public static void tell(Ref1 r2) { //r2在改变temp的值为30之前,和r1都指向了 20 r2.temp=30; }
} |
运行一览:
内存分析:
代码2:
package com.siwuxie095.ref;
public class RefDemo02 {
public static void main(String[] args) { String str1="hello"; System.out.println(str1); tell(str1); System.out.println(str1); }
public static void tell(String str2) { str2="jike"; }
} |
运行一览:
因为String类型的数据是不可更改的
内存分析:
代码3:
package com.siwuxie095.ref;
class Ref3{ String temp="hello";
}
public class RefDemo03 {
public static void main(String[] args) { Ref3 r1=new Ref3(); r1.temp="jike"; System.out.println(r1.temp); tell(r1); System.out.println(r1.temp); }
public static void tell(Ref3 r2) { r2.temp="xueyuan"; } } |
运行一览:
实际上是开辟了新的内存空间(与代码2对比)
内存分析:
【made by siwuxie095】
posted on 2017-03-16 19:54 siwuxie095 阅读(96) 评论(0) 编辑 收藏 举报