1、EE是执行引擎,EE拥有对象主要是两种途径:
1)NEW方式
2)静态变量
2、对象可能拥有其它对象,这是树图的开始,CLR以树图为基础进行搜索,记录对象的引用。程序拥有的所有静态变量或者栈上的所有变量为最初的树集。
3、垃圾收集模块决定要开始收集时,调用EE,请求停止所有线程,从而可以检查线程堆栈。
1)EE办理后,栈冻结,垃圾收集器通知EE开始遍历所有的栈和静态变量,然后返回最初的树集。EE中有个遍历模块负责这件事。
2)然后,CLR每次用一个树调用垃圾收集器模块。垃圾收集器收到树后,将遍历生成的静态数据,这些数据告诉我们对象实例的哪个偏移量对应着对其他对象的引用。
3)挨个检查所有的引用位置,对每个位置进行递归检查。当退出递归过程时,树图中由这个根出发能够到达的树都被检查过了,这个根能到达的所有地方都被标记了。
4、具体的工作代码不用递归编写,而是用检查栈的方式。栈空意味着这个根能到达的所有对象均已经到达。
5、检查完并标记完程序能到达的每个对象后,我们能一个个对象地检查内存,如果没有被标记,则是垃圾,特定时候,决定垃圾是否被压缩。
6、完全的垃圾收集操作,我们检查所有的根能到达的所有对象,有办法只收集最近分配的对象,称为第0代收集,同时找到一个办法,保证较老的对象引用了这些新对象可以被我们知道,这些特殊的引用位置有办法很快找到,不用遍历查找所有对象
分享到:
相关推荐
一、垃圾回收机制的原理 当程序创建对象、数组等引用类型实体时,系统都会在堆内存中为之分配一块内存区,对象就保存在这块内存区中。当这块内存不再被任何引用变量引用时,这块内存就变成了垃圾,等待垃圾回收机制...
本文主要关注的是内存溢出错误,这是Java应用中最常见的问题之一,可能导致应用服务器崩溃、性能下降或无尽的垃圾回收循环。 内存溢出错误(OutOfMemoryError)通常是由于内存泄漏导致的。当程序试图创建新对象,但...
- 掌握垃圾回收机制。 **20. 安全性** - 学习Java安全模型,包括类加载、字节码验证等。 - 掌握不同的安全/认证API,如JAAS、JCE等。 **21. Web服务器管理** - 掌握Tomcat、Resin等Web服务器的配置与管理。 -...
- **垃圾回收(GC)**:理解内存模型,知道如何分析和调优垃圾回收。 - **JVM**:理解类加载机制,堆内存结构,方法区等。 - **反射**:掌握Class类的使用,动态创建对象,修改私有属性等。 - **设计模式**:如...
总的来说,Java基础涵盖了语言语法、面向对象概念、异常处理、IO流、集合框架、多线程、网络编程等多个方面,学习Java不仅需要理解语言特性,还要熟悉JVM的工作原理和垃圾回收机制,以及如何利用IDE或命令行工具进行...
了解JVM的内存配置、垃圾回收策略等,能有效优化服务器性能。 WebLogic Console 是管理域的图形用户界面,管理员可以通过它来监控和管理服务器状态,部署应用,配置安全设置,调整服务器参数等。掌握其使用方法对于...
- Java语言特性,如封装、继承、多态、异常处理、垃圾回收机制等。 - **Java内存模型**:包括堆、栈、方法区、本地方法栈和程序计数器等。 - **集合框架**:List、Set、Map接口及其实现类的理解和使用,如...
9. **安全与认证**:了解JVM的工作原理,包括类加载器、反射和垃圾回收。掌握安全模型,如JAAS、JCE、JSSE和JGSS,以及数字签名和加密技术。 10. **Web服务器和应用服务器**:熟悉如何配置和管理Web服务器(如...
- `-XX:ParallelGCThreads`:设置并行垃圾回收线程数,优化垃圾回收性能。 在进行调优时,应结合实际情况,如硬件资源、业务负载和预期并发量,逐步调整这些参数,通过压力测试来验证优化效果。同时,监控JVM的运行...
- **垃圾回收(GC)**:理解Java如何自动管理内存,包括GC的工作原理、GC策略和GC日志分析。 - **堆和栈内存**:理解对象在堆中的存储以及局部变量在栈中的分配。 3. **集合框架**: - **List、Set、Queue和Map...
- **构造函数与生命周期管理**:讲解构造函数的作用、执行过程,以及super和this关键字的正确使用,同时探讨对象的生命周期和垃圾回收机制。 #### 多线程与并发控制 - **多线程机制**:解释Java中多线程的基本概念...
- **垃圾回收机制**:介绍JAVA自动管理内存的机制。 ##### 7. 面向对象基础(02) - **封装性**:探讨类如何隐藏其内部细节,并提供公共接口来与外界交互。 - **构造方法**:构造方法的定义、使用场景,以及如何...
- **垃圾回收**:Servlet实例最终被垃圾回收器回收。 ##### 2. 创建Servlet 创建Servlet有两种常见方式:实现`javax.servlet.Servlet`接口或者继承`javax.servlet.http.HttpServlet`类。下面是一个简单的示例,...
.NET 后台服务卡死分析通常涉及到多个方面,如垃圾回收(Garbage Collection, GC)、线程同步、系统调用...解决这个问题需要对代码进行仔细审查,优化锁的使用,并可能需要调整GC策略以避免在关键操作中触发垃圾回收。
13. **垃圾回收机制**:Java的自动内存管理是通过垃圾回收实现的,书中会讲解垃圾回收的工作原理和性能优化策略。 以上只是《Java编程思想》第五版可能涵盖的部分知识点,实际内容会更为丰富,包括设计模式、并发...
2. **JVM机制**:理解JVM的工作原理,包括类加载器、类反射、垃圾回收等。 3. **安全机制**:掌握Java沙盒安全模型、代码签名、数字签名、加密等技术。 4. **数据库交互**:理解对象关系映射(O/R Mapping)的概念及其...
垃圾回收机制的原理是: 1. 标记垃圾对象 2. 回收垃圾对象 JavaSE 是 Java 语言的核心部分,包括了基本语法、数据类型、运算符、流程控制、数组、面向对象等知识点。JavaSE 是 Java 语言的基础,理解 JavaSE 是...
- **垃圾回收机制**:Java自带了自动垃圾回收功能,能够自动释放不再使用的内存空间,简化了程序员的工作。 ### Java 的版本 - **Java SE (J2SE)**:即标准版,是用于开发桌面应用程序的标准平台。 - **Java EE ...