`
backspace
  • 浏览: 137091 次
文章分类
社区版块
存档分类
最新评论

提高你的Java代码质量吧:不要主动进行垃圾回收

 
阅读更多

一、建议 

         不要调用system.gc,即使经常出现内存溢出也不要调用,内存溢出是可分析的,是可以查找原因的,GC可不是一个好招数 

 

二、分析 

         System.gc主动进行垃圾回收时一个非常危险的动作。因为它要停止所有的响应,才能检查内存中是否有可回收的对象,这对一个应用系统风险极大。 

 

三、场景 

        如果一个Web应用,所有的请求都会暂停,等待垃圾回收器执行完毕,若此时堆内存(Heap)中的对象少的话则可以接受,一旦对象较多(现在的Web项目越做越大,框架工具越来越多,加载到内存中的对象就更多了),这个过程非常耗时,可能是0.01秒,也可能是1秒,甚至可能是20秒,这就会严重影响到业务的正常运行。 

 

       又如这样一段代码:new String("abc"),该对象没有任何引用,对JVM来说就是个垃圾对象。JVM的垃圾回收器线程第一次扫描(扫描时间不确定,在系统不繁忙的时候执行)时把它贴上一个标签,说“你是可以给回收的”,第二次扫描时才真正地回收该对象,并释放空间。如果我们直接调用System.gc,就等于说“嗨,你,那个垃圾回收器过来检查一下有没有垃圾对象,回收一下”。程序主动招来了垃圾回收器,这意味着正在运行着的系统要让出资源,以供垃圾回收器执行。

3
5
分享到:
评论

相关推荐

    Java语言的科学与艺术(二)

    随着Java的发展,出现了许多优秀的框架和工具,如Spring框架、Hibernate框架、Maven构建工具等,它们极大地提高了开发效率和代码质量。 - **Spring框架**:一个轻量级的企业级应用开发框架,提供依赖注入...

    java经典笔试题,面试技巧,常见问题

    9. **设计模式**:设计模式是软件设计的最佳实践,如单例、工厂、装饰器、代理、观察者、策略等23种设计模式,理解和运用它们可以提高代码质量。 10. **Java面试技巧**:除了技术知识,良好的沟通能力、问题解决...

    java考试题答案下.pdf

    以上就是Java考试中涉及到的一些核心概念和知识点,掌握这些内容对于理解和编写高质量的Java代码至关重要。在实际编程中,理解并熟练运用这些知识点可以帮助开发者编写出更加健壮、高效和易于维护的程序。

    JAVA高级应用

    这些主题构成了JAVA编程语言中的高级特性,对于提升代码质量、增强程序的健壮性和灵活性具有至关重要的作用。 ### 1. JDK核心类库API #### 1.1 java.lang.Object类 作为所有Java类的基础,`java.lang.Object`类...

    java术语 it术语

    JVM 负责解释执行 Java 字节码,同时提供了内存管理、安全性和垃圾回收等功能,以确保 Java 应用程序的正确执行。 #### JRE (Java Runtime Environment) Java 运行环境(JRE)包括了 JVM 和 Java 类库,是运行 ...

    Java开发工程师的工作职责.docx

    Java 开发工程师需要具备 Java 基础扎实,熟悉对象/内存模型,了解 JVM 垃圾回收机制,对多线程锁机制,如重量级锁,轻量级锁,CAS 等有深刻理解,了解 Java 网络 IO(BIO/NIO/AIO),熟练使用 MySQL,对 MySQL 索引...

    浙大网新_中研软件_面试_笔试

    根据给定文件的信息,我们可以提炼出以下IT领域的关键知识点,主要围绕Java编程语言中的类继承、接口、访问...掌握这些核心概念,将有助于在实际编程工作中更好地理解和运用面向对象的编程原则,提高代码质量和效率。

    SimpleJava.pdf

    - **测试**:实现单元测试,确保代码质量及稳定性。 - **文档**:提供详尽的使用指南和API文档,帮助用户快速集成和使用。 #### 3. Java类何时以及如何被加载和初始化? - **类加载机制**:Java虚拟机采用双亲委派...

    好的程序结构是这样的

    在软件开发领域,良好的程序结构不仅是代码质量的体现,也是维护性和可扩展性的保障。本篇文章基于一个资深IT人士的经验分享,深入探讨了编写高质量代码的关键要素,尤其强调了J2EE、Java及软件工程领域的最佳实践。...

    IT运维服务系统方案设计.pdf

    8. JVM实时监控:关注Java虚拟机的性能,包括内存使用、垃圾回收、类装载、线程和会话监控。 9. 应用拓扑可视化:自动识别和绘制应用组件的调用关系,展示业务交易的全链路流程。 10. 慢SQL语句分析:监控SQL执行...

    百度校园招聘历年经典面试题汇总:Android岗

    ### 百度校园招聘历年经典面试题汇总:Android岗 #### 1. MVP模式的优缺点 ... JVM垃圾回收算法 - **标记-清除算法**:先标记出所有要回收的对象,再进行清除。 - **复制算法**:将内存分为两块,每次只使用一块...

    news_app

    最后,考虑到性能优化,Java的垃圾回收机制(GC)和内存管理是关键。开发者需要合理设计数据结构和算法,避免内存泄漏,同时监控应用性能,确保在高并发情况下仍能稳定运行。 综上所述,news_app是一个充分利用Java...

Global site tag (gtag.js) - Google Analytics