原創(chuàng)|其它|編輯:郝浩|2009-07-08 13:43:32.000|閱讀 403 次
概述:本文主要介紹提高J2SE性能的代碼技巧。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
1.JAVA開發(fā)工具集(JDK)
■ 設(shè)計(jì)了一組通用用途的類
■ 設(shè)計(jì)的質(zhì)量和實(shí)現(xiàn)多樣化
一 有些部分設(shè)計(jì)和實(shí)現(xiàn)得很好
一 而有些部分...
■ 你可以訪問JDK的源代碼
一 %JAVA_HOME%\src.jar
一 不要直接修改源代碼,但如果識別出一個JDK的方法是一個瓶頸,檢查源代碼以理解為什么
2.數(shù)據(jù)結(jié)構(gòu)和算法
■ 推薦JAVA集合框架
一 指南 java.sun.com/docs/books/tutorial/collections
■ 設(shè)計(jì)得很好的基本的數(shù)據(jù)結(jié)構(gòu)和算法
3.集合框架
■ 調(diào)換實(shí)現(xiàn)達(dá)到不同的性能特性
4.集合框架:接口與具體類
■ 面向接口編程,而不是具體類
一 特別是對于方法參數(shù)
一 在性能優(yōu)化時更容易改變實(shí)現(xiàn)
5.集合框架:具體類
■ 當(dāng)一個集合創(chuàng)建時要消除動態(tài)增長的代價(jià),為其指定一個實(shí)際初始大小
一些具體類(如:ArrayList)的動態(tài)增長的代價(jià)是很高的
■ 在適當(dāng)?shù)牡胤娇紤]重用集合對象
一 調(diào)用集合的clear()方法清楚它的所有元素
■ Object.hashCode()
一 選擇一個算法保證哈希表的統(tǒng)一分配
一 覆蓋繼承的Object.hashCode()方法, 默認(rèn)的實(shí)現(xiàn)返回的是對象引用值,沒有展示一個一致的分配
一 從不返回一個常量
一 非常小心地改變鍵的值的底層狀態(tài)
6.集合框架:實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)
■ 如果一定要實(shí)現(xiàn)自己的數(shù)據(jù)結(jié)構(gòu),依賴于集合接口實(shí)現(xiàn)你的類
一 可以使用java.util.Collections工具方法恰當(dāng)?shù)貙?shí)現(xiàn)你的具體數(shù)據(jù)結(jié)構(gòu)
■ 擴(kuò)大數(shù)據(jù)結(jié)構(gòu)集合,你可以插入其它的開發(fā)成果
7.集合框架:基礎(chǔ)算法
■ Java.util.Collections類里的算法
一 sort(…..)
以升序重新排列List的元素
輕微地優(yōu)化MergeSort-O(nlog(n))的版本
一 binarySearch(….)
在一個已排序的List里查找指定的元素
一 極限值
min(…) max(….)
一 其它
reverse(….),fill(….), copy(…)
8.數(shù)組
■ 數(shù)組與ArrayList與Vector
一 數(shù)組的速度大約比ArrayList快十倍
一 數(shù)組的速度大約比Vector快40倍
一 ArrayList的速度大約比Vevtor快3-4倍
■ 當(dāng)拷貝一個數(shù)組的元素到另一個數(shù)組時,使用System.arrycopy(…)
9.數(shù)組:基礎(chǔ)算法
■ JAVA2的java.util.Arrays類提供了一組重載方法,為基礎(chǔ)數(shù)組實(shí)現(xiàn)了最佳化的算法(與java.util.Collections類相似)
■ Java.util.Arrays類的里的算法
一 binarySearch(…)
一 equals(…)
一 fill(…)
一 sort(…)
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:IT專家網(wǎng)論壇