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

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

    书中一开始举例:

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