你所不知道的代码优化!让你的代码更优雅!
·禁止使用system.out.println打印,使用logger.debug调试语句
·使用stringBuilder连接字符串
·使用预编译sql
·io流及时关闭
·不要在循环中使用try. ..catch...,应该把其放在最外层
·当复制大量数据时,使用System.arraycopy()命令
·尽量采用懒加载的策略,即在需要的时候才创建
·使用带缓冲的输入输出流进行io操作
·循环内不要不断创建对象引用
·对资源的close()建议分开操作
·把一个基本数据类型转为字符串,基本数据类型.tostring()是最快的方式、String.valueof(数据)次之、数据+""最慢
·不要让public方法中有太多的形参
·使用数据库连接池和线程池
·字符串变量和字符串常量equals的时候将字符串常量写在前面
·尽量重用对象
·尽可能使用局部变量
·尽量减少对变量的重复计算
·尽量避免随意使用静态变量
·使用同步代码块替代同步方法
·将常量声明为static final,并以大写命名
·不要创建—些不使用的对象,不要导入—些不使用的类
·程序运行过程中避免使用反射
·使用最有效率的方式去遍历Map
·对于ThreadLocal使用前或者使用后—定要先remove
·切记以常量定义的方式替代魔鬼数字,魔鬼数字的存在将极大地降低代码可读性,字符串常量是否使用常量定义可以视情况而定
·long或者Long初始赋值时,使用大写的L而不是小写的l,因为字母极易与数字1混淆,这个点非常细节,值得注意
·所有重写的方法必须保留@override注解
·推荐使用JDK7中新引入的objects工具类来进行对象的equals比较,直接a.equals(b),有空指针异常的风险
·循环体内不要使用"+"进行字符串拼接,而直接使用stringBuilder不断append
·不捕获Java类库中定义的继承自RuntimeException的运行时异常类
·避免Random实例被多线程使用,虽然共享该实例是线程安全的,但会因竞争同—seed导致的性能下降,JDK7之后,可以使用ThreadLocalRandom来获取随机数
·静态类、单例类、工厂类将它们的构造函数置为private