JAVA基础

 一、jvm

1. 老年代的垃圾回收器的原理

老年代垃圾回收器的例子有标记-压缩算法,即标记出哪些是垃圾对象,然后把这些对象清理掉,最后通过压缩整理内存,减少内存碎片。

2. cms的三色标记法

CMS(Concurrent Mark Sweep)垃圾回收器的三色标记法,是一种并发标记算法,它将对象分为三种颜色,分别是黑、灰、白。黑色表示该对象已经被标记过,且该对象下的属性也全部都被标记过;灰色表示该对象已经被垃圾收集器扫描过,但是对象中还存在没有扫描的引用;白色表示该对象没有被垃圾收集器访问过。

3. 一个类 A,现在去 new A 对象,在 jvm 级别经历了什么

当你在Java中创建一个对象时,JVM会经历以下步骤:

  • 类加载:JVM首先需要加载类A的字节码文件。类加载器负责读取.class文件,将其转换为Java类,并存储在方法区中。
  • 内存分配:JVM为新创建的对象分配内存。这个内存通常在Java堆内存中,具体在Eden区。JVM会根据对象的类型和大小,为其分配相应的内存空间。
  • 初始化:分配内存后,JVM会执行对象的构造函数,即类A的方法,来初始化对象。此步骤涉及执行类的构造函数以及任何初始化块。
  • 链接:在对象初始化完成后,JVM会进行链接操作,包括验证、准备(为类的静态变量分配内存并初始化为默认值)和解析(把类的符号引用转换为直接引用)。
  • 可用:一旦对象创建并初始化完成,它就可以被你的Java代码使用。

注意,以上步骤在并发环境中可能会有所不同。例如,多线程环境下可能会出现线程安全问题,需要使用锁等机制来保证正确性。此外,JVM的不同实现和配置可能会对具体步骤和顺序有所影响。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值