您的位置:首页 > 编程语言 > Java开发

Java基础之对象的引用传递与对象的值传递

2017-04-28 15:05 344 查看
package test;

import org.junit.Test;

public class ObjectAndValue {

@Test
public void test1(){
//变量传递赋值时,是传递的值的对应地址,而不是变量的地址
String s1 = "aa";
String s2 = "bb";
s2 = s1;

System.out.println("s1:"+s1);
System.out.println("s2:"+s2);
s1="cc";
System.out.println("s1:"+s1);
System.out.println("s2:"+s2);
System.out.println("这是因为变量传递赋值时,是传递的值的对应地址,而不是变量的地址");
//对象(或者引用)传递赋值时,实际传递的是这个对象的存储地址
StringBuffer sb1 = new StringBuffer();
sb1.append("aaa");
StringBuffer sb2 = new StringBuffer();
sb2.append("bbb");
sb2 = sb1;
System.out.println("s1:"+sb1);
System.out.println("s2:"+sb2);
sb1.append("ccc");
System.out.println("s1:"+sb1);
System.out.println("s2:"+sb2);
System.out.println("这是因为对象(或者引用)传递赋值时,实际传递的是这个对象的存储地址");

}
int i = 1;
public static double ddddd = 50.0;
String s = "ceshi";
StringBuffer sb = new StringBuffer("test");
public void testvalue(int i,String s,StringBuffer sb ,double ddddd){
i = 20;
ddddd = 66.6;
s = "ts";
sb.append("ts");
}

public void testvalue2(){
sb = new StringBuffer("ttttttt");
sb.append("ts");
}

@Test
public void test2(){
System.out.println(i);
System.out.println(ddddd);
System.out.println(s.hashCode());
System.out.println(s);
System.out.println(sb.hashCode());
System.out.println(sb);
this.testvalue(i,s,sb,ddddd);
System.out.println("---testvalue----");
System.out.println(i);
System.out.println(ddddd);
System.out.println(s.hashCode());
System.out.println(s);
System.out.println(sb.hashCode());
System.out.println(sb);
this.testvalue2();
System.out.println("---testvalue2----");
System.out.println(sb.hashCode());
System.out.print(sb);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  string class
相关文章推荐