创建和销毁对象——避免创建不必要的对象——重用不可变对象(摘自Effective java)

本文探讨了在编程中如何通过重用字符串实例来提高代码效率,避免不必要的对象创建,尤其是在循环或频繁调用的方法中。文章对比了创建新实例与直接使用字符串常量两种方式,强调后者能够有效减少内存消耗。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一般来说,最好能重用对象而不是在每次需要的时候就创建一个相同功能的新队想。如果对象是不可变的,它就始终可以被重用。


作为一个极端的反面例子:
String s = new String("test"); // Don't do this


该语句每次被执行的时候都创建一个新的String实例,当这些创建对象的动作全都是不必要的。传递给String构造器的参数("test")本身就是一个String实例;功能方面等同于构造器创建的所有对象。如果这种方法是在一个循环中,或者是在一个被频繁调用的方法中,就会创建出成千上万不必要的String实例。


改进后的版本:
String s = "test";


这个版本只用了一个String实例,而不是每次执行的时候都创建一个新的实例。而且,它可以保证,对于所有在同一台虚拟机中运行的代码,只要它们包含相同的字符串常量,该对象就会被重用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值