国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

性能優化

2019-11-17 03:57:51
字體:
來源:轉載
供稿:網友
1.不用new關鍵詞創建類的實例

  用new關鍵詞創建類的實例時,構造函數鏈中的所有構造函數都會被自動調用。但如果一個對象實現了Cloneable接口,我們可以調用它的clone()方法。clone()方法不會調用任何類構造函數。如果用Factory模式創建對象,則改用clone()方法創建新的對象實例非常簡單。

2.不要重復初始化變量

  默認情況下,調用類的構造函數時, java會把變量初始化成確定的值。當一個類從另一個類派生時,這一點尤其應該注意,因為用new關鍵詞創建一個對象時,構造函數鏈中的所有構造函數都會被自動調用。

3.慎用異常

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

要注意以下兩點。(1) 避免對應用程序的邏輯使用try/catch,如果可以用if,while等邏輯語句來處理,那么就盡可能的不用try/catch語句;(2) 重用異常 在必須要進行異常的處理時,要盡可能的重用已經存在的異常對象。因為在異常的處理中,生成一個異常對象要消耗掉大部分的時間。

4. 線程

  線程能充分利用系統的資源。在其他線程因為等待硬盤或網絡讀寫時,程序能繼續處理和運行。但是對線程運用不當,也會影響程序的性能。例:正確使用Vector類。Vector主要用來保存各種類型的對象(包括相同類型和不同類型的對象)。Vector提供了線程的安全保護功能。即使Vector類中的許多方法同步。但是如果你已經確認你的應用程序是單線程,這些方法的同步就完全不必要了。另外在Vector查找存儲的各種對象時,常常要花很多的時間進行類型的匹配。而當這些對象都是同一類型時,這些匹配就完全不必要了。因此,有必要設計一個單線程的,保存特定類型對象的類或集合來替代Vector類.

關于線程的操作,要注意:(1) 防止過多的同步 ,如果程序是單線程,則一定不要使用同步。(2) 同步方法而不要同步整個代碼段 ,對某個方法進行同步比對整個代碼段進行同步的性能要好。  

5.盡量使用局部變量

調用方法時傳遞的參數以及在調用中創建的臨時變量都保存在棧(Stack)中,速度較快。

6.盡可能的使用靜態變量

    讓所有的實例都共享這個變量。

7.盡量指定類的final修飾符

  帶有final修飾符的類是不可派生的。java.lang.String,為String類指定final防止了人們覆蓋length()方法。另外,如果指定一個類為final,則該類所有的方法都是final。Java編譯器會尋找機會內聯(inline)所有的final方法,此舉能夠使性能平均提高50%。

8.對象的生成和分配給它合理的空間和大小

  JAVA程序設計中常常會生成大量的對象(或實例)。由于系統不僅要花時間生成對象,以后可能還需花時間對這些對象進行垃圾回收和處理。因此,生成過多的對象將會給程序的性能帶來很大的影響;另外JAVA中的很多類都有它的默認的空間分配大小。對于StringBuffer類來講,默認的分配空間大小是16個字符。如果在程序中使用StringBuffer的空間大小不是16個字符,那么就必須進行正確的初始化。

9.使用非阻塞I/O

  版本較低的JDK不支持非阻塞I/O API。為避免I/O阻塞,一些應用采用了創建大量線程的辦法(在較好的情況下,會使用一個緩沖池)。這種技術可以在許多必須支持并發I/O流的應用中見到,如Web服務器。JDK 1.4引入了非阻塞的I/O庫(java.nio)。





本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/Foxalien/archive/2009/12/18/5029659.aspx
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 饶河县| 福州市| 罗城| 泰兴市| 土默特左旗| 南汇区| 镇原县| 灵宝市| 永丰县| 信丰县| 长宁县| 青岛市| 邢台市| 九江县| 金塔县| 海阳市| 夹江县| 翁源县| 海口市| 余庆县| 大化| 宝兴县| 长葛市| 襄城县| 军事| 甘肃省| 漳州市| 新竹市| 安平县| 江陵县| 通州区| 介休市| 社旗县| 安阳市| 两当县| 松阳县| 安龙县| 朝阳市| 虞城县| 三穗县| 永年县|