java性能优化读书笔记(1)
1.采用clone()方式創(chuàng)建對象
? java語言里面的所有類都默認繼承自java.lang.Object,此類里有一個clone()方法:
? ?拷貝對象返回的是一個新的對象,而不是一個對象的引用地址;
? ?拷貝對象與用new關鍵字操作返回的新對象的區(qū)別是這個拷貝已經(jīng)包含了一些原來對象的信息,而不是對象的初始信息。
工廠模式的實現(xiàn):
反例
public static Credit getNewCredit(){return new Credit(); //創(chuàng)建一個新的Credit對象 }正例
使用clone()方法
private static Credit BaseCredit=new Credit(); public static Credit getNewCredit(){return (Credit)BaseCredit.clone(); }2.避免boolean判斷
? ?boolean 一個字節(jié) 8位
反例
boolean method(String str){return str.endswith("a")==true;//判斷字符串是否以a結(jié)尾 }正例
boolean method(String str){ return str.endswith("a"); }3.多用條件操作符
反例:
public int method(boolean isDone){if(isDone){return 0;}else{return 1;} }正例:
public int method(boolean isDone){return (isDone ?0:1); }4.靜態(tài)方法替代實例方法
工具類
5.有條件的使用final字段
final告訴編譯器該方法不會被重載
6.避免不必要的instanceof操作
7.避免在子類中存在父類轉(zhuǎn)換
Object是所有類的父類
8.建議多使用局部變量
9.算法效率最高的方式--位運算
10.用一維數(shù)組替換二維數(shù)組
二維數(shù)組的訪問速度優(yōu)于一維數(shù)組,但二維數(shù)組占用的內(nèi)存大于一維數(shù)組。
內(nèi)存敏感時可以轉(zhuǎn)換一下處理
11.布爾運算代替位運算
&&? ||?
12.提取表達式優(yōu)化
13.不要總是使用取反操作費 !
14.不要重復初始化變量
15.變量初始化過程思考
16.對象的創(chuàng)建、訪問過程
17.在switch語句中使用字符串
18.數(shù)值字面量的改進
0b,0B還有_
19.優(yōu)化變長參數(shù)的方法調(diào)用
@SafeVarargs
20.針對基本數(shù)據(jù)類型的優(yōu)化
Integer.compare(x,y)
21.空變量
?
轉(zhuǎn)載于:https://www.cnblogs.com/davidwang456/p/8881350.html
總結(jié)
以上是生活随笔為你收集整理的java性能优化读书笔记(1)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 苏宁易购Android架构演进史
- 下一篇: 利用反射给JAVABEAN实例赋值