小编olt*_*o93的帖子

为什么这些字符串没有指向 java 中的同一个对象?

我知道如果我有 2 个具有相同值的字符串变量,由于 java 字符串池,它们指向同一个字符串对象。

下面是一个例子:

String test = "1234";
String test2 = "1234";
    
System.out.println(test == test2);
System.out.println("1234" == test2);
Run Code Online (Sandbox Code Playgroud)

输出如下:

true
true
Run Code Online (Sandbox Code Playgroud)

但是如果我有以下代码,它会打印出它们不是同一个对象

String test = "1234";
int i = 1234;
String s = "" + i;
    
System.out.println(test == s);
System.out.println("1234" == s);
Run Code Online (Sandbox Code Playgroud)

输出:

false
false
Run Code Online (Sandbox Code Playgroud)

任何人都会向我解释这种行为的原因吗?

java string pool

1
推荐指数
1
解决办法
91
查看次数

标签 统计

java ×1

pool ×1

string ×1