阿里Java高效代码50例(学习总结)

如何编写高效代码?这是每一个研发团队都面临的一个重大问题。《阿里Java高效代码50例》(实际54例)来源于实际经验,帮助咱们成为编写高效代码的软件工程师。
正则表达式

 

类别数组

要点安全

常量&变量多线程

直接赋值常量值,禁止声明新对象ide

当成员变量值无需改变时,尽可能定义为静态常量函数

尽可能使用基本数据类型,避免自动装箱和拆箱ui

若是变量的初值会被覆盖,就没有必要给变量赋初值spa

尽可能使用函数内的基本类型临时变量线程

尽可能不要在循环体外定义变量设计

不可变的静态常量,尽可能使用非线程安全类

不可变的成员变量,尽可能使用非线程安全类

对象&类

禁止使用JSON转化对象

尽可能不使用反射赋值对象

采用Lambda表达式替换内部匿名类

尽可能避免定义没必要要的子类

尽可能指定类的final修饰符

方法

把跟类成员变量无关的方法声明成静态方法

尽可能使用基本数据类型做为方法参数类型,避免没必要要的装箱、拆箱和空指针判断

尽可能使用基本数据类型做为方法返回值类型,避免没必要要的装箱、拆箱和空指针判断

协议方法参数值非空,避免没必要要的空指针判断

协议方法返回值非空,避免没必要要的空指针判断

被调用方法已支持判空处理,调用方法无需再进行判空处理

尽可能避免没必要要的函数封装

尽可能指定方法的final修饰符

表达式

尽可能减小方法的重复调用

尽可能避免没必要要的方法调用

尽可能使用移位来代替正整数乘除

提取公共表达式,避免重复计算

尽可能不在条件表达式中用!取反

对于多常量选择分支,尽可能使用switch语句而不是if-else语句

字符串

尽可能不要使用正则表达式匹配

尽可能使用字符替换字符串

尽可能使用StringBuilder进行字符串拼接

不要使用""+转化字符串

数组

不要使用循环拷贝数组,尽可能使用System.arraycopy拷贝数组

集合转化为类型T数组时,尽可能传入空数组T[0]

集合转化为Object数组时,尽可能使用toArray()方法

集合

初始化集合时,尽可能指定集合大小

不要使用循环拷贝集合,尽可能使用JDK提供的方法拷贝集合

尽可能使用Arrays.asList转化数组为列表

直接迭代须要使用的集合

不要使用size方法检测空,必须使用isEmpty方法检测空

非随机访问的List,尽可能使用迭代代替随机访问

尽可能使用HashSet判断值存在

避免先判断存在再进行获取

异常

直接捕获对应的异常

尽可能避免在循环中捕获异常

禁止使用异常控制业务流程

缓冲区

初始化时尽可能指定缓冲区大小

尽可能重复使用同一缓冲区

尽可能设计使用同一缓冲区

尽可能使用缓冲流减小IO操做

线程

在单线程中,尽可能使用非线程安全类

在多线程中,尽可能使用线程安全类

尽可能减小同步代码块范围

尽可能合并为同一同步代码块

尽可能使用线程池减小线程开销

 

示例代码,详见原文:http://www.javashuo.com/article/p-zlvqawyo-bm.html

相关文章
相关标签/搜索