亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

29個要點幫你完成java代碼優化

2019-11-26 15:14:55
字體:
來源:轉載
供稿:網友

通過java代碼規范來優化程序,優化內存使用情況,防止內存泄露

可供程序利用的資源(內存、CPU時間、網絡帶寬等)是有限的,優化的目的就是讓程序用盡可能少的資源完成預定的任務。優化通常包含兩方面的內容:減小代碼的體積,提高代碼的運行效率。本文討論的主要是如何提高代碼的效率。
在Java程序中,性能問題的大部分原因并不在于Java語言,而是在于程序本身。養成好的代碼編寫習慣非常重要,比如正確地、巧妙地運用java.lang.String類和java.util.Vector類,它能夠顯著地提高程序的性能。下面我們就來具體地分析一下這方面的問題。

1、 盡量指定類的final修飾符 帶有final修飾符的類是不可派生的。
在Java核心API中,有許多應用final的例子,例如java.lang.String。為String類指定final防止了人們覆蓋length()方法。另外,如果指定一個類為final,則該類所有的方法都是final。Java編譯器會尋找機會內聯(inline)所有的final方法(這和具體的編譯器實現有關)。此舉能夠使性能平均提高50% 。

2、 盡量重用對象。
特別是String 對象的使用中,出現字符串連接情況時應用StringBuffer 代替。由于系統不僅要花時間生成對象,以后可能還需花時間對這些對象進行垃圾回收和處理。因此,生成過多的對象將會給程序的性能帶來很大的影響。

3、 盡量使用局部變量,調用方法時傳遞的參數以及在調用中創建的臨時變量都保存在棧(Stack)中,速度較快。
其他變量,如靜態變量、實例變量等,都在堆(Heap)中創建,速度較慢。另外,依賴于具體的編譯器/JVM,局部變量還可能得到進一步優化。請參見《盡可能使用堆棧變量》。

4、 不要重復初始化變量
默認情況下,調用類的構造函數時, Java會把變量初始化成確定的值:所有的對象被設置成null,整數變量(byte、short、int、long)設置成0,float和double變量設置成0.0,邏輯值設置成false。當一個類從另一個類派生時,這一點尤其應該注意,因為用new關鍵詞創建一個對象時,構造函數鏈中的所有構造函數都會被自動調用。

5、 在JAVA + ORACLE 的應用系統開發中,java中內嵌的SQL語句盡量使用大寫的形式,以減輕ORACLE解析器的解析負擔。

6、 Java 編程過程中,進行數據庫連接、I/O流操作時務必小心,在使用完畢后,即使關閉以釋放資源。
因為對這些大對象的操作會造成系統大的開銷,稍有不慎,會導致嚴重的后果。

7、 由于JVM的有其自身的GC機制,不需要程序開發者的過多考慮,從一定程度上減輕了開發者負擔,但同時也遺漏了隱患,過分的創建對象會消耗系統的大量內存,嚴重時會導致內存泄露,因此,保證過期對象的及時回收具有重要意義。
JVM回收垃圾的條件是:對象不在被引用;然而,JVM的GC并非十分的機智,即使對象滿足了垃圾回收的條件也不一定會被立即回收。所以,建議我們在對象使用完畢,應手動置成null。

8、 在使用同步機制時,應盡量使用方法同步代替代碼塊同步。

9、 盡量減少對變量的重復計算
例如:for(int i = 0;i < list.size; i ++) {

}
應替換為:
for(int i = 0,int len = list.size();i < len; i ++){

}

10、盡量采用lazy loading 的策略,即在需要的時候才開始創建。

例如: String str = “aaa”;
if(i == 1) {
list.add(str);
}
應替換為:
if(i == 1) {
String str = “aaa”;
list.add(str);
}

11、慎用異常

異常對性能不利。拋出異常首先要創建一個新的對象。Throwable接口的構造函數調用名為fillInStackTrace()的本地(Native)方法,fillInStackTrace()方法檢查堆棧,收集調用跟蹤信息。只要有異常被拋出,VM就必須調整調用堆棧,因為在處理過程中創建了一個新的對象。 異常只能用于錯誤處理,不應該用來控制程序流程。

12、不要在循環中使用:

Try {
} catch() {
}
應把其放置在最外層。

13、StringBuffer 的使用:

StringBuffer表示了可變的、可寫的字符串。
有三個構造方法 :
StringBuffer (); //默認分配16個字符的空間
StringBuffer (int size); //分配size個字符的空間
StringBuffer (String str); //分配16個字符+str.length()個字符空間
你可以通過StringBuffer的構造函數來設定它的初始化容量,這樣可以明顯地提升性能。

這里提到的構造函數是StringBuffer(int length),length參數表示當前的StringBuffer能保持的字符數量。你也可以使用ensureCapacity(int minimumcapacity)方法在StringBuffer對象創建之后設置它的容量。首先我們看看StringBuffer的缺省行為,然后再找出一條更好的提升性能的途徑。
StringBuffer在內部維護一個字符數組,當你使用缺省的構造函數來創建StringBuffer對象的時候,因為沒有設置初始化字符長度,StringBuffer的容量被初始化為16個字符,也就是說缺省容量就是16個字符。當StringBuffer達到最大容量的時候,它會將自身容量增加到當前的2倍再加2,也就是(2*舊值+2)。如果你使用缺省值,初始化之后接著往里面追加字符,在你追加到第16個字符的時候它會將容量增加到34(2*16+2),當追加到34個字符的時候就會將容量增加到70(2*34+2)。無論何事只要StringBuffer到達它的最大容量它就不得不創建一個新的字符數組然后重新將舊字符和新字符都拷貝一遍亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

亚洲欧美日本伦理| 欧美性猛交xxxx免费看久久久| 国产精品久久久久av免费| 亚洲人成欧美中文字幕| 亚洲成av人乱码色午夜| 久久精品99无色码中文字幕| 91精品国产综合久久男男| 精品日韩视频在线观看| 午夜免费在线观看精品视频| 亚洲国产精品福利| 成人性生交大片免费观看嘿嘿视频| 久久视频在线播放| 国产欧美日韩专区发布| 日韩有码片在线观看| 中文字幕欧美日韩va免费视频| 色999日韩欧美国产| 秋霞成人午夜鲁丝一区二区三区| 人人爽久久涩噜噜噜网站| 亚洲精品国产电影| 久久久久久亚洲精品中文字幕| 国a精品视频大全| 91在线精品播放| 亚洲国产高潮在线观看| 亚洲天堂第一页| 亚洲福利在线看| 久久久亚洲天堂| 成人中文字幕在线观看| 欧美在线影院在线视频| 日韩欧美高清在线视频| 色综合天天狠天天透天天伊人| 亚洲日本欧美中文幕| 国产ts人妖一区二区三区| 在线成人激情视频| 日韩精品视频在线| 欧美成人高清视频| 欧美区在线播放| 在线视频日本亚洲性| 日韩福利伦理影院免费| 精品久久久久久久久国产字幕| 中文字幕不卡av| 欧美一级大片在线观看| 91久久国产婷婷一区二区| 国产精品成人免费电影| 国产精品爱久久久久久久| 亚洲第一页在线| 久久精品99久久久香蕉| 日韩在线视频二区| 8090成年在线看片午夜| 亚洲石原莉奈一区二区在线观看| 国产婷婷97碰碰久久人人蜜臀| 97人人爽人人喊人人模波多| 国产精品免费电影| 久久综合伊人77777蜜臀| 欧美激情性做爰免费视频| 成人久久久久久| 欧美洲成人男女午夜视频| 久久久久久久久亚洲| 亚洲精品91美女久久久久久久| 亚洲精品国产成人| 成人免费大片黄在线播放| 欧美黑人极品猛少妇色xxxxx| 日韩av在线免费观看一区| 久久久久久九九九| 91精品国产91久久久久久最新| 亚洲成av人影院在线观看| 精品电影在线观看| 亚洲自拍偷拍色图| 最近中文字幕mv在线一区二区三区四区| 国产精品爱啪在线线免费观看| 97色在线视频观看| 欧美精品九九久久| 97久久精品人搡人人玩| 亚洲第一av网| 亚洲伊人久久综合| 国产精品吴梦梦| 这里只有精品视频在线| 国产成人精品视频在线| 最近中文字幕mv在线一区二区三区四区| 欧美精品亚州精品| 亚洲香蕉av在线一区二区三区| 欧美精品久久久久a| www.日本久久久久com.| 欧美成人午夜影院| 国产精品jvid在线观看蜜臀| 国内精品久久久久伊人av| 国内精品久久久久久影视8| 久久在线免费视频| 色www亚洲国产张柏芝| 日本韩国欧美精品大片卡二| 亚洲va欧美va国产综合久久| 亚洲精品不卡在线| 亚洲专区国产精品| 2019av中文字幕| 国产精品成人免费视频| 国产视频福利一区| 欧美激情一级欧美精品| 国产精品嫩草影院一区二区| 久久在线免费视频| 欧美激情第一页xxx| 国产91在线高潮白浆在线观看| 成人激情在线观看| 欧洲成人午夜免费大片| 精品久久久视频| 一区二区三区回区在观看免费视频| 欧美丝袜一区二区| 国产一区二区三区在线| 亚洲国产精品免费| 91在线精品播放| 久久精品国产欧美激情| 在线午夜精品自拍| 欧美电影免费观看高清| 国产成人一区三区| 亚洲色图狂野欧美| 亚洲国产成人精品电影| www.日本久久久久com.| 日韩毛片在线看| 色哟哟亚洲精品一区二区| 亚洲三级黄色在线观看| 91亚洲国产成人精品性色| 亚洲精品短视频| 国产成人精品av在线| 亚洲美腿欧美激情另类| 国产精品久久久久一区二区| 中文日韩电影网站| 不卡av在线网站| 久久影视电视剧凤归四时歌| 亚洲精品ady| 国产日韩欧美在线视频观看| 亚洲人成电影在线观看天堂色| 91网站免费看| 欧美日韩国产精品一区二区三区四区| 欧美日韩一区二区三区在线免费观看| 国产性猛交xxxx免费看久久| 在线一区二区日韩| 久久这里有精品视频| 欧美日韩人人澡狠狠躁视频| 91精品国产91久久久久久不卡| 国产亚洲欧洲高清| 91av在线播放视频| 不卡在线观看电视剧完整版| 国产精品视频内| 91精品91久久久久久| 俺去啦;欧美日韩| 久久久视频在线| 97国产在线视频| 国产精品成av人在线视午夜片| 尤物九九久久国产精品的特点| 欧美日韩国产一区在线| 日韩av中文字幕在线免费观看| 欧美wwwwww| 欧美一级片一区| 国产在线视频欧美| 欧美一级视频免费在线观看| 日韩一二三在线视频播| 成人情趣片在线观看免费| 国产精品亚洲一区二区三区| 日韩人在线观看| 欧美xxxx综合视频| 另类专区欧美制服同性| 日韩在线视频免费观看高清中文| 国产日韩欧美电影在线观看| 久久天天躁狠狠躁夜夜爽蜜月| 日韩成人激情视频| 国语自产在线不卡|