原創(chuàng)|其它|編輯:郝浩|2009-07-08 13:46:31.000|閱讀 429 次
概述:本文主要介紹提高J2SE性能的代碼技巧。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
1.格式化
■ 文本格式化類:
一 java.text.DateFaormat
一 java.text.NumberFaormat
一 java.text.MessageFaormat
可能非常慢
■ 例如:第一次調(diào)用DateFormat.geInstance()創(chuàng)建超過12000個對象
■ 每次調(diào)用DateFormat.format創(chuàng)建13個對象,加上第一次調(diào)用時的那次
一 重用同一個DateFormat實例而不是重復(fù)調(diào)用DateFormat.getInstance是很值得做的
■ 其它的格式化類有相似的特點(diǎn)
2.XML處理:SAX
■ 處理XML文檔的低級,事件驅(qū)動庫
■ 最好的選擇,如果:
一 你需要以線性的方式遍歷整個文檔
一 你只需要查看幾項
一 內(nèi)存效率是一個問題
3.XML處理
■ 試著在你的應(yīng)用程序里消除處理特定XML對象
■ 通過一個RMI調(diào)用傳遞DOM樹,結(jié)果會使整個java對象樹序列化。。。通常會4倍甚至更多的空間
4.Buffered I/O
■ I/O類默認(rèn)不緩沖
■ 為你的I/O流使用緩沖的包裝器
BufferedOutputStream
BufferedInputStream
BufferedReader
BufferedWriter
■ 嘗試在構(gòu)造方法中使用緩沖大小參數(shù)
一 BufferedInputStream:默認(rèn)2048個字節(jié)(JDK1.4.1)
一 BufferedReader:默認(rèn)8192個字符(JDK1.4.1)
5.流與Readers
■ 在java里有兩個并行的I/O接口
Reader和Writer
一 BufferedInputStream:字符序列(16-bit)
InputStream和OutputStream
一 字節(jié)序列(8-bit)
■ 處理基于文本的文件,Readers&Writers更快
更快的幅度達(dá)50%
參考O'Reilly的"java Performance Tuning"第八章
6.新I/O
■ 在JDK1.4或更高版本,java.nio包給出了更多I/O選項
一 正則表達(dá)式匹配
一 內(nèi)存映射緩存
一 非中斷I/O
■ 這些能提供更高的I/O性能
7.序列化
■ 使一個對象"變平"允許使它流化成一個文件(為了存儲)或者網(wǎng)絡(luò)連接(為了傳輸)
一 添加Serializeable接口標(biāo)記你的類
一 通過ObjectInputStream/ObjectOutputStream
■ 序列化被遠(yuǎn)程方法調(diào)用廣泛使用
■ 序列化可能會非常昂貴
一 當(dāng)你序列化一個對象時,這個對象可達(dá)的每個對象都會被序列化,可能會有非常多的對象
一 除了內(nèi)部虛擬機(jī)程序,還會大量使用反射
一 序列化是非常繁冗的
只有一個int數(shù)據(jù)的類占用37個字節(jié)
序列化的對象包括了每個類成員及其值的全限定名
一 速度是不對稱的,反序列化比序列化速度更慢
8.序列化:transient關(guān)鍵字
■ 可以重新定義序列化動作
一 使用transient關(guān)鍵字指出不需要在序列化流中包含的成員變量
Private transient String name;
一 這讓你可以指出對象里不重要的成員變量或者當(dāng)對象讀入內(nèi)存時可以重新計算的成員變量
9.序列化:Externalizable接口
■ 消除序列化負(fù)載,實現(xiàn)Externalizable接口而不是Serializable
Public void readExternal(ObjectInput out)
Public void writerExternal(ObjectOutput out)
■ 程序員完全要負(fù)責(zé):
一 管理序列化內(nèi)容
一 調(diào)用readExternal()/wirteExternal()方法序列化對象
10.Externalizable
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:IT專家網(wǎng)論壇