第一段:
public static void main(String[] args) {
String str2 = new String("ja")+new String("va");
str2.intern();
String str1 = "java";
System.out.println(str2==str1);
}
执行完结果是false。
第二段,就把字符串从“java”改成“java1”
public static void main(String[] args) {
String str2 = new String("ja")+new String("va1");
str2.intern();
String str1 = "java1";
System.out.println(str2==str1);
}
这次执行结果就是true,jdk7和jdk8都试了。
何解?
public static void main(String[] args) {
String str2 = new String("ja")+new String("va");
str2.intern();
String str1 = "java";
System.out.println(str2==str1);
}
执行完结果是false。
第二段,就把字符串从“java”改成“java1”
public static void main(String[] args) {
String str2 = new String("ja")+new String("va1");
str2.intern();
String str1 = "java1";
System.out.println(str2==str1);
}
这次执行结果就是true,jdk7和jdk8都试了。
何解?
String strA = str2.intern();
String str1 = "java";
System.out.println(strA==str1); String str3 = new String("ja")+new String("va1");
String strB =str3.intern();
String str4 = "java1";
System.out.println(str4==strB);
https://blog.csdn.net/soonfly/article/details/70147205
https://stackoverflow.com/questions/51626258/answer/submit
我测也是两个false,Netbeans 测试,真的是两个false,就不贴图了,两个false。
https://stackoverflow.com/questions/51626258/answer/submit点错了,给你了个踩
public static void main(String[] args) {
System.out.println("int测试:(关键字)");
// 1和2 换以下上下顺序,结果都是false
String s1u = new String("in") + new String("t");
s1u.intern(); // 2
String s2d = "int"; // 1
System.out.println("语句2在上:" + (s1u == s2d)); String s1d = new String("in") + new String("t");
String s2u = "int"; // 1
s1d.intern(); // 2
System.out.println("语句1在上:" + (s1d == s2u)); System.out.println("strer测试:");
// 3和4 换以下上下顺序,3上 false 4上 true
String s3u = new String("str") + new String("er");
s3u.intern(); // 4
String s4d = "strer"; // 3
System.out.println("语句3在上:" + (s3u == s4d)); // false String s3d = new String("str") + new String("er");
String s4u = "strer"; // 3
s3d.intern(); // 4
System.out.println("语句4在上:" + (s3d == s4u));
}运行结果:
int测试:(关键字)
语句2在上:false
语句1在上:false
strer测试:
语句3在上:true
语句4在上:false
Java code
?
1
2
3
4
5
6
7
8
9
String str2 = new String("ja")+new String("va");
String strA = str2.intern();
String str1 = "java";
System.out.println(strA==str1);
String str3 = new String("ja")+new String("va1");
String strB =str3.intern();
String str4 = "java1";
System.out.println(str4==strB);