首页 > 其他 > 详细

关于String

时间:2021-07-07 10:26:46      阅读:20      评论:0      收藏:0      [点我收藏+]

下面程序的输出结果,参考代码中的注释,原因也在其中。

public class MyDemo {
    public static void main(String[] args) {
        String s1 = "Programming";
        String s2 = new String("Programming");
        String s3 = "Program";
        String s4 = "ming";
        String s5 = "Program" + "ming";
        String s6 = s3 + s4;
        System.out.println(s1 == s2);  // false 因为一个在常量池中,一个在堆内存中 
        System.out.println(s1 == s5);  //  true 因为都在常量池中
        System.out.println(s1 == s6);  // false 字符串的+操作其本质是创建了StringBuilder对象进行append操作,即s6在堆内存中
        System.out.println(s1 == s6.intern()); // true 因为intern方法会得到字符串对象在常量池中对应的版本的引用
        System.out.println(s2 == s2.intern()); // false 因为s2本身在堆内存中
    }
}

 

关于String

原文:https://www.cnblogs.com/nayitian/p/14979822.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!