Java代碼中可以優化性能的小細節

避免對boolean類型的判定
反例:

1
2
if("a".equles("a")==true)`{
}

正例:

1
2
if(Objects.equles("a","a"))`{
}

**多用條件判斷符 **

反例:

1
2
3
4
5
6
7
if(a<0)`{
return 0;
}else{
return 1;
}
```
正例:

a<0?0:1;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

**避免使用instanceof、避免把子類向父類轉型**
掌握好多態即可



**建議多使用局部變量**
局部變量保存在棧中,佔用的內存隨着方法的執行完畢而被釋放

**多使用位運算代替算術運算**
就是可讀性差點

**一維數組和二維數組的恩怨情仇**
保存同樣的數據使用一維數組和二維數組的區別是前者以時間換空間後者是以空間換時間

**不要經常使用取反操作符**

反例:

if(!a<0)`{
return 0;
}else{
return 1;
}

1
正例:

if(a>=0)`{
return 0;
}else{
return 1;
}

1
2
3
4
5
6
7
8
9

**快速操作一個超大List的連續性數據**

使用集合的`List<E> subList(int fromIndex,int toIndex)`方法可以返回一個超大List的一段連續性數據,此時對這個subList的所有操作比如`clear()`等操作都會影響到原List

**當一個方法的返回值是List的時候請返回一個size爲0list而不是null從而避免空指針異常**

**單個字符串連接時使用單引號代替雙引號**
反例:

“abc”+“d”;

1
正例:

“abc”+‘d’;

1
2
3
4
5
6
**大量字符串拼接時使用StringBuffer代替+**

**切割字符串的時候使用StringTokenizer代替split**

**提前計算出需要循環的次數**
反例:

for(int i=0i<a.size();;i++){
}

1
正例:

for(int i=0,n=a.size();i<n;i++){
}

1
2
3

**減少不必要的需要循環的次數**
反例:

int index=-1;
for(int i=0,n=a.size();i<n;i++){
if(a.get(i)==3){
index=i;
}
}

1
正例:

int index=-1;
for(int i=0,n=a.size();i<n;i++){
if(a.get(i)==3){
index=i;
break;
}
}

**不要在循環中改變數組/List的大小**

**使用`System.arrayCopy`進行復制數組**

**使用Buffer進行IO操作**

**釋放資源的代碼要放在finally代碼塊中**

**多用java.util.Obects工具類**




<h4 style="color:red">推薦閱讀</h4>
 


1. [SpringCloud學習系列彙總](https://mp.weixin.qq.com/s/TL4w0u6QA-wFx19IH9Xs6A)    
2. [爲什麼一線大廠面試必問redis,有啥好問的?](https://mp.weixin.qq.com/s/NSojCEA-lF8ocR1XeuXbsg)    
3. [多線程面試必備基礎知識彙總](https://mp.weixin.qq.com/s/c3ngvdAc6lAs4d1sIdg16Q/)  
4. [Java集合源碼分析彙總-JDK1.8](https://mp.weixin.qq.com/s/UAGihOEUPmFnwrgkSJZqpQ)      
5. [Linux常用命令速查-彙總篇](https://mp.weixin.qq.com/s/WG4ZWfId-MRslWtcDtx0aA)      
6. [JVM系列文章彙總](https://mp.weixin.qq.com/s/uDftoMTwJqk7H9bfQaa0sw)      
7. [MySQL系列文章彙總](https://mp.weixin.qq.com/s/SUV1DRSFhOIksj9C_qC7aA) 
7. [RabbitMQ系列文章彙總](https://mp.weixin.qq.com/s/rDqhdBk879neFM_CZzK9Yw)    


<h4 style="color:red">博客所有文章首發於公衆號《Java學習錄》轉載請保留
掃碼關注公衆號即可領取2000GJava學習資源 </h4>



![1](https://shiyujun.cn/img/gongzhonghao.jpg)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章