首页 > 代码库 > Effective Java之避免创建不必要的对象和消除过期的引用

Effective Java之避免创建不必要的对象和消除过期的引用

  为什么要避免创建不必要的对象?创建对象的过程还是比较耗性能的,根据书上给出的性能测试,重复创建对象的时间消耗是重用对象时间消耗的250倍。下面列出一些可以重用对象的场景。

  1、String类型要注意,String s = "as" 和 String s = new String("as")之间有很大的差别,第二种创建String实例的方法其实会产生两个"as"对象。

  2、针对已知不会被修改的可变对象,可以只在第一次使用时初始化,而不是在每次使用时都创建。

  3、优先使用基本类型,如int,long等,而不是装箱基本类型Integer,Long等,因为每次使用装箱基本类型,都要耗费一定的时间和内存去创建它的对象。

 

  JVM会自动帮我们清理无法访问的对象,但是如果某个数组中的某个对象我们将永远也不会使用,如果我们不去管他,那么那个对象会永远驻留在内存当中,应为存放它的数组对象还存在,针对这种情况,要及时地将不再使用的对象置为null。

 

  注:知道有差距,没想到差距这么大。

  

 

Effective Java之避免创建不必要的对象和消除过期的引用