Java代码优化

类名、方法名、变量名需要使用全英文,尽量不要使用缩写和拼音

合理的命名可以替代注释,提高可读性。

单个类文件和单个方法的代码不要过多

不要一个方法上千行,也不要每个方法只有2行,然后a方法调b方法,b方法调c方法这样跳来跳去。
要合理设计,不要左倾也不要右倾。

添加必要的注释

注释不要过多也不能过少
不要每一行都加个注释
无关紧要的代码尽量不加注释
关键的代码尽量加注释
有特殊处理的一定要加注释
合理的命名可以替代注释,提高阅读性,提高维护性。

使用新版本jdk时,在合适的情况下,应该尽量使用它的新特性


java5的泛型
java7的try-with-resources、泛型推断
java8的Lambda

变量、属性、方法应该定义在它的使用范围内,而不要定义在它的使用范围之外

静态的属性、方法不要定义成实例属性、方法,反之亦然。

变量在只在小的作用域,不要定义在大的作用域中(如只在if作用域使用的变量不需要定义在if外面),反之亦然。

优化算法和代码逻辑,避免重复和低效

了解数组、集合、Map的优缺点和使用场景,正确的使用数组、集合、Map

频繁的字符串操作应该使用StringBuilder或StringBuffer,特别是字符串拼接操作

不要无脑的throws异常,能处理尽量处理

也不要无脑的throw new Exception,能通过特殊返回值处理就不要抛出异常,异常对资源消耗很大,避免频繁的创建抛出异常

文件操作使用Buffered流和NIO能提升IO操作的速度

可以使用单例模式的情况下请使用单例

1.避免重复对象的创建
2.避免全静态函数调用的面向函数编程

可以使用final的情况下请使用final

在合适的场景下,使用位运算代替乘除等运算

在对速度要求严格的情况下,可以使用位运算代替乘除等运算
在对速度要求不严格的情况下,不要使用位运算,因为可读性太低。

使用File.separator代替文件路径中的/或\

因为java是跨平台语言,所以我们要尽量的做到可以跨平台

使用System.arraycopy 代替自定义的数组复制

如果可以通过clone,就不要new

合理使用缓存,简单的缓存可以直接用static final Map,复杂的可以考虑使用第三方的缓存库

合理的使用多线程

只在该用多线程时才用多线程,可用可不用时尽量不要用。
多线程的资源分配和锁竞争机制会额外的占用资源。
多线程让程序变的复杂,可读性维护性变差。
使用多线程,应该避免过多的使用synchronized等同步锁操作
使用多线程,如果线程很多且重复使用,请使用线程池

尽量不要重写finalize方法

不要在finalize干一些资源回收或关闭的操作。

在创建StringBuffer、StringBuilder、ArrayList、HashMap时,如果长度固定,可以设置初始容量

你可能感兴趣的:(JavaSE)