java - 常量池中两个String的引用id

标签 java

访问String Constant Pool Java !

public class StringLiterals {
    public static void main(String[] args) {
        String s1="This is ";
        s1=s1+"my book";
        String s2="This is my book";
        System.out.println(s1==s2);

    }
}

O/P:错误

期望 O/P:真

最佳答案

也许这有助于理清思路。

    String s1 = "This is";
    s1 = s1 + " my book"; // Note the space
    String s2 = "This is my book";
    String s3 = "This is my book";
    System.out.println(s1==s2); // False
    System.out.println(s2==s3); // True

“只有当字符串被显式地驻留或类使用文字时,它们才会被放入池中。”因此,您不能使用 + 运算符连接字符串并期望将其放入字符串常量池中。

关于java - 常量池中两个String的引用id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21199878/

相关文章:

java - 为什么 Netbeans 看不到我指的是哪个 varargs 方法?

Windows 8 上的 Java 7 调试不起作用

java - 在游戏 View 下添加 admob

java - 从弹出项中获取jTable行号

java - 放置随机圆圈而不重叠(并且不使用蛮力)?

java - ArrayAdapter - ViewHolder 空指针错误

java - 解决Tomcat中的Bind异常

javascript - 检查登录用户 session 状态 OpenAM

java - 无法解析 ArrayAdapter 中的构造函数

java - 我可以使用 Spring Boot 接收 gmail 中特定文件夹中的邮件吗