🛸~~ 🚁🚁🚁🛩️🛩️🛩️~|

n1ce2cv

园龄:5年2个月粉丝:4关注:1

字符串常量池

new String()创建了几个对象

// 使用new,每次都会创建一个新的对象
String s = new String("hh");
  • 先在位于堆中的字符串常量池中查找是否已经存在hh字符串对象
    • 如果有,直接在堆中创建一个hh字符串对象,然后把这个堆中新创建的对象地址返回给栈中的变量s
    • 如果没有,现在字符串常量池中创建一个对象,然后再在堆中也创建个对象并返回堆中的给s

字符串常量池的作用

// 采用双引号的方式来创建字符串对象,会重复利用字符串常量池中已经存在的对象
String s2 = "hh";
  • JVM会在字符串常量池中查找有没有hh字符串对象
    • 如果有,不创建任何对象,直接返回字符串常量值中的对象地址
    • 如果没有,在字符串常量池中创建后再将其返回

字符串常量池位置变化

本文作者:n1ce2cv

本文链接:https://www.cnblogs.com/sprinining/p/18301343

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   n1ce2cv  阅读(6)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起