![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
jvm
qq_41642608
这个作者很懒,什么都没留下…
展开
-
类加载器
jvm给我们的权利在类的加载过程中,jvm的开发者在获取类的二进制流这一步给了我们很大的自由度,并没限制我们怎样获取类的二进制流,我们可以通过各种方式去获取这个类的二进制流,只要这个类的二进制流是正确的,jvm就可以加载并在内存中生成相应的类供用户使用,所以我们可以自定义我们自己的类加载器。jvm的类加载器jvm本身也提供了3个类加载器,并且他们之间是存在父子关系的。这3个类加载器分别是...原创 2019-06-13 12:33:04 · 78 阅读 · 0 评论 -
深入理解Java虚拟机----内存区域与溢出
为什么要学虚拟机的内存模型最近学习了jvm虚拟机的内存模型,开始学习时,我就像一只填鸭,书上写什么就接受什么,学完了也只是理解了一到两成的知识。所以我现在想带着我的疑问去学习,首先为什么我们需要学习jvm虚拟机的内存模型?内存顾名思义就是存放东西的,存放的是程序运行时的数据。那既然内存是存放东西的话,那我们就要清楚把数据怎么去放到内存,用的时候怎么从内存中拿回来。所以学习jvm虚拟机的内存模型...原创 2019-06-10 16:38:36 · 119 阅读 · 0 评论 -
类加载进虚拟机的过程
类加载进虚拟机的过程class文件加载校验准备解析初始化这个顺序只是表示按顺序开始,但不是一个步骤结束才开始另一个步骤,步骤之间是交错运行的。加载完成三件事:1.找到class文件,读取进内存。2.按一定的数据结构放入方法区。3.在堆中生成class对象。在这个过程中,找到class文件,读取进内存这一步我们有很大的控制权限,任何形式获取class文件二进制流都是可以的,只要我们...原创 2019-06-11 10:59:02 · 209 阅读 · 0 评论 -
虚拟机字节码执行引擎
栈帧局部变量方法体内的变量是保存在这里,大小由编译时决定,保存在class文件中,并且这个可以复用操作数栈给指令用的,保存这个指令的参数动态链接解析分派返回地址正常不正常...原创 2019-06-17 10:02:02 · 66 阅读 · 0 评论 -
jvm--方法调用
这里我们学习的是实际方法的地址入口与符号引用是怎么转换的。首先我们来看一个源码和他的字节码。从代码块的字节码可以看出,invoke指令后面跟的是字符引用,所以这里需要把字符引用转为方法块的入口地址。这里的转换是有一定规则。下面让我们来看看这些规则。1.实际方法的方法名称、参数类型、返回类型是在编译期决定。可以看到invoke后面的字符引用是。(分派)2.静态方法、初始化函数、类的私有函数...原创 2019-06-17 11:23:25 · 55 阅读 · 0 评论