Effective Java学习笔记之第5条 避免创建不必要的对象
第5條 避免創(chuàng)建不必要的對象
一般來說,最好能重用對象而不是在每次需要的時(shí)候就創(chuàng)建一個(gè)相同功能的對象。
? ? ? ?反面例子:?
String s = new String("stringette"); // DON'T DO THIS!
對于同時(shí)提供了靜態(tài)工廠方法和構(gòu)造器都不可變類,通常可以使用靜態(tài)工廠方法而不是構(gòu)造器。例如,靜態(tài)工廠方法Boolean.valueOf(String)幾乎總是優(yōu)先于構(gòu)造器Boolean(String)。
除了重用不可變對象之外,也可以重用那些已知不會(huì)被修改的可變對象。
適配器是指這樣一個(gè)對象:它把功能委托給一個(gè)后備對象,從而為后備對象提供一個(gè)可以替代的接口。由于適配器除了后備對象之外,沒有其他的狀態(tài)信息,所以針對某個(gè)給定對象的特定適配器而言,它不需要?jiǎng)?chuàng)建多個(gè)適配器。
在Java 1.5 的發(fā)行版本中,有一種創(chuàng)建多余對象的新方法,稱作自動(dòng)裝箱(autoboxing),它允許程序員將基本類型和裝箱基本類型混用,按需自動(dòng)裝箱和拆箱。
// 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。
要優(yōu)先使用基本類型而不是裝箱基本類型。要當(dāng)心無意識的自動(dòng)裝箱。
小對象都創(chuàng)建和回收動(dòng)作是非常廉價(jià)的,特別是在現(xiàn)代的JVM實(shí)現(xiàn)上更是如此。通過創(chuàng)建附加對象,提升程序的清晰性,簡潔性和功能性,這通常是好事。
轉(zhuǎn)載于:https://www.cnblogs.com/yanjf/p/3400501.html
總結(jié)
以上是生活随笔為你收集整理的Effective Java学习笔记之第5条 避免创建不必要的对象的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: X3D.Studio编辑器界面介绍
- 下一篇: 2022上海Java工资收入概览