jvm
Layber
头发还多,所以技术很菜!
展开
-
Java内存分配和内存模型
堆概述:Java堆的结构:原创 2021-08-06 16:54:56 · 81 阅读 · 0 评论 -
jvm架构和运行时数据区
pc寄存器:1.每个线程都拥有一个PC寄存器,pc寄存器是线程私有的,用来存储指向下一条指令的地址。2.在创建线程的时候就创建了相应的pc寄存器3.执行本地方法时,pc寄存器的值为undefined4.pc寄存器是一块很小的内存区域,是唯一一个在jvm规范中没有规定OutOfMemoryError的内存区域。Java虚拟机栈:java堆:方法区:运行时常量池:本地方法栈:堆栈方法区的交互关系:...原创 2021-08-06 16:30:27 · 78 阅读 · 0 评论 -
jvm 双亲委派模型
Java13的双亲委派模型:jvm中的ClassLoader通常采用双亲委派模型,要求除了启动类加载器以外,其余的类加载器都应该有自己的父级类加载器。这里的父子关系是组合而不是继承,工作过程如下:1.一个类的加载器收到类的加载请求以后,首先搜索他的内建加载器定义的所有“具名模块”2.如果找到了合适的模块定义,将会使用该加载器来加载3.如果class没有在这些加载器定义的具名模块中找到,那么将会委托给父类加载器,直到启动类加载器。4.如果父级加载器反馈它不能完成加载请求,比如在他的搜索..原创 2021-08-03 10:46:35 · 102 阅读 · 0 评论 -
jvm类的加载过程
jvm类的加载过程如图,一般分为加载、连接、初始化、使用、卸载几个阶段,连接可以细分为验证、准备、解析三个步骤。每个步骤干的事情有: 加载:查找并加载类文件的二进制数据 连接:将已经读入到内存的类的二进制数据合并到jvm运行时环境中去,包括以下几个步骤: 1.验证:保证被加载类的正确性 2.准备:为类的静态变量分配内存,并初始化他们 3.把常量池中的符号引用转换成直...原创 2021-08-02 16:56:34 · 77 阅读 · 0 评论