码迷,mamicode.com
首页 > 其他好文 > 详细

String字符串关于==的详解

时间:2019-03-26 19:36:08      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:source   blog   地址   com   一个   就会   resource   字符创   csdn   

String详解

字符创建方式

字符串创建有两种方式

  • String s = new String("myString");
  • String string2 = "myString";

    创建过程解析

    方式一创建时,先解析字符串常量"myString",它会在常量池里面的一个字符串常量列表中查找,如果没有找到,在堆里面创建一个包含字符序列(myString)的String对象s1,然后把这个String对象的字符序列和引用作为名值对存放到常量池里面的字符床常量列表中。如下图所示:
    技术图片
    接下里就在堆里面再创建一个包含字符序列(myString)的String对象,并让s指向它。
    方式2创建时,先解析字符串常量池里面的字符串常量列表,如果找到了就直接包表中对于的对象引用返回。所以string2和s1指向的是堆里的同一个对象。

intern方法

  • 如果这个String对象的字符序列不在字符床常量列表中,那么就会把这个String对象的字符序列和引用以名值对的形式放入列表中,并返回一个指向String对象本身的引用。
  • 如果这个String对象的字符序列在字符串常量列表中,那么就会返回常量列表中相同字符序列对应的对象引用。
        String s3 = new String("gouzi");
        String s4 = "gouzi";
        System.out.println(s3.intern() == s4);

引用地址

引用链接
如有侵权,告之立删。

String字符串关于==的详解

标签:source   blog   地址   com   一个   就会   resource   字符创   csdn   

原文地址:https://www.cnblogs.com/dearcabbage/p/10602767.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!