Java学习笔记19:==与equals用法比较

String s1="abc";
	String s2="abc";
	System.out.println(s1==s2);//true
	System.out.println(s1.eqauls(s2));//true
	
	//创建了几个对象?
	String s1=new String("abc");//两个对象,常量池新对象及堆内存一个副本


String s1=new String("abc");
String s2="abc";
System.out.println(s1==s2);//false,地址值不同
System.out.println(s1.eqauls(s2));//true,常量池


String s1="a"+"b"+"c";
String s2="abc";
System.out.println(s1==s2);//true,常量优化机制,编译器完成字符串,s1创建,s2不用操作
System.out.println(s1.eqauls(s2));//true

String s1="ab";
String s2="abc";
String s3=s1+"c";
System.out.println(s3==s2);//false
System.out.println(s3.eqauls(s2));//true

猜你喜欢

转载自blog.csdn.net/qq_30242987/article/details/85680664