美文网首页
五 java字符串

五 java字符串

作者: BeYearn | 来源:发表于2018-11-22 20:19 被阅读0次

    1.String的创建机理
    由于String在Java世界中使用过于频繁,Java为了避免在一个系统中产生大量的String对象,引入了字符串常量池。其运行机制是:
    创建一个字符串时,首先检查池中是否有值相同的字符串对象,如果有则不需要创建直接从常量池中刚查找到的对象引用;如果没有则新建字符串对象(非new String方式),返回对象引用,并且将新创建的对象放入池中。 但是,通过new方法创建的String对象是不检查字符串池的,而是直接在堆区或栈区创建一个新的对象,也不会把对象放入池中。上述原则只适用于通过直接量给String对象引用赋值的情况。

    举例:
    String str1 = "123"; //通过直接量赋值方式,放入字符串常量池
    String str2 = new String(“123”); //通过new方式赋值方式,不放入字符串常量池

    注意:String提供了intern()方法。调用该方法时,如果常量池中包括了一个等于此String对象的字符串(由equals方法确定),则返回池中的字符串。否则,将此String对象添加到池中,并且返回此池中对象的引用。

     String s3 = new String("12") + new String("34");
     s3.intern();    // 有这句时打印为true  没有时打印为false
     String s4 = "1234";
     System.out.println(s3 == s4);
    

    相关文章

      网友评论

          本文标题:五 java字符串

          本文链接:https://www.haomeiwen.com/subject/yxeafqtx.html