[Effective Java 读书笔记] 第二章 创建和销毁对象 第五条

本文探讨了Java中如何优化对象创建,包括使用基本类型而非装箱类型、利用静态工厂方法及对象池等技巧来减少资源消耗,并讨论了在现代JVM环境下创建新对象的成本。

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

第五条 避免创建不必要的对象

    书中一开始举例:

String s = new String("stringette"); // don't do this
//应该使用下面,只会创建一次实例
String s = "stringette"; 

  同时书中回顾了第一条中的静态工厂,即Boolean.valueOf(String)的例子,即静态工厂方法也不会每次都创建实例

  然后用一个Date对象的使用的例子,说明了,当一个方法要重复访问固定值的对象实例时,可以用static实例,避免每次都创建同样的实例。

  然后书中使用了一个例子说明要优先使用基本类型而不是装箱类型,比如int和Integer,因为装箱类型是对象,创建实例会有资源消耗.

  最后,很辩证的,书中又回过头来说,不要以为创建新对象就一定是代价昂贵的,现代的JVM在小对象的创建和回收上是非常廉价的,如果创建新对象可以提升程序的清晰性、简洁性和功能性,这通常是好事,而对于轻量级的对象,建立对象池不是什么好事,代码负责而且占用内存。比如数据库连接池这种,建立新连接时代价昂贵,那么值得建立对象池。

 

转载于:https://www.cnblogs.com/jiangz222/p/4756290.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值