String赋值方式

String赋值方式

public class Test {
	 
	public static void main(String[] args) {
		 //String的赋值方式
		 String name1="Tom";
		 int identity = System.identityHashCode(name1);// System.identityHashCode(name1)得到name1的地址
		 System.out.println("name1地址:"+identity);
		 String name2="Tom";
		 identity = System.identityHashCode(name2);
		 System.out.println("name2地址:"+identity);
		 System.out.println(name1==name2);//结果为true,"=="比的是地址,name1和name2是在常量池里面,地址相同
		 
		 String name3=new String("Kate");
		 identity = System.identityHashCode(name3);
		 System.out.println("name3地址:"+identity);
		 String name4=new String("Kate");
		 identity = System.identityHashCode(name4);
		 System.out.println("name4地址:"+identity);
		 System.out.println(name3==name4);//结果false,"=="比的是地址,没创造一个新的对象会在堆里面产生一个的地址,name3和name4地址不同
		}
}

运行结果:

由运行结果可以看出,采用直接赋值的方法,所得地址是相同的,而采用构造方法实现赋值,每次赋值会创造一个新的对象,地址是不同的

猜你喜欢

转载自blog.csdn.net/weixin_42867975/article/details/113026502
今日推荐