Mengqi Xu's Blog

> 分类: JVM


2023年09月23日
徐梦旗
3.2k字

调优理论 为什么需要调优? 提高程序运行的性能,如提高程序的吞吐量、降低程序的响应时间等。 解决程序出现的问题,如解决内存溢出、内存泄漏、死锁等问题。 > 性能问题一般需要调整程序代码,虚拟机调优是最后手段。 调优的过程是怎样的? 1. 监控虚拟机的行为,如堆的内存占用、GC...

2023年09月12日
徐梦旗
1.8k字

垃圾回收原理 什么是垃圾? 垃圾是指不再被使用的对象,也就是死亡的对象。 为什么需要垃圾回收? 由于内存空间是有限的,需要垃圾回收来释放内存空间,以保证程序的正常运行。 如何找到垃圾? 引用计数法:当对象被引用时,其引用计数器加一;当去除对象的引用时,引用计数器减一。当引用计...

2023年09月09日
徐梦旗
1.4k字

对象的生命周期 对象是如何创建的? 1. 通过new指令或反射等方式创建新的对象; 2. 若该对象对应的类从未被加载过,则进行类的加载; 3. 在堆中(或栈上分配)为对象分配内存空间; 4. 初始化对象的内存空间为零值; 5. 为对象设置必要的信息,如类的元数据,对象的哈希码,GC分代年...

2023年09月01日
徐梦旗
2.9k字

堆 堆中存放的是什么? 对象实例存放在Java堆[^1](Java Heap)中。堆是线程共享的。 堆内存是如何划分的? 堆内存被划分为新生代和老年代两部分,新生代又被划分为一个Eden区和两个大小相同的Survior区。将堆内存划分为新生代和老年代主要是为了提高垃圾收集的效率,基...

2023年07月31日
徐梦旗
3.9k字

类加载机制 什么是类加载机制? 类加载(Class Loading)是指Java虚拟机将class字节码文件加载到内存中并生成Class对象的过程。 > 虚拟机参数:可以通过verbose:class来打印类加载的日志。 类加载有哪些步骤? 类加载有以下几个步骤: 1. 通过全限...