String两种不同创建方式的原理
2021-03-26 19:23:08 0 举报
String两种不同创建方式的原理
作者其他创作
大纲/内容
元空间
new \"zhong\"对象
引用地址
String s1 = \"zhong\"
s1+s2相当于new
1
与刚开始赋值过程相同
堆
\"hello\"对象
3
new String(\"zhong\")
\"zhong\"对象
指针指向引用
在堆中给hello开辟内存空间,并指向常量池的hello数组对象
先到常量池中寻找是否有对应的字符串,有的话直接返回字符串的地址。
String s2 = \"zhong\"
更改字符串
将被回收
找到引用
String s1 = \"peile\"
常量池
String两种不同创建方式的原理
所以直接赋值创建的字符串和new出来的字符串不是同一个对象
2
String更改直接换对象,StringBuilder、StringBuffer换底层数组String、StringBuffer线程安全,StringBuilder线程不安全。
直接拿到引用地址
对于new创建的字符串不会去检查常量池,直接在堆中创建对象。
发现没有
0 条评论
回复 删除
下一页