zoukankan      html  css  js  c++  java
  • JAVA性能优化

    10种简单的Java性能优化:

    1、使用StringBuilder

    2、避免使用正则表达式

    使用正则表达式的话,至少要将 Pattern 缓存下来,避免反复编译Pattern。

    static final Pattern HEAVY_REGEX =

        Pattern.compile("(((X)*Y)*Z)*");

    3、不要使用iterator()方法

    4、不要调用高开销方法

    5、使用原始类型和栈

    //存储在堆上

    Integer i = 817598;

    // 存储在栈上

    int i = 817598;

    6、避免递归

    7、使用entrySet()迭代map

    8、使用EnumSet或EnumMap

            使用配置map时,我们可能会预先知道保存在map中键值。如果这个键值非常小,我们就应该考虑使用 EnumSet 或 EnumMap

    9、优化自定义hasCode()方法和equals()方法

    10、考虑使用set而并非单个元素

    11、不要在循环中使用try…catch…,应该把其放在最外层,在执行中抛出异常会继续循环。/

    12、循环内不要不断创建对象引用,/

    Object obj = null;for (int i = 0; i <= count; i++) { obj = new Object(); }

    13、尽量避免随意使用静态变量,gc通常是不会回收这个对象所占有的堆内存

    14、将常量声明为static final,并以大写命名

    15、字符串变量和字符串常量equals的时候将字符串常量写在前面,变量写在前面,null写在后面。

    16、把一个基本数据类型转为字符串,基本数据类型.toString()是最快的方式、String.valueOf(数据)次之、数据+”"最慢

    17、 集合必须指定模板类型(5.0+)。说明:方便程序阅读,省去强制转换代码

    18、  异常捕获尽量不要直接catch (Exception ex),应该把异常细分处理。说明:可以设计更合理异常处理分支,排错。

    19、多提取公共方法,不要重复做一件事。

    1
    2
    3
    4
    5
    6
    7
    int loopTime = 50000;
    Integer i = 0;
    long startTime = System.currentTimeMillis();
    for (int j = 0; j < loopTime; j++){
    String str = String.valueOf(i);
    }
    System.out.println("String.valueOf():" + (System.currentTimeMillis() - startTime) + "ms");

    10种简单的Java性能优化:

    1、使用StringBuilder

    2、避免使用正则表达式

    使用正则表达式的话,至少要将 Pattern 缓存下来,避免反复编译Pattern。

    static final Pattern HEAVY_REGEX =

        Pattern.compile("(((X)*Y)*Z)*");

    3、不要使用iterator()方法

    4、不要调用高开销方法

    5、使用原始类型和栈

    //存储在堆上

    Integer i = 817598;

    // 存储在栈上

    int i = 817598;

    6、避免递归

    7、使用entrySet()迭代map

    8、使用EnumSet或EnumMap

            使用配置map时,我们可能会预先知道保存在map中键值。如果这个键值非常小,我们就应该考虑使用 EnumSet 或 EnumMap

    9、优化自定义hasCode()方法和equals()方法

    10、考虑使用set而并非单个元素

    11、不要在循环中使用try…catch…,应该把其放在最外层,在执行中抛出异常会继续循环。/

    12、循环内不要不断创建对象引用,/

    Object obj = null;for (int i = 0; i <= count; i++) { obj = new Object(); }

    13、尽量避免随意使用静态变量,gc通常是不会回收这个对象所占有的堆内存

    14、将常量声明为static final,并以大写命名

    15、字符串变量和字符串常量equals的时候将字符串常量写在前面,变量写在前面,null写在后面。

    16、把一个基本数据类型转为字符串,基本数据类型.toString()是最快的方式、String.valueOf(数据)次之、数据+”"最慢

    17、 集合必须指定模板类型(5.0+)。说明:方便程序阅读,省去强制转换代码

    18、  异常捕获尽量不要直接catch (Exception ex),应该把异常细分处理。说明:可以设计更合理异常处理分支,排错。

    19、多提取公共方法,不要重复做一件事。

    1
    2
    3
    4
    5
    6
    7
    int loopTime = 50000;
    Integer i = 0;
    long startTime = System.currentTimeMillis();
    for (int j = 0; j < loopTime; j++){
    String str = String.valueOf(i);
    }
    System.out.println("String.valueOf():" + (System.currentTimeMillis() - startTime) + "ms");

      

  • 相关阅读:
    php_sphinx安装使用
    编程实现自定义解决方案
    NetBeans 时事通讯(刊号 # 55 May 06, 2009)
    Java 上下文与依赖注入(JSR 299)[1]
    走进Java 7模块系统
    VC编程中关于新建的框架窗口的销毁的一个心得
    家常菜之豆豉蒸鸡翅
    用ntsd命令强制杀死进程
    NetBeans 时事通讯(刊号 # 56 May 21, 2009)
    NetBeans 时事通讯(刊号 # 56 May 21, 2009)
  • 原文地址:https://www.cnblogs.com/shuchen007/p/9173120.html
Copyright © 2011-2022 走看看