`
duyouhua1214
  • 浏览: 237990 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java优化编程37条

    博客分类:
  • 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);
  }
 
4.软引用的主要特点是具有较强的引用功能.只有当内存不够的时候,才回收这类内存,因此在内存足够的时候,它们通常不被回收.它可以用于实现一些常用资源的缓存,实现Cache的功能
  A a = new A();
  SoftReference sr = new SoftReference(a);
  a = null;
 
  if(sr !=null){
       a = sr.get();
  }else{
      a = new A();
       sr = new SoftReference(a);
  }

5.弱引用对象与Soft引用对象最大不同就在于:GC在进行回收时,需要通过算法检查是否回收Soft引用对象,而对于Weak引用对象,GC总是进行回收.

  A a = new A();
  WeakReference wr = new WeakReference(a);
  a = null;
 
  if(sr !=null){
       a = wr.get();
  }else{
      a = new A();
      wr = new WeakReference(a);
  }
6.共享静态变量存储空间

7.有时候我们为了提高系统性能,避免重复耗时的操作,希望能够重用一些创建完成的对象,利用对象池实现.类似JDBC连接池.

8.瞬间值,序列化对象大变量时,如果此大变量又没有用途,则使用transient声明,不序列化此变量.同时网络传输中也不传输.

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();
      }
   }
10 .(1)最基本的建议就是尽早释放无用对象的引用
       A a = new A();
       a = null; //当使用对象a之后主动将其设置为空
    (2)尽量少用finalize函数.
    (3) 如果需要使用经常用到的图片展,可以使用软引用.
    (4) 注意集合数据类型,包括数组,树等数据,这些数据结构对GC来说,回收更为复杂,
    (5) 尽量避免在类的默认构造器中创建,初始化大量的对象,防止在调用其自类的构造器时造成不必要的内存资源浪费.
    (6) 尽量避免强制系统做垃圾内存回收.
    (7) 尽量避免显式申请数组空间.
    (8) 尽量在合适的场景下使用对象池技术以提高系统性能,缩减系统内存开销.
11.当做数组拷贝操作时,采用System.arraycopy()方法完成拷贝操作要比采用循环的办法完成数组拷贝操作效率高

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

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

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

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

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

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

18. 字符串累加采用StringBuffer.

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

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

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

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

23. 组合优化继承

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

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

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

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

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

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

30.Servlet优化
   (1) 通过init()方法来缓存一些静态数据以提高应用性能.
   (2) 用print() 方法取代println()方法.
   (3) 用ServletOutputStream 取代 PrintWriter.
   (4) 尽量缩小同步代码数量

31. 改善Servlet应用性能的方法
    (1)不要使用SingleThreadModel
    (2)使用线程池ThreadPool

32. EJB优化
    实体EJB:
    (1)实体EJB中常用数据缓存与释放
    (2)采用延迟加载的方式装载关联数据
    (3)尽可能地应用CMP类型实体EJB
    (4)直接采用JDBC技术处理大型数据
   
33. 优化JDBC连接
    (1)设置合适的预取行值
    (2)采用连接池技术
    (3)全合理应用事务
    (4)选择合适的事务隔离层与及时关闭连接对象

34. PreparedStatemetn只编译解析一次,而Statement每次都编译解析.

35. 尽可能地做批处理更新

36. 通过采用合适的getXXX方法提高系统性能

37. 采用设计模式.

 

文章来源:网上

分享到:
评论

相关推荐

    java优化编程 java优化编程 java优化编程

    Java优化编程是提升Java应用程序性能的关键技术,涵盖了多个方面的知识,包括代码优化、内存管理、垃圾回收、并发处理以及JVM参数调优等。以下是对这些主题的详细讲解: 1. **代码优化**:编写高效的Java代码是优化...

    Java优化编程(第二版PDF)

    一本经典的关于java优化编程的书。通过丰富、完整、富有代表性的实例,展示了如何提升Java应用性能,并且给出了优化前与优化后的Java应用程序的性能差别,以实际的实例与数字告诉你,为什么不可以这么做,应该怎么做...

    java优化编程(林胜利版)

    对java编程的优化作了比较详尽的讲解,包括内存怎么优化,程序的优化,ejb、jms的优化

    JAVA 优化编程,提高代码质量

    本文将深入探讨Java优化的多个方面,帮助开发者掌握优化技巧,提升代码质量。 首先,我们要了解JVM(Java虚拟机)的工作原理,因为它是Java代码执行的基础。理解JVM内存模型,包括堆内存、栈内存、方法区、元空间等...

    JAVA优化编程

    《JAVA优化编程》一书深入探讨了JAVA编程中的性能优化技术,旨在帮助开发者提升应用程序的运行效率和系统资源利用率。在JAVA开发过程中,优化是必不可少的一环,它能确保程序在面对大规模数据处理、高并发场景时仍能...

    java优化编程ppt讲义,附代码

    **Java优化编程PPT讲义概述** 这是一份专门针对Java优化编程的内部培训资料,旨在帮助中级及以上水平的开发者提升代码性能,实现更高效的应用程序。这份讲义结合了理论与实践,深入探讨了Java语言在实际开发中的...

    JAVA优化编程.part1

    JAVA优化编程,这是一本讲解关于java编程方面应该如何编码才能是你的java程序取得更高的效率,也许你说没必要,当实际上对程序进行优化是相当重要和必要的。如果你在学习java或者已经学习了java的基本语法,那么我...

    JAVA优化编程(part2)

    一本不错的书,会对你的JAVA编程水平有很大提高

    JAVA优化编程.part2

    JAVA优化编程,这是一本讲解关于java编程方面应该如何编码才能是你的java程序取得更高的效率,也许你说没必要,当实际上对程序进行优化是相当重要和必要的。如果你在学习java或者已经学习了java的基本语法,那么我...

    JAVA优化编程详解

    在《JAVA优化编程详解》这本书中,作者深入探讨了如何将Java编程技能提升到一个全新的层次,特别是聚焦于性能优化这一关键领域。Java优化不仅仅是关于提高代码运行速度,更是关于资源的有效利用,确保应用程序在复杂...

    java优化编程(pdf)

    本书通过丰富、完整、富有代表性的实例,展示了如何提升Java应用性能,并且给出了优化前与优化后的Java应用程序的性能差别,以实际的实例与数字告诉你,为什么不可以这么做,应该怎么做,深入分析了影响Java应用程序...

    《java 并发编程实战高清PDF版》

    《Java并发编程实战》是一本深入探讨Java平台并发编程的权威指南。这本书旨在帮助开发者理解和掌握在Java环境中创建高效、可扩展且可靠的多线程应用程序的关键技术和实践。它涵盖了从基本概念到高级主题的广泛内容,...

    JAVA优化编程.zip

    在Java优化编程中,我们关注的是如何提升程序的性能、减少资源消耗以及提高代码的可维护性。这是一项至关重要的任务,特别是在处理大数据、高并发或者长时间运行的服务时。以下是一些关键的知识点: 1. **JVM优化**...

    Java动画编程优化技术探讨.pdf

    通过本文档,我们将深入探讨Java动画编程过程中遇到的常见问题以及提出相应的优化措施。 在Java动画编程问题研究部分,文档提到了四个主要问题点:动画死机或图像迟滞问题、动画无法调控或卡顿问题、动画显示不平滑...

    java并发编程艺术

    《Java并发编程艺术》这本书深入探讨了Java平台上的并发编程技术。并发编程是现代多核处理器环境下提升软件性能的关键手段,而Java语言提供了丰富的工具和API来支持这一领域。本书旨在帮助开发者理解和掌握如何在...

    JAVA优化编程_程序设计

    "JAVA优化编程_程序设计"的主题着重于如何提高Java应用程序的性能,降低资源消耗,提升用户体验。这涉及到一系列的专业知识和技术,包括但不限于内存管理、并发处理、代码优化策略以及垃圾回收机制等。 1. **内存...

    java代码优化编程

    【Java代码优化编程】 在Java编程中,代码优化是一个关键环节,目的是使程序在有限的资源下更高效地运行。优化主要包括两个方面:减小代码体积和提高代码执行效率。以下是一些关于如何提高Java代码效率的具体策略:...

    java网络编程第四版pdf

    第三章“线程”深入讨论了多线程编程在Java网络应用中的重要性。Java提供了丰富的线程API,使得开发者可以创建并发执行的任务,以提高程序的性能和响应速度。本章讲解了如何创建和管理线程,线程同步和互斥机制,如...

Global site tag (gtag.js) - Google Analytics