武汉java培训
达内武汉中心

15827352908

热门课程

有关java的代码优化细节之三

  • 时间:2019-01-04 15:05
  • 发布:武汉java培训
  • 来源:互联网

12、基于效率和类型检查的考虑,应该尽可能使用array,无法确定数组大小时才使用ArrayList

13、尽量使用HashMap、ArrayList、StringBuilder,除非线程安全需要,否则不推荐使用Hashtable、Vector、StringBuffer,后三者由于使用同步机制而导致了性能开销

武汉java培训

14、不要将数组声明为public static final

因为这毫无意义,这样只是定义了引用为static final,数组的内容还是可以随意改变的,将数组声明为public更是一个安全漏洞,这意味着这个数组可以被外部类所改变

15、尽量在合适的场合使用单例

使用单例可以减轻加载的负担、缩短加载的时间、提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面:

(1)控制资源的使用,通过线程同步来控制资源的并发访问;

(2)控制实例的产生,以达到节约资源的目的;

(3)控制数据的共享,在不建立直接关联的条件下,让多个不相关的进程或线程之间实现通信;

16、尽量避免随意使用静态变量

要知道,当某个对象被定义为static的变量所引用,那么gc通常是不会回收这个对象所占有的堆内存的,如:

此时静态变量b的生命周期与A类相同,如果A类不被卸载,那么引用B指向的B对象会常驻内存,直到程序终止。

17、及时清除不再需要的会话

为了清除不再活动的会话,许多应用服务器都有默认的会话超时时间,一般为30分钟。当应用服务器需要保存更多的会话时,如果内存不足,那么操作系统会把部分数据转移到磁盘,应用服务器也可能根据MRU(最近最频繁使用)算法把部分不活跃的会话转储到磁盘,甚至可能抛出内存不足的异常。如果会话要被转储到磁盘,那么必须要先被序列化,在大规模集群中,对对象进行序列化的代价是很昂贵的。因此,当会话不再需要时,应当及时调用HttpSession的invalidate()方法清除会话。

18、实现RandomAccess接口的集合比如ArrayList,应当使用最普通的for循环而不是foreach循环来遍历

这是JDK推荐给用户的。JDK API对于RandomAccess接口的解释是:实现RandomAccess接口用来表明其支持快速随机访问,此接口的主要目的是允许一般的算法更改其行为,从而将其应用到随机或连续访问列表时能提供良好的性能。实际经验表明,实现RandomAccess接口的类实例,假如是随机访问的,使用普通for循环效率将高于使用foreach循环;反过来,如果是顺序访问的,则使用Iterator会效率更高。

本篇文章是由武汉java培训为您呈现,希望给您带来更多更好的文章。

马上预约七天免费试听课

姓名:

电话:

上一篇:有关java的代码优化细节之二
下一篇:有关java的代码优化细节之四

有关java的代码优化细节之三

有关java的代码优化细节之二

有关java的代码优化细节之一

武汉java培训:请说明一下Java语言的特点

选择城市和中心
贵州省

广西省

海南省

有位老师想和您聊一聊