• Java性能优化的小细节


    性能优化实现方式(单纯考虑代码层面):

    1.减小代码体积

    2.提高运行效率

    如何做:

    1.尽量指定类.方法的final修饰符

    带有final修饰的类是不可派生的,该类所有的方法都是final的,java编译器会寻找机会内联所有的final方法,有助于提高运行效率.

    2.尽量复用对象

    对象的创建和维护都会花费java虚拟机的精力,特别是String对象的使用,出现的字符串连接要使用StringBuilder/StringBuffer来替代+号,因此,生成过多的对象将会给虚拟机带来不必要的负担;

    3.及时关闭流

    使用I/O流对数据进行操作是会对系统造成非常大的负担,用完要及时close;

    4.不要在循环语句中进行复杂的处理,以及一些异常处理,应该把这些提取到循环外层

    例如try...catch...应该放在外层

    5.循环内不要进行对象的频繁创建,除非不得已的情况下;

    6.尽量使用HashMap、ArrayList、StringBuilder,除非对线程安全有需求,不推荐使用HashTable、Vector、StringBuffer后三者因为做了同步机制对性能有较高的要求;

    7.清除不需要的会话;

    8.将常量声明为static final,并且用大写来命名

    9.不创建一些不使用的对象,不导入一些不使用的包

    10.程序运行过程中避免使用反射,可以考虑在项目启动的时候通过反射创建对象并且加载到内存中

    发射是java非常强大的一个功能,但是功能强大的同时也意味着效率不高,尤其是Method的invoke方法

    11.使用数据库连接池和线程池

    这样前者可以避免频繁的打开和关闭流,后者可以避免频繁的创建和销毁线程;

    12.使用带缓冲的流进行I/O操作

    13.public修饰的方法中形参最对不要超过3个

    形参过多会导致方法的容错率降低,如果有很多方法可以用实体类包装传递;

    14.在使用equals的时候把常量放在前面

    这样可以避免空指针异常

    15.不要对数组使用toString()方法

    因为对数组使用只会打印出一串对象地址,而且有可能因为数据引用is为空而导致空指针异常,不过可以对集合使用toString()方法,因为集合的父类AbstractCollections重写了toString()方法;

    16.不要对超出数据范围的基本数据类型做向下的强制类型转换,会导致精度损失

    17.对基本数据类型转换为字符串最快的方式是toString(),其次是String.valueOf(数据),再次是+"" 最慢

    18.对资源的关闭建议分开操作

    例如 

    try{

    stream.close();

    fileInPutStream.close();

    }catch(Exception e){

    .....

    }

    建议修改为

    try{stream.close}catch(Exception e){....} 

    try{fileInPutStream.close()}catch(Exception e){....}

    第一种写法,假如stream流出了问题,抛了异常,那么fileInPutStream就无法关闭,这样代码一多,就有可能引起资源句柄泄露.

    第二种写法虽然麻烦但是无论如何都会关闭,更加安全,当然也可以使用finall来关闭.

  • 相关阅读:
    C#,调用Process解压文件
    使用Jquery的treeview
    利用VS2010的项目生成事件属性进行生成文件的复制与打包
    简单理解laravel框架中的服务容器,服务提供者以及怎样调用服务
    详解PHP实现定时任务的五种方法
    php 回调函数和匿名函数
    mongodb的连接和开启安全验证
    关于版本号:alpha、beta、rc、stable
    php7 mongodb 扩展windows 安装
    终端提交代码到码云
  • 原文地址:https://www.cnblogs.com/bin-zhao/p/11641992.html
Copyright © 2020-2023  润新知