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

string的一些特殊点

时间:2019-05-30 16:13:22      阅读:90      评论:0      收藏:0      [点我收藏+]

标签:直接   pool   字符串   style   ring   带来   字节   并且   保存   

无论是String还是new String最终都指向了String constant pool中,只不过是String直接指向了Stringconstant pool中。而new String是在Heap中创建了一个指向String constant pool中的引用。
java中,如果定义了String类型的字符串,最终的都存在String constant pool 中。

String constant pool就是jvm规范中所谓的方法区。

一个对象由对象头,对象实际数据,以及对齐填充(可能存在)三部分组成。

new一个对象会有两个东西占用内存,引用和实例。

new一个Object对象占用24个字节(64位) 或 12个字节(32位)

在JAVA虚拟机(JVM)中存在着一个字符串池,其中保存着很多String对象,并且可以被共享使用,因此它提高了效率。由于String类是final的,它的值一经创建就不可改变,因此不用担心String对象共享而带来程序的混乱。

 

String str = new String("abc"); 创建了几个对象?

一个或两个:abc 字符串之前没有用过,这毫无疑问创建了两个对象,一个是new  String 创建的一个新的对象,一个是常量“abc”对象的内容创建出的一个新的String对象。

      如果之前创建了‘abc’字符串,则只创建了一个对象。

 

string的一些特殊点

标签:直接   pool   字符串   style   ring   带来   字节   并且   保存   

原文地址:https://www.cnblogs.com/wskb/p/10949936.html

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