您好,登录后才能下订单哦!
这期内容当中的小编将会给大家带来有关java的String类中直接赋值和构造方法的区别,以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
区别:
直接赋值:只会开辟一块堆内存空间,并且该字符串对象可以自动保存在对象池中以供下次使用。
构造方法:会开辟两块堆内存空间,其中一块成为垃圾空间,不会自动保存在对象池中,可以使用intern()方法手工入池。
直接赋值:
常量优化机制:
String类的设计使用了共享设计模式。
在JVM底层实际上会自动维护一个对象池(字符串对象池),如果现在采用了直接赋值的模式进行String类的对象实例化操作,那么该实例化对象(字符串内容)将自动保存到这个对象池之中。
如果下次继续使用直接赋值的模式声明String类对象,此时对象池之中如若有指定内容,将直接进行引用;
如若没有,则开辟新的字符串对象而后将其保存在对象池之中以供下次使用所谓的对象池就是一个对象数组(目的就是减少开销)
构造方法赋值:
类对象使用构造方法实例化是标准做法。
String str = new String("hello");
通过分析可知,如果使用String构造方法就会开辟两块堆内存空间,并且其中一块堆内存将成为垃圾空间。除了这一缺点之外,也会对字符串共享产生问题。
因此,一般会采取直接赋值的方式。
上述就是小编为大家分享的java的String类中直接赋值和构造方法的区别了,如果您也有类似的疑惑,不妨碍参照上述分析进行理解。如果想了解更多相关内容,请关注亿速云行业资讯。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。