java之java中字符串常量池中两个字符串的连接

Leo_wl 阅读:32 2025-02-15 21:57:57 评论:0

由于两个字符串的连接会在字符串常量池中生成新的字符串对象,所以为什么下面的代码计算结果为否。

public class Main { 
    public static void main(String[] args) { 
        String s = "abcd"; 
        String s1 = "ab"; 
        String s2 = "cd"; 
        s1 = s1+s2; 
        if(s1==s) 
            System.out.println("YES"); 
        else 
            System.out.println("No"); 
            } 
} 

请您参考如下方法:

s1+s2 不是编译时常量表达式,因为 s1s2 不是最终的(尽管它们被分配了 compile-时间常数值)。

因此,该值是在运行时计算的:结果与常量池中的实例不同,尽管值相同。


标签:java
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号