String str1= "123";
String str2 = "45";String str3 = "12345";String str4 =str1+str2;
String str5 ="123"+"45";System.out.println(str3 ==str4);
System.out.println(str3==str5);str3 str4 str5分别是什么类型?
String str2 = "45";String str3 = "12345";String str4 =str1+str2;
String str5 ="123"+"45";System.out.println(str3 ==str4);
System.out.println(str3==str5);str3 str4 str5分别是什么类型?
只是==操作符比较的是地址
因为JVM会把String常量放到常量池中,所以相同的String常量,只有一个对象,不同的引用都会指向这个对象。
所以下面的 str31==str32 返回trueString str31 = "12345";
String str32 = "12345";
而且JVM会把【"123"+"45"】这种常量间的相加的结果,也会放入常量池,所以 str3 == str5 返回trueString str3 = "12345";
String str5 ="123"+"45";
另外JVM不会把含有变量的字符串【str1+str2】相加放入常量池,所以str4 == str3 返回falseString str1= "123";
String str2 = "45";
String str3 = "12345";
String str4 = str1+str2;
if(“123”==“123”)System.out.println("判断正确");
字符串与字符串相等的逻辑判断就成了boolean型了
基本数据类型可以使用== 比较内容
js里没有equals