什么是JVM的类加载及内存区域

发布时间:2021-09-10 14:19:24 作者:柒染
来源:亿速云 阅读:144

这篇文章将为大家详细讲解有关什么是JVM的类加载及内存区域,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

一、JVM加载类的过程

二、类加载器

种类

双亲委派机制

意思就是即优先让父ClassLoader去加载。原因是避免重复加载,保证应用的classPath下的Class对象在内存中的唯一性。

层次图

什么是JVM的类加载及内存区域

tomcat破坏双亲委派

tomcat作为java编码的web容器,本身也是在jvm中运行,怎么让基于tomcat容器的各个web应用正常运行,使得各个web应用包含的应用的class不会乱套,必须破坏双亲委派机制,为每一个web应用的class都用不同的类加载器去加载。

其中:

common、catalina、shared负责加载tomcat自己的核心类库,webApp加载web应用的class(隔离web应用引用的三方类库),jsp加载器加载JSP(每个JSP文件都对应一个Jsp类加载器,jsp加载器支持热加载,即Jsp只要修改,就重新加载一次覆盖原来的jsp)。

通过tomcat的类加载机制,可以达成以下目标:

自定义类加载器的作用

三、JVM内存区域划分

方法区(1.8之后叫metaspace-元数据空间)

存放类的元数据信息,可以理解为反射获取的Class对象的哪些信息。

程序计数器

一个程序计数器对应一个线程、一个线程对应一个栈、一个栈由一个个栈帧组成,一个方法对应一个栈帧,栈帧包含局部变量表、操作数栈、动态链接、方法出口(相当于结束方法时需要跳转的位置)。栈帧在调用方法的时候进栈,方法结束的时候出栈。

其他内存区域

图示

什么是JVM的类加载及内存区域

关于什么是JVM的类加载及内存区域就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

推荐阅读:
  1. JVM的内存区域划分
  2. JVM类加载

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

jvm

上一篇:怎么用CSS绘制各种形状

下一篇:怎么通过重启路由的方法切换IP地址

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》