避免对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为0的list而不是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

Java代码中可以优化性能的小细节的更多相关文章

  1. java高级用法之:在JNA中将本地方法映射到JAVA代码中

    目录 简介 Library Mapping Function Mapping Invocation Mapping 防止VM崩溃 性能考虑 总结 简介 不管是JNI还是JNA,最终调用的都是nativ ...

  2. 关于在Java代码中写Sql语句需要注意的问题

    最近做程序,时不时需要自己去手动将sql语句直接写入到Java代码中,写入sql语句时,需要注意几个小问题. 先看我之前写的几句简单的sql语句,自以为没有问题,但是编译直接报错. String st ...

  3. Spring MVC框架下在java代码中访问applicationContext.xml文件中配置的文件(可以用于读取配置文件内容)

    <bean id="propertyConfigurer" class="com.****.framework.core.SpringPropertiesUtil& ...

  4. 使用mongo-java-driver3.0.2.jar和mongodb3.0在java代码中的用户验证4

    以下是使用mongo-java-driver3.0.2.jar和mongodb3.0.4在java代码中的用户验证: ServerAddress sa = new ServerAddress(host ...

  5. Android color(颜色) 在XML文件和java代码中

    Android color(颜色) 在XML文件和java代码中,有需要的朋友可以参考下. 1.使用Color类的常量,如: int color = Color.BLUE;//创建一个蓝色 是使用An ...

  6. java代码中获取进程process id(转)

    另一方面,线程ID=进程ID+内部线程对象ID并不成立,    参考: blog.csdn.net/heyetina/article/details/6633901     如何在java代码中获取进 ...

  7. android中在java代码中设置Button按钮的背景颜色

    android中在java代码中设置Button按钮的背景颜色 1.设置背景图片,图片来源于drawable: flightInfoPanel.setBackgroundDrawable(getRes ...

  8. Java代码中获取Json的key值

    测试json字符串: {"access_token":"hkbQl5o_l67dZ7_vJRATKBwTLk9Yj5QyMuOJThAr8Baj0xWf4wxW1p4ym ...

  9. 在java代码中执行js脚本,实现计算出字符串“(1+2)*(1+3)”的结果

            今天在公司项目中,发现一个计算运费的妙招.由于运费规则各种各样,因此写一个公式存到数据库.下次需要计算运费时,直接取出这个公式,把公式的未知变量给替换掉,然后计算出结果就是ok了. 一 ...

随机推荐

  1. FFMPEG+SDL实现视频播放器

    一. 前言 基于学习ffmpeg和sdl,写一个视频播放器是个不错的练手项目. 视频播放器的原理很多人的博客都有讲过,这里出于自己总结的目的,还是会做一些概况. 二. 视频播放器基本原理 2.1 解封 ...

  2. 0629 Flink Meetup 北京站 PPT下载

    工程实用问题解决方案介绍,实用

  3. Leetcode61.旋转链表

    链表中的点已经相连,一次旋转操作意味着: 先将链表闭合成环 找到相应的位置断开这个环,确定新的链表头和链表尾 class Solution{ public: ListNode* rotateRight ...

  4. 高效Redis工具类

    一.引言 本篇博客以redis缓存为主.至于什么是redis缓存?还有没有其它的缓存?哪个缓存的性能会更好?这里就不一一做介绍了!(有兴趣的可以自己去百度一下) 在日常的开发中,我们或多或少(必须)的 ...

  5. C++面向对象程序设计学习笔记(4)

    类与对象(2) string类 C++不仅向下兼容C的字符表示方法,也声明了一种更方便的字符串类型,即string类. 想要使用string类,必须包括头文件string,即要声明 #include& ...

  6. Shell编程——环境变量

    在Shell程序启动时会自动定义一组变量,这组变量就是环境变量,系统中的所有命令都可以使用这些变量参数. 1.如果在父Shell定义环境变量,在子Shell中也能查看到. (1)父Shell与子She ...

  7. MySQL学习记录(导入Excel表到数据库,并筛选条件输出)

    附上:重置mysql账号密码方法 ubuntu系统下mysql重置密码和修改密码操作 - skh2015java的博客 - CSDN博客(改完重启,登录mysql要root/sudo权限) Cento ...

  8. Java高级工程师常见问题

    MySQL数据库调优   定位慢查询得到生产环境那些sql语句响应慢,根据执行计划进行分析调优事物管理索引结构(B+树)平衡二叉树.B树.B+树分库分表后,如何解决查询    使用第三方数据库中间件( ...

  9. Salesforce 开发整理(九) 开发中使用的一些小技巧汇总[持续更新]

    1.查询一个对象下所有字段 当需要查询一个对象所有字段进行复制或其他操作,可以使用一段拼接的语句来查询 String query = 'select '; for(String fieldApi : ...

  10. 守护进程--Supervisor

    01,介绍 02,安装部署 yum install python-setuptoolseasy_install supervisor 03,使用说明 supervisor安装成功之后,没有提供默认的配 ...