java == 和 equals() 方法使用:
String a = "abc";
String b="ab";
String c=b+"c";
System.out.println(a==c); // false
System.out.println(a.equals(c)); // true
a = "ab";
b="a"+"b";
System.out.println(a==b); // true
String a = "ab"+"c";
这里会被编译器自动优化成a = "abc";它是存在在栈中的
String a="ab";
String c=b+"c";
这里,实际上a是一个对象了,那么+操作符会把结果放到堆内存中,这样,两块内存是不一样的,虽然内容是一样的
所以它们比较就得到false了.
String a = "abc";
String b="ab";
String c=b+"c";
System.out.println(a==c); // false
System.out.println(a.equals(c)); // true
a = "ab";
b="a"+"b";
System.out.println(a==b); // true
String a = "ab"+"c";
这里会被编译器自动优化成a = "abc";它是存在在栈中的
String a="ab";
String c=b+"c";
这里,实际上a是一个对象了,那么+操作符会把结果放到堆内存中,这样,两块内存是不一样的,虽然内容是一样的
所以它们比较就得到false了.