自学内容网 自学内容网

关于 JVM 个人 NOTE

目录

1、JVM 的体系结构

2、双亲委派机制

3、堆内存调优

4、关于GC垃圾回收机制

4.1 GC中的复制算法

4.2 GC中的标记清除算法


1、JVM 的体系结构

"堆"中存在垃圾而"栈"中不存在垃圾的原因:

堆(Heap)

  1. 用途:堆主要用于存储对象实例和数组。在Java中,几乎所有通过new关键字创建的对象都会存储在堆内存中。
  2. 内存分配与释放堆内存的分配和释放由JVM的垃圾回收器(Garbage Collector, GC)自动管理。当对象不再被引用时,它们被认为是垃圾,但并不会立即被释放。相反,垃圾回收器会在合适的时机进行垃圾回收,以释放这些不再使用的内存空间。
  3. 垃圾存在的原因:由于垃圾回收器并不是实时运行的,且对象的生命周期可能跨越多个垃圾回收周期,因此在堆内存中可能会存在已经不被使用但仍未被回收的垃圾对象

栈(Stack)

  1. 用途:栈主要用于存储局部变量、方法调用信息和对象的引用变量(但对象本身存储在堆中)。每个线程都有自己独立的栈空间,用于存储该线程执行过程中的局部变量和方法调用信息。
  2. 内存分配与释放栈内存的分配和释放是自动的,且与方法的调用和返回紧密相关。每当一个方法被调用时,JVM会在栈上为该方法创建一个新的栈帧&

原文地址:https://blog.csdn.net/qq_66862911/article/details/142589442

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!