![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
文章平均质量分 63
CodeHuba
这个作者很懒,什么都没留下…
展开
-
JVM GC有哪几种,有什么区别,分别有什么触发条件?
Minor GC:对象从新生代区域消失的过程,清理整个YoungGen,eden和S0/S1的清理都会由于MinorGC Allocation Failure(YoungGen区内存不足)而触发minorGC; major GC:对象从老年代区域消失的过程,OldGen区内存不够而触发MajorGC; Full GC:清理整个堆空间,包括新生代、老年代、永久代,触发的场景: System.GC 年代晋升失败,比如eden区存活的对象晋升到S区放不下,又尝试直接晋升到Old区还是放不下,那么Promotio原创 2021-12-20 15:26:40 · 466 阅读 · 0 评论 -
JVM类加载机制
5个部分: 1、加载:在内存中生成代表这个类的java.lang.Class对象,作为方法区这个类的入口。注意,不一定非得从Class文件获取,也可以是ZIP包(jar包、war包),也可以在运行时生成(动态代理),也可以由其他文件生成(比如JSP文件转换成对应的Class类)。 2、验证:确保Class文件的字节流里包含的信息是否符合当前JVM的要求,不会危害到虚拟机的安全。 3、准备:正式为类变量分配内存并设置初始值的阶段,即在方法区分配这边变量所使用的内存空间。 4、解析:虚拟机将常量池中的符原创 2021-12-15 09:57:44 · 313 阅读 · 0 评论 -
JVM GC垃圾回收机制
1、JAVA中四种引用类型 强引用:最常见,把一个对象赋给一个引用变量。即使该对象永远不用也不会被GC回收,是造成内存泄漏的主要原因之一。 软引用:SoftReference类实现,内存不足时会被回收。 弱引用:WeakReference类实现,只要GC执行,不管内存空间是否足够,都会被回收。 虚引用:PhantomReference类来实现,不能单独使用,必须和引用队列联合使用。虚引用的作用是跟踪对象被垃圾回收的状态。 2、GC 分代收集算法VS分区收集算法 分代原创 2021-12-14 10:55:23 · 423 阅读 · 0 评论 -
认识JVM和运行时内存
认识JVM和运行时内存 基本概念:JVM运行Java代码的假想计算机,包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收、一个堆、一个存储方法域。 JVM与硬件没有直接交互,运行在操作系统之上。 运行过程: Java源文件---->编译器---->字节码文件 字节码文件---->JVM解释器---->机器码 内存区域: 运行时数据区:方法区、堆、栈、本地方法栈、计数器 1、线程 JVM允许一个应用并发执行多个线程。JVM中的Java线程与操作系统线原创 2021-12-13 20:00:10 · 1184 阅读 · 0 评论