欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

提高J2SE性能的代碼技巧

系統(tǒng) 1757 0

1.JAVA開發(fā)工具集(JDK)

  ■ 設(shè)計(jì)了一組通用用途的類

  ■ 設(shè)計(jì)的質(zhì)量和實(shí)現(xiàn)多樣化

  一 有些部分設(shè)計(jì)和實(shí)現(xiàn)得很好

  一 而有些部分...

  ■ 你可以訪問JDK的源代碼

  一 %JAVA_HOME%\src.jar

  一 不要直接修改源代碼,但如果識(shí)別出一個(gè)JDK的方法是一個(gè) 瓶頸 ,檢查源代碼以理解為什么

2.數(shù)據(jù)結(jié)構(gòu)和算法

  ■ 推薦JAVA集合框架

  一 指南 java.sun. com /docs/books/tutorial/collections

  ■ 設(shè)計(jì)得很好的基本的數(shù)據(jù)結(jié)構(gòu)和算法

提高J2SE性能的代碼技巧

3.集合框架

提高J2SE性能的代碼技巧

  ■ 調(diào)換實(shí)現(xiàn)達(dá)到不同的性能特性

4.集合框架:接口與具體類

  ■ 面向接口編程,而不是具體類

  一 特別是對(duì)于方法參數(shù)

  一 在性能優(yōu)化時(shí)更容易改變實(shí)現(xiàn)

提高J2SE性能的代碼技巧

5.集合框架:具體類

  ■ 當(dāng)一個(gè)集合創(chuàng)建時(shí)要消除動(dòng)態(tài)增長的代價(jià),為其指定一個(gè)實(shí)際初始大小

  一些具體類(如:ArrayList)的動(dòng)態(tài)增長的代價(jià)是很高的

  ■ 在適當(dāng)?shù)牡胤娇紤]重用集合對(duì)象

  一 調(diào)用集合的clear()方法清楚它的所有元素

  ■ Object .hashCode()

  一 選擇一個(gè)算法保證哈希表的統(tǒng)一分配

  一 覆蓋繼承的Object.hashCode()方法, 默認(rèn)的實(shí)現(xiàn)返回的是對(duì)象引用值,沒有展示一個(gè)一致的分配

  一 從不返回一個(gè)常量

  一 非常小心地改變鍵的值的底層狀態(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(….)

  在一個(gè)已排序的List里查找指定的元素

  一 極限值

  min(…) max(….)

  一 其它

  reverse(….),fill(….), copy(…)

8.數(shù)組

  ■ 數(shù)組與ArrayList與Vector

  一 數(shù)組的速度大約比ArrayList快十倍

  一 數(shù)組的速度大約比Vector快40倍

  一 ArrayList的速度大約比Vevtor快3-4倍

  ■ 當(dāng)拷貝一個(gè)數(shù)組的元素到另一個(gè)數(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(…)

?

10.格式化

  ■ 文本格式化類:

  一 java. text .DateFaormat

  一 java.text.NumberFaormat

  一 java.text.MessageFaormat

  可能非常慢

  ■ 例如:第一次調(diào)用DateFormat.geInstance()創(chuàng)建超過12000個(gè)對(duì)象

  ■ 每次調(diào)用DateFormat. format 創(chuàng)建13個(gè)對(duì)象,加上第一次調(diào)用時(shí)的那次

  一 重用同一個(gè)DateFormat實(shí)例而不是重復(fù)調(diào)用DateFormat.getInstance是很值得做的

  ■ 其它的格式化類有相似的特點(diǎn)

11.XML處理:SAX

  ■ 處理XML文檔的低級(jí),事件驅(qū)動(dòng)庫

  ■ 最好的選擇,如果:

  一 你需要以線性的方式遍歷整個(gè)文檔

  一 你只需要查看幾項(xiàng)

  一 內(nèi)存效率是一個(gè)問題

12.XML處理

  ■ 試著在你的應(yīng)用程序里消除處理特定XML對(duì)象

  ■ 通過一個(gè)RMI調(diào)用傳遞DOM樹,結(jié)果會(huì)使整個(gè)java對(duì)象樹序列化。。。通常會(huì)4倍甚至更多的空間

  4.Buffered I/O

  ■ I/O類默認(rèn)不緩沖

  ■ 為你的I/O流使用緩沖的包裝器

  BufferedOutputStream

  BufferedInputStream

  BufferedReader

  BufferedWriter

  ■ 嘗試在構(gòu)造方法中使用緩沖大小參數(shù)

  一 BufferedInputStream:默認(rèn)2048個(gè)字節(jié)(JDK1.4.1)

  一 BufferedReader:默認(rèn)8192個(gè)字符(JDK1.4.1)

13.流與Readers

  ■ 在java里有兩個(gè)并行的I/O接口

  Reader和Writer

  一 BufferedInputStream:字符序列(16-bit)

  InputStream和OutputStream

  一 字節(jié)序列(8-bit)

  ■ 處理基于文本的文件,Readers&Writers更快

  更快的幅度達(dá)50%

  參考O'Reilly的"java Performance Tuning"第八章

14 .新I/O

  ■ 在JDK1.4或更高版本,java.nio包給出了更多I/O選項(xiàng)

  一 正則表達(dá)式匹配

  一 內(nèi)存映射緩存

  一 非 中斷 I/O

  ■ 這些能提供更高的I/O性能

15.序列化

  ■ 使一個(gè)對(duì)象"變平"允許使它流化成一個(gè)文件(為了 存儲(chǔ) )或者網(wǎng)絡(luò)連接(為了傳輸)

  一 添加Serializeable接口標(biāo)記你的類

  一 通過ObjectInputStream/ObjectOutputStream

  ■ 序列化被遠(yuǎn)程方法調(diào)用廣泛使用

  ■ 序列化可能會(huì)非常昂貴

  一 當(dāng)你序列化一個(gè)對(duì)象時(shí),這個(gè)對(duì)象可達(dá)的每個(gè)對(duì)象都會(huì)被序列化,可能會(huì)有非常多的對(duì)象

  一 除了內(nèi)部虛擬機(jī)程序,還會(huì)大量使用反射

  一 序列化是非常繁冗的

  只有一個(gè) int 數(shù)據(jù)的類占用37個(gè)字節(jié)

  序列化的對(duì)象包括了每個(gè)類成員及其值的全限定名

  一 速度是不對(duì)稱的,反序列化比序列化速度更慢

16.序列化:transient關(guān)鍵字

  ■ 可以重新定義序列化動(dòng)作

  一 使用transient關(guān)鍵字指出不需要在序列化流中包含的成員變量

  Private transient String name;

  一 這讓你可以指出對(duì)象里不重要的成員變量或者當(dāng)對(duì)象讀入內(nèi)存時(shí)可以重新計(jì)算的成員變量

17 .序列化:Externalizable接口

  ■ 消除序列化負(fù)載,實(shí)現(xiàn)Externalizable接口而不是Serializable

  Public void readExternal(ObjectInput out)

  Public void writerExternal(ObjectOutput out)

  ■ 程序員完全要負(fù)責(zé):

  一 管理序列化內(nèi)容

  一 調(diào)用readExternal()/wirteExternal()方法序列化對(duì)象

18.Externalizable

提高J2SE性能的代碼技巧

?

?

提高J2SE性能的代碼技巧


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 一级毛片免费看 | 亚洲在成人网在线看 | 日日碰日日操 | 久草8 | 高清久久 | 亚洲成a人片在线观看www流畅 | 2021最新国产精品一区 | 91久久精品国产一区二区 | 麻豆视频在线播放 | 99pao成人国产永久免费视频 | 国产精品国产成人国产三级 | 久久99精品国产麻豆婷婷 | 天天拍天天干天天操 | 魔法骑士在线观看免费完整版高清 | 精品伊人久久久 | 九九久久国产精品 | 久久亚洲国产高清 | 五月天亚洲综合 | 欧美天堂在线观看 | 魔法骑士在线观看免费完整版高清 | 一级欧美在线的视频 | 黄在线免费看 | 国产成人免费视频网站高清观看视频 | 九九九色| 日韩欧美一区二区三区四区 | 短视频网站免费观看 | 午夜成人免费视频 | 色接久久 | 欧美久草视频 | 男进女内免费视频无遮挡 | 免费的黄网站男人的天堂 | 欧美a性 | 男女国产视频 | 国产精品尤物在线观看一区 | 伊人超碰 | 日韩第一页 | 久久久久久全国免费观看 | 国产精品九九久久99视频 | 色偷偷亚洲男人 | 韩国美女激情视频一区二区 | 精品国产三级 |