美文网首页
String==汇总

String==汇总

作者: 凯玲之恋 | 来源:发表于2021-03-06 18:13 被阅读0次
String s1 = "abc";

直接去常量池里查找是否有‘abc’,如果没有就创建一个,然后s1指向常量池对应字符

String s2 = new String("abc");

堆里创建String对象,然后去常量池里检查存放‘abc’

String s1 = new String("ab") + new String("c");

在堆里创建‘ab’和‘c’对象,然后常量池里检查存放‘ab’和‘c’,最后在堆里创建一个“abc”对象,直接指向s1;

(这时并没有向常量池放入‘abc’,需要s1.intern()才会去常量池里检查存放‘abc’,如果常量池里没有,在常量池新增一个’abc‘,并且s1引用直接指向这个常量;
如果常量池里有,则s1引用不会发生变化)

//代码示例1
        String s1 = new String("ab") + new String("c");
        s1.intern();
        String s2="abc";
        System.out.println(s1==s2);//返回true。这时的s1指向的是常量池里的’abc‘(推测,待证实)
//************************************************************************************
//代码示例2
        String s1 = new String("ab") + new String("c");     
        String s2="abc";
        s1.intern();
        System.out.println(s1==s2);//返回false。由于s1.intern()没有起作用,这时的s1引用指向没有变化
————————————————
版权声明:本文为CSDN博主「kingkd」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/kingkd/article/details/107322704
String s1 = "a" + "b";

这个会在编译的时候直接变成 String s1 = "ab";

final String s1 = "a";//如果final修饰的字符串(不包含new String),会在编译的时候直接替换
final String s2 = "b";
String s3 = s1 + s2;
String s4 = "ab";
System.out.println(s3 == s4);
//编译后的代码
        String s1 = "a";
        String s2 = "b";
        String s3 = "ab";
        String s4 = "ab";
        System.out.println(s3 == s4);
20200713210630125.png

参考

String==汇总

相关文章

  • String==汇总

    直接去常量池里查找是否有‘abc’,如果没有就创建一个,然后s1指向常量池对应字符 在堆里创建String对象,然...

  • JavaScript中字符串的常见api操作(偏ES5)

    1. api简单汇总 1.1 string相关操作汇总 获取字符串长度 str.length分割字符串 str.s...

  • Java字符串模板格式化汇总8法(附性能对比)

    字符串格式化汇总 Table of Contents 1. ++ 2. StringBuffer / String...

  • String对象api汇总

    JavaScript 引用类型Object常见包括String,Number,Array,Set,Map等。 一、...

  • String 常用方法汇总

    截取字符串 字符串替换 字符串拼接 Stringbuilder 方法 StringJoiner 方法 setEmp...

  • Java基础之常用API汇总

    Java基础之常用API汇总 String类: String类代表字符串,字符串本质就是一个字符数组.构造方法:1...

  • Java基础之常用API汇总

    Java基础之常用API汇总 String类: String类代表字符串,字符串本质就是一个字符数组.构造方法:1...

  • c++ string 操作汇总

    欢迎访问我的个人博客:zengzeyu.com 前言 作为传递信息的载体string数据类型广泛应用于各种编程语言...

  • JAVA中String类的常用方法API

    @[toc] 前言 String 类是我们日常经常使用的Java类,以下是对该类的信息汇总,类的关系图如下 创建:...

  • Hybird方案

    方法汇总: ① 跳转至某个特定的页面 接收到H5的String,只需要修改中间的变量,实现任意页面跳转。 ②功能,...

网友评论

      本文标题:String==汇总

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