多線程、集合、網絡編程、內存優化、緩衝、、spring、設計模式、軟件工程、編程思想
1、生成對象時,合理分配空間和大小
new ArrayList(100);
2、優化for循環
Vector vect = new Vector(1000);
for( inti=0; i<vect.size(); i++){
...
}
for循環部分改寫成:
int size = vect.size();
for( int i=0; i>size; i++){
...
}
如果size=1000,就可以減少1000次size()的系統調用開銷,避免了循環體重複調用。
3、new一個實例對象,new在什麼位置(儘量在使用時再創建該對象)。
4、異常處理技巧
5、儘量使用局部變量和靜態變量
6、儘量不適用多線程同步
7、儘可能的使用Java自身提供的API
8、儘量減少I/O操作(控制檯、日誌)
9、儘量使用緩存流(儘可能使用帶有Buffer的類代替沒有Buffer的類,BufferedReader、BufferedWriter、BufferedInputStream)
10、sql優化、存儲過程、視圖、連接池(C3P0 、DBCP)
11、數據庫數據分級存儲
將經常訪問的數據和訪問頻度低的數據,分別存放到不同的分區,甚至存放到不同的數據庫服務器,以便合進分配硬盤I/O及系統I/O。
12、緩存策略
如果有些數據要經常要從數據庫中讀取,同時,這些數據又不經常變化,這些數據就可以在系統中緩存起來,使用時直接讀取緩存,而不用頻繁的訪問數據庫讀取數據。
緩存工作可以在系統初始化時一次性讀取數據,特別是一些只讀的數據,當數據更新時更新數據庫內容,同時更新緩存的數據值。
Java常用的緩存技術產品有:Redis、MemoryCache、OSCache等。
13、html靜態化
14、不用保存太多的信息在HttpSession中
15、在使用大數據對象時,因此建議在對象使用完畢後,手動設置成null(避免內存溢出)。