![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
文章平均质量分 89
心寒丶
java后台,oracle数据库,前端全栈开发,三个臭皮匠,顶个诸葛亮,有问题咱一起解决!只要你问,只要我会(不会可以一起研究),倾囊相授
展开
-
【JVM 4】类加载及生命周期
类加载器 类加载器的主要任务就是根据一个类的全限定名来读取此类的二进制字节流到JVM 内部,然后转换为一个与目标类对应的java.lang.Class对象实例。 参考《Java 虚拟机规范(Java SE7版)》的描述来看,JVM支持两种类型的类加载器,分别为引导类加载器(Bootstrap ClassLoader)和自定义类加载器(User-Defined ClassLoader)。在此大家需要注意,从概念上来讲,自定义类加载器一般指的是程序中由开发人员自定义的一类类加载器,但是Ja...原创 2022-01-13 15:02:10 · 214 阅读 · 0 评论 -
【JVM 3】GC及常见算法
GC作用 GC ( Garbage Collector,垃圾收集器)就是JVM中自动内存管理机制的具体实现。在HotSpot中,GC的工作任务主要可以划分为两大块,分别是内存的动态分配和垃圾回收。而在执行内存分配之前,GC首先会对内存空间进行划分,考虑到JVM中存活对象的生命周期会具有两极化,因此应该采取不同的垃圾收集策略,分代收集由此诞生。目前几乎所有的GC都是采用分代收集算法执行垃圾回收的,所以Java 堆区如果还要更进一步细分的话,还可以划分为新生代 ( YoungGen)和老年代(...原创 2022-01-13 11:11:57 · 233 阅读 · 0 评论 -
【JVM 2】OOM
内存溢出(OutOfMemory,简称OOM)是一个令人头痛的问题,它通常出现在某一块内存空间块耗尽的时候。在Java程序中,导致内存溢出的原因有很多,本节将主要讨论最常见的几种内存溢出问题,包括堆溢出、直接内存溢出、永久区溢出等。 1、Java堆溢出 Java堆用于存储对象实例,只要不断地创建对象,并且保证GC Roots 到对象之间有可达路径来避免垃圾回收机制清除这些对象,那么在对象数量到达最大堆的容量限制后就会产生内存溢出异常。 设置运行参数 -X...原创 2022-01-12 10:52:37 · 191 阅读 · 0 评论 -
【JVM 1】JVM的运行时内存区结构
Java 虚拟机所管理的内存将会包括以下几个运行时数据区域 一、线程私有内存区 1、程序计数器 程序计数器(Program Counter Register)也叫作PC寄存器,是一块较小的内存空间,它可以看作是当前线程执行的字节码的行号指示器。在虚拟机的概念模型里,字节码解释器的工作就是通过改变程序计数器的值来选择下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都要依赖这个计数器来完成。 在多线程环境下,为了让线程切换后能恢复到正确的执行位置,每个钱程都需要有一个独立的原创 2022-01-11 15:40:43 · 223 阅读 · 0 评论