`
youkimra
  • 浏览: 34671 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java程序小优化

 
阅读更多

转公司一同事的经验

1.JVM管理两种类型的内存:堆内存(heap),栈内存(stack),堆内在主要用来存储程序在运行时创建或实例化的对象与变量.而栈内存则是用来存储程序代码中声明为静态(static)(或非静态)的方法.

2 .JVM中对象的生命周期,创建阶段,应用阶段,不可视阶段,不可到达阶段,可收集阶段,终结阶段,释放阶段

3.避免在循环体中创建对象,即使该对象占用内存空间不大.

for ( int i= 0 ;i< 10000 ;++i){ 
 
 Object obj = new Object(); 
 
 System.out.println( "obj=" +obj); 
 
}

  应改成

Object obj = null ;
   for ( int i= 0 ;i< 10000 ;++i){
    obj = new Object();
    System.out.println( "obj=" +obj);
  }

9.不要提前创建对象

void f(){
   int i;
  A a = new A();
   if (....){
     a.showMessage();
  }
 }

  改成

void f(){
   int i;
  A a = null ;
   if (....){
   //用到时才实例化
    a = new A();
    a.showMessage();
  }
}

 4 .(1)最基本的建议就是尽早释放无用对象的引用

A a = new A();
 
a = null ; //当使用对象a之后主动将其设置为空

  (1) 尽量使用直接量的方式生成字符串或相对应的对象,比如 String str = "abc" ; 而不要用 String str = new String("abc") . 这是因为使用前者会在内存中创建字符串,并且在字符缓存池中换成这个串,以备下次使用,而后者是不管缓存中是否存在还会再次创建。

     (2)尽量少用finalize函数. 尽量少用static包装变量,因为static变量要在程序结束时才回收

  (3) 如果需要使用经常用到的图片展,可以使用软引用.

  (4) 注意集合数据类型,包括数组,树等数据,这些数据结构对GC来说,回收更为复杂,

  (5) 尽量避免在类的默认构造器中创建,初始化大量的对象,防止在调用其自类的构造器时造成不必要的内存资源浪费.

  (6) 尽量避免强制系统做垃圾内存回收.

  (7) 尽量避免显式申请数组空间.

  (8) 尽量在合适的场景下使用对象池技术以提高系统性能,缩减系统内存开销.

5.当做数组拷贝操作时,采用System.arraycopy()方法完成拷贝操作要比采用循环的办法完成数组拷贝操作效率高

6. 尽量避免在循环体中调用方法,因为方法调用是比较昂贵的.

7. 尽量避免在循环体中使用try-catch 块,最好在循环体外使用try--catch块以提高系统性能.

8. 在多重循环中,如果有可能,尽量将最长的循环放在最内层,最短的循环放在最外层,以减少循环层间的变换次数.

9. 在需要线程安全的情况下,使用List list = Collections.synchronizedList(new ArrayList());

10. 如果预知长度,就设置ArrayList的长度.

11. ArrayList 与 LinkedList 选择,熟悉底层的实现原理,选择适当的容器.

12. 字符串累加采用StringBuffer.

13. 系统I/O优化,采用缓冲和压缩技术.优化性能.

14. 避免在类在构造器的初始化其他类

15 尽量避免在构造中对静态变量做赋值操作

16. 不要在类的构造器中创建类的实例

17. 组合优化继承

18. 最好通过Class.forname() 动态的装载类

19. JSP优化,采用out 对象中的print方法代替println()方法

20 .采用ServletOutputStream 对象代替JSPWriter对象

21. 采用适当的值初始化out 对象缓冲区的大小

22. 尽量采用forward()方法重定向新的JSP

23. 利用线程池技术处理客户请求

24.Servlet优化

  (1) 通过init()方法来缓存一些静态数据以提高应用性能.

  (2) 用print() 方法取代println()方法.

  (3) 用ServletOutputStream 取代 PrintWriter.

  (4) 尽量缩小同步代码数量

25. 改善Servlet应用性能的方法

  (1)不要使用SingleThreadModel

  (2)使用线程池ThreadPool

 

分享到:
评论

相关推荐

    java程序性能优化

    java程序性能优化Java是目前应用最为广泛的软件开发平台,学习针对Java程序的优化方法有重要的现实意义。《Java程序性能优化:让你的Java程序更快、更稳定》以Java性能调优为主线,系统地阐述了与Java性能优化相关的...

    Java程序性能优化

    《Java程序性能优化:让你的Java程序更快、更稳定》以Java性能调优为主线,系统地阐述了与Java性能优化相关的知识与技巧。《Java程序性能优化:让你的Java程序更快、更稳定》共6章,先后从软件设计、软件编码、JVM调优...

    《Java程序性能优化》(葛一鸣)PDF版本下载.txt

    根据提供的文件信息,我们可以推断出这是一本关于Java程序性能优化的书籍,作者是葛一鸣,并提供了该书PDF版本的下载链接。虽然没有具体的书籍内容,但基于标题、描述以及通常这类书籍会涉及的主题,我们可以总结出...

    Java程序性能优化 让你的Java程序更快、更稳定

    Java程序性能优化是每个开发人员都需要关注的重要领域,它涵盖了多个方面,旨在提高代码执行效率,减少资源消耗,以及提升应用程序的稳定性和响应速度。在本文中,我们将深入探讨Java性能优化的关键点,帮助你的Java...

    Java程序性能优化 让你的Java程序更快、更稳定附本书示例代码(清晰版)

    Java程序性能优化是每个开发人员都需要关注的重要领域,特别是在企业级应用中,高效稳定的Java程序能够显著提升用户体验,降低服务器资源消耗。这本书“Java程序性能优化 让你的Java程序更快、更稳定”提供了深入的...

    Java程序性能优化 让你的Java程序更快、更稳定pdf文档视频资源

    Java程序性能优化是每个开发人员都需要关注的重要领域,特别是在企业级应用中,高效稳定的Java程序能够带来显著的业务优势。本资源包含一个PDF文档和相关的视频教程,旨在帮助你提升Java程序的速度和稳定性。 首先...

    JAVA程序性能优化

    ### JAVA程序性能优化 在Java开发中,程序性能优化是一个重要的环节,它直接影响到应用程序的运行效率、用户体验以及系统的整体稳定性。本文将基于提供的标题、描述及部分内容,深入探讨几个关键性的性能优化策略。...

    《Java程序性能优化:让你的Java程序更快、更稳定》完整扫描PDF版网盘链接

    一个优秀的程序员,不仅要会编写程序,更要会编写高质量的程序,感受Java开发中的大智慧,让你的Java程序更优美 专注于Java应用程序的优化方法、技巧和思想,深入剖析软件设计层面、代码层面、JVM虚拟机层面的优化...

    Java程序性能优化.rar

    "Java程序性能优化"这个主题涵盖了多种技术与策略,旨在提升Java应用程序的运行速度,减少内存占用,以及改善整体系统性能。这份资料"Java程序性能优化.rar"包含了高清文档和书籍源码,为我们提供了深入学习和实践...

    JAVA程序性能优化 带书签

    Java程序性能优化 让你的Java程序更快、更稳定 高清 目录 完整

    Java程序性能优化 让你的Java程序更快、更稳定.z01

    由于上传限制大小,附件pdf由Java程序性能优化 让你的Java程序更快、更稳定.pdf 和Java程序性能优化 让你的Java程序更快、更稳定.z01组成,下载下来解压到同一个目录即可

    java程序性能优化-pdf+源码

    《Java程序性能优化》这本书是Java开发者不可或缺的参考资料,它深入浅出地讲解了如何提升Java应用程序的效率和稳定性。本书结合理论与实践,既包含了基础的性能优化原则,也探讨了高级的优化技巧,适合从初级到中级...

Global site tag (gtag.js) - Google Analytics