把代碼寫的簡潔明了是每個(gè)Java程序員必須懂得一門學(xué)問,表達(dá)清晰的代碼無論在糾錯(cuò)時(shí)還說在修改時(shí)都更加方便,這也大大提高了使用Java做開發(fā)的效率。
首先。我們要搞清楚優(yōu)化代碼的目的,減小代碼的體積,提高代碼運(yùn)行的效率。
代碼優(yōu)化具體細(xì)節(jié):
盡量指定類、方法的final修飾符
盡量重用對(duì)象特別是String的使用,出現(xiàn)字符串連接時(shí)使用StringBuilder/StringBuffer代替。
盡可能使用局部變量
及時(shí)關(guān)閉流:進(jìn)行數(shù)據(jù)庫連接、I/O流操作,在使用完畢后,及時(shí)關(guān)閉以釋放資源。
盡量減少對(duì)變量的重復(fù)計(jì)算
盡量采用懶加載的策略,即在需要的時(shí)候才創(chuàng)建
慎用異常
不要在循環(huán)中使用try…catch…,應(yīng)該把其放在外層
如果能估計(jì)到待添加的內(nèi)容長度,為底層以數(shù)組方式實(shí)現(xiàn)的集合、工具類指定初始長度
當(dāng)復(fù)制大量數(shù)據(jù)時(shí),使用System.arraycopy()命令
乘法和除法使用移位操作:移位操作雖然快,但是可能會(huì)使代碼不太好理解,因此 加上相應(yīng)的注釋。
循環(huán)內(nèi)不要不斷創(chuàng)建對(duì)象引用
不要將數(shù)組聲明為public static final
盡量在合適的場合使用單例
使用單例可以減輕加載的負(fù)擔(dān)、縮短加載的時(shí)間、提高加載的效率,
通信時(shí)盡量避免隨意使用靜態(tài)變量
及時(shí)清除不再需要的會(huì)話
實(shí)現(xiàn)RandomAccess接口的集合比如ArrayList,應(yīng)當(dāng)使用普通的for循環(huán)而不是 foreach循環(huán)來遍歷
使用同步代碼塊替代同步方法
將常量聲明為static final,并以大寫命名
將常量的名字以大寫命名也可以方便區(qū)分出常量與變量
不要?jiǎng)?chuàng)建一些不使用的對(duì)象,不要導(dǎo)入一些不使用的類
程序運(yùn)行過程中避免使用反射
使用數(shù)據(jù)庫連接池和線程池
使用帶緩沖的輸入輸出流進(jìn)行IO操作,這可以極大地提升IO效率
LinkedList 不要讓public方法中有太多的形參
字符串變量和字符串常量equals的時(shí)候?qū)⒆址A繉懺谇懊妫梢员苊饪罩羔槷惓?/span>
不要對(duì)超出范圍的基本數(shù)據(jù)類型做向下強(qiáng)制轉(zhuǎn)型
公用的集合類中不使用的數(shù)據(jù)一定要及時(shí)remove掉
使用有效率的方式去遍歷Map
學(xué)習(xí)就像逆水行舟,學(xué)習(xí)Java更是這樣,將Java代碼寫的簡潔明了,不要讓別人看見你的代碼時(shí)間想到的是刪了重寫而不是代碼優(yōu)化。