![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
比宋小宝白
这个作者很懒,什么都没留下…
展开
-
(深入理解JVM)Java内存区域与内存溢出的异常
Java内存的区域程序计数器(线程私有)程序计数器是一块很小的内存空间,可以被视作为当前线程所执行的字节码的行号指示器。如果线程执行的是java的 方法,这个计数器记录的虚拟机执行指令码的行数。如果执行的是Native的方法则计数器为空。不会出现OutOfMemoryError的错误。java虚拟机栈(线程私有)在每个方法执行的时候会创建一个栈帧,栈帧是用来存储方法中的局部变量表,操作数栈...原创 2019-02-16 14:40:10 · 77 阅读 · 0 评论 -
(JVM)类文件结构
字面量:类似于Java的常量的概念是具体的值。例如是 1,"abc"这种符号引用: 1 是类和接口的全限定名称。2 字段的名称和描述符。3 方法的名称和描述符。、简单名称:没有指定类型的描述符和参数类型,例如变量m和方法inc()全限定名称:即com/jhc/test/Test就是抱一个类所在的包也表示出来。描述符:用来描述方法或者字段的数据类型,方法的参数类型和返回值。就是把一个方法的...原创 2019-02-23 17:04:42 · 132 阅读 · 0 评论 -
(JVM)第三章垃圾回收
垃圾回收主要存在于对内存当中。可达性分析算法这个算法的基本思路是通过一系列成为“GCRoots”的对象作为起始点,从这些节点开始向下搜索,搜索所走过的路劲称之为引用链,当一个对象到GCRoots没有认识引用链的时候,则证明此对象是不可用的。GCRoots的选择:虚拟机栈(堆栈中的本地变量表)中引用的对象。方法区中类静态属性引用的对象。方法区中常量引用的对象本地方法栈中JNI(即一般...原创 2019-03-02 17:18:45 · 163 阅读 · 0 评论 -
(JVM)破坏双亲委派模型。
双亲委派模型很好地解决了各个类加载器的基础类统一问题(越是基础的类越由上层加载器加载),基础类被其他的对象锁调用,但是如果基础类需要加载调回其他用户的代码的时候模型便会被破坏。SPI机制简介SPI的全名为Service Provider Interface,主要是应用于厂商自定义组件或插件中。在java.util.ServiceLoader的文档里有比较详细的介绍。简单的总结下java SP...原创 2019-03-14 19:31:46 · 730 阅读 · 0 评论 -
(JVM)虚拟机类加载机制
类加载的时机遇到new getstatic setstatic invokestatic这4个字节码指令的时候。即当创建对象,使用类的静态方法,静态变量的时候会对类进行加载。使用java.lang.reflect进行反射调用的时候,会启用类的加载初始化一个类发现其父类还没有进行初始化的时候,首先初始化其父类执行方法的时候,首先加载的是包含main()函数的主类。特殊情况:1 如果在...原创 2019-03-12 19:54:23 · 126 阅读 · 0 评论