zoukankan      html  css  js  c++  java
  • java代码优化技巧


    1、尽量指定类、方法的final修饰符
    2、尽量重用对象,特别是String对象的重用,出现字符串连接时应该使用StringBuilder/StringBuffer代替
    3、尽可能使用局部变量
    4、及时关闭流
    5、尽量减少对变量的重复计算
    6、尽量采用懒加载的策略,即在需要的时候才创建
    7、慎用异常
    8、不要在循环中使用try…catch…,应该把其放在最外层
    9、如果能估计到待添加的内容长度,为底层以数组方式实现的集合、工具类指定初始长度
    10、当复制大量数据时,使用System.arraycopy()命令
    11、乘法和除法使用移位操作
    12、循环内不要不断创建对象引用
    13、基于效率和类型检查的考虑,应该尽可能使用array,无法确定数组大小时才使用ArrayList
    14、尽量使用HashMap、ArrayList、StringBuilder,除非线程安全需要,否则不推荐使用Hashtable、Vector、StringBuffer,后三者由于使用同步机制而导致了性能开销
    15、不要将数组声明为public static final
    16、尽量在合适的场合使用单例
    使用单例可以减轻加载的负担、缩短加载的时间、提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面:
    (1)控制资源的使用,通过线程同步来控制资源的并发访问
    (2)控制实例的产生,以达到节约资源的目的
    (3)控制数据的共享,在不建立直接关联的条件下,让多个不相关的进程或线程之间实现通信
    17、尽量避免随意使用静态变量
    18、及时清除不再需要的会话,调用HttpSession的invalidate()方法清除会话。
    19、实现RandomAccess接口的集合比如ArrayList,应当使用最普通的for循环而不是foreach循环来遍历
    20、使用同步代码块替代同步方法
    21、将常量声明为static final,并以大写命名
    22、不要创建一些不使用的对象,不要导入一些不使用的类
    23、程序运行过程中避免使用反射
    24、使用数据库连接池和线程池
    25、使用带缓冲的输入输出流进行IO操作
    26、顺序插入和随机访问比较多的场景使用ArrayList,元素删除和中间插入比较多的场景使用LinkedList这个,理解ArrayList和LinkedList的原理就知道了
    27、不要让public方法中有太多的形参
    28、字符串变量和字符串常量equals的时候将字符串常量写在前面
    29、请知道,在java中if (i == 1)和if (1 == i)是没有区别的,但从阅读习惯上讲,建议使用前者
    30、不要对数组使用toString()方法
    31、不要对超出范围的基本数据类型做向下强制转型
    32、公用的集合类中不使用的数据一定要及时remove掉
    33、把一个基本数据类型转为字符串,基本数据类型.toString()是最快的方式、String.valueOf(数据)次之、数据+””最慢
    34、使用最有效率的方式去遍历Map
    35、对资源的close()建议分开操作

  • 相关阅读:
    mingw32g++.exe: *: No such file or directory
    在Code:Blocks使用MinGW编译wxWidgets库
    能挂广告的博客大集合
    内存映射文件技术
    叉乘法求任意多边形面积
    C++中,如何使double不用科学计数法表示
    error: extra qualification 以及 error: no matching function for call to
    一个简单的C#委托小例子
    一个简单的C#多播委托的小例子
    控件生命周期 岁月无情
  • 原文地址:https://www.cnblogs.com/WYT---BLOG/p/12021884.html
Copyright © 2011-2022 走看看