![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
文章平均质量分 90
芝麻\n
且听风吟,静待花开
展开
-
JVM-内存分区
连接是将部分符号引用替换为直接引用,对于有些方法,JVM并不能判断它们的具体实现,只有在真正运行的时候,才可以根据实际类型进行连接,这就是动态连接。每个栈帧都包含一个指向运行时常量池中该栈帧所属方法的引用,持有这个引用都是为了支持方法调用过程中的动态连接。在JVM中,它的作用就是用来存储字节码指令的地址,提供给执行引擎去执行。橙色虚线包裹的就是线程共享的,被红色实现包裹的是线程隔离的。就是用来存储操作数的栈,这里的操作数大部分就是方法内的变量。java中的多态就是通过动态连接实现的。原创 2024-08-16 16:08:28 · 626 阅读 · 0 评论 -
JVM-类加载器
重写loadClass方法,双亲委派的逻辑就在这个方法中,但是我自定义的类加载器可以不这么写,也就破坏了双亲委派。市面上有三种JVM,不同的JVM对类加载器的实现是不同的,我们主要学习的并且使用的是Sun公司的HotSpot。**用户加载器(User ClassLoader):**用户自定义的加载器。这不仅破坏了双亲委派,并且证明了每个类加载器都有自己的命名空间。扩展类加载器、系统类加载器、用户加载器都是继承自。类的加载 ==》类的链接 ==》类的初始化。C++**编写的,是JVM自带的类加载器,原创 2024-08-16 16:06:53 · 622 阅读 · 0 评论 -
JVM-简介
在java中,将执行过程分为本地代码和远程代码两部分,本地代码是默认可信任的,而远程代码则被看做是不受信任的。 在jdk1.2的版本中,再次引进安全机制,增加了代码签名,不论是本地代码还是远程代码,都会按照用户的安全策略设定,由类加载器加载到JVM中权限不同的运行空间,来实现差异化的代码执行权限控制。 虚拟机为不同的类加载器载入的类提供不同的命名空间,命名空间由一系列唯一的名称组成,每一个被装载的类将有一个名字,这个命名空间是由ava虚拟机为每一个类装载器维护的,它们互相之间甚至不可见。原创 2024-08-16 16:02:07 · 663 阅读 · 0 评论 -
JVM-内存模型
JVM的内存模型原创 2023-08-17 19:50:18 · 52 阅读 · 1 评论