字符串常量池
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 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步