Effective Java学习笔记之第5条 避免创建不必要的对象
第5條 避免創建不必要的對象
一般來說,最好能重用對象而不是在每次需要的時候就創建一個相同功能的對象。
? ? ? ?反面例子:?
String s = new String("stringette"); // DON'T DO THIS!
對于同時提供了靜態工廠方法和構造器都不可變類,通常可以使用靜態工廠方法而不是構造器。例如,靜態工廠方法Boolean.valueOf(String)幾乎總是優先于構造器Boolean(String)。
除了重用不可變對象之外,也可以重用那些已知不會被修改的可變對象。
適配器是指這樣一個對象:它把功能委托給一個后備對象,從而為后備對象提供一個可以替代的接口。由于適配器除了后備對象之外,沒有其他的狀態信息,所以針對某個給定對象的特定適配器而言,它不需要創建多個適配器。
在Java 1.5 的發行版本中,有一種創建多余對象的新方法,稱作自動裝箱(autoboxing),它允許程序員將基本類型和裝箱基本類型混用,按需自動裝箱和拆箱。
// Hideously slow program . Can you spot the object creation?
public static void main(String args[]) {
Long sum = 0L;
for (long i = 0; i < Integer.MAX_VALUE; i++) {
sum += i;
}
System.out.println(sum);
}
將sum的聲明從Long改成long。
要優先使用基本類型而不是裝箱基本類型。要當心無意識的自動裝箱。
小對象都創建和回收動作是非常廉價的,特別是在現代的JVM實現上更是如此。通過創建附加對象,提升程序的清晰性,簡潔性和功能性,這通常是好事。
轉載于:https://www.cnblogs.com/yanjf/p/3400501.html
總結
以上是生活随笔為你收集整理的Effective Java学习笔记之第5条 避免创建不必要的对象的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: X3D.Studio编辑器界面介绍
- 下一篇: 保存、删除配置文件