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了.
本文详细解析了Java中字符串比较的两种方法:== 和 equals() 的区别。通过具体代码示例展示了不同情况下这两种方法的行为差异,特别是对于字符串常量和变量连接的理解。
2147

被折叠的 条评论
为什么被折叠?



