public class Foo {
public static void main(String[] args) {
foo();
bar();
}
public static void foo() {
String s = "str4";
String s1 = "str" + s.length();
System.out.println("(s==s1)" + (s1 == s));
}
public static void bar() {
String s = "str4";
String s1 = "str" + "4";
System.out.println("(s==s1)" + (s1 == s));
}
}
Run Code Online (Sandbox Code Playgroud)
OUTPUT
(s==s1)false
(s==s1)true
Run Code Online (Sandbox Code Playgroud)
在String s1 ="str"+ s.length(); s1 = str4的值但在double equal(==)检查期间在下一个sysout语句中结果为false
*/
Lui*_*oza 10
那是因为"str" + "4"编译为"str4".
String s = "str4";
String s1 = "str" + "4";
Run Code Online (Sandbox Code Playgroud)
对于编译器,它将是:
String s = "str4";
String s1 = "str4";
Run Code Online (Sandbox Code Playgroud)
请注意,它"str4"是一个文字字符串,它将存储在字符串池中.
| 归档时间: |
|
| 查看次数: |
123 次 |
| 最近记录: |