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)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章