java的String类中直接赋值和构造方法的区别-成都创新互联网站建设

关于创新互联

多方位宣传企业产品与服务 突出企业形象

公司简介 公司的服务 荣誉资质 新闻动态 联系我们

java的String类中直接赋值和构造方法的区别

这期内容当中的小编将会给大家带来有关java的String类中直接赋值和构造方法的区别,以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

创新互联是一家专业提供丹江口企业网站建设,专注与成都网站制作、网站建设、H5建站、小程序制作等业务。10年已为丹江口众多企业、政府机构等服务。创新互联专业网络公司优惠进行中。

区别:

直接赋值:只会开辟一块堆内存空间,并且该字符串对象可以自动保存在对象池中以供下次使用。

构造方法:会开辟两块堆内存空间,其中一块成为垃圾空间,不会自动保存在对象池中,可以使用intern()方法手工入池。

直接赋值:

java的String类中直接赋值和构造方法的区别

常量优化机制:

String类的设计使用了共享设计模式。

在JVM底层实际上会自动维护一个对象池(字符串对象池),如果现在采用了直接赋值的模式进行String类的对象实例化操作,那么该实例化对象(字符串内容)将自动保存到这个对象池之中。

如果下次继续使用直接赋值的模式声明String类对象,此时对象池之中如若有指定内容,将直接进行引用;

如若没有,则开辟新的字符串对象而后将其保存在对象池之中以供下次使用所谓的对象池就是一个对象数组(目的就是减少开销)

构造方法赋值:

类对象使用构造方法实例化是标准做法。

String str = new String("hello");

通过分析可知,如果使用String构造方法就会开辟两块堆内存空间,并且其中一块堆内存将成为垃圾空间。除了这一缺点之外,也会对字符串共享产生问题。

因此,一般会采取直接赋值的方式。

上述就是小编为大家分享的java的String类中直接赋值和构造方法的区别了,如果您也有类似的疑惑,不妨碍参照上述分析进行理解。如果想了解更多相关内容,请关注创新互联行业资讯。


文章标题:java的String类中直接赋值和构造方法的区别
网址分享:http://kswsj.cn/article/jjhpsh.html

其他资讯