java类加载过程详解_java三个类加载器

java类加载过程详解_java三个类加载器朋友给我发了一道有意思的题目,如下为什么用.class的方式加载类和以Class.forName()的方式加载的结果不同呢,原因很简单,就是类加载过程的不同。这就扯到基础理解上了,就是Java是如何加载一个类的呢?上图是我绘制的整个Java类加载过程。首先是编译期,将Java源文件也就是敲好的代码通过编译,转换成.class文件,也就是字节码文件(byte),然后经过传输传…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

朋友给我发了一道有意思的题目,如下

java类加载过程详解_java三个类加载器

为什么用.class的方式加载类和以Class.forName()的方式加载的结果不同呢,原因很简单,就是类加载过程的不同。

这就扯到基础理解上了,就是Java是如何加载一个类的呢?

java类加载过程详解_java三个类加载器

上图是我绘制的整个Java类加载过程。

首先是编译期,将Java源文件也就是敲好的代码通过编译,转换成.class文件,也就是字节码文件(byte),然后经过传输传给类加载器,传输的是刚转换好的字节码文件,也可以是通过网络传输过来的字节码文件,这个是分布式架构下的情况。

然后就是运行期,运行期一开始,类加载器初始化字节码文件,通过本地类库来验证字节码文件的正确性,然后交给JVM的解释器和即时编译器,最后汇合给JVM内部的Java运行系统,都ok了后传给PC的操作系统,最后就是物理硬件层面。

所以问题的答案就有了java类加载过程详解_java三个类加载器

.class是JVM将类装入内存,是在编译期间实现的,而编译期间只是做了字节码转换,所以不执行静态块

而class.forName()除了将类的.class文件加载到jvm中之外,还会对类进行解释,执行类中的static块。当然还可以指定是否执行静态块。

java类加载过程详解_java三个类加载器

扫码关注我的微信公众号:Java架构师进阶编程  获取最新面试题,电子书

专注分享Java技术干货,包括JVM、SpringBoot、SpringCloud、数据库、架构设计、面试题、电子书等,期待你的关注!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/169718.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ExaGrid获得+73的净推荐值

    ExaGrid获得+73的净推荐值根据NPS标准,此分数值被归为“优秀”马萨诸塞州韦斯特伯鲁–(美国商业资讯)–备份用超融合二级存储器领先供应商ExaGrid®今日宣布,在近日开展的净推荐值(NPS)调查中,该公司的NPS为+73。NPS客户忠诚度指标用于测评现有客户向同行推荐供应商产品或服务的可能性。得到的NPS分数可能低至-100或高达+100。ExaGrid的大多数竞争对手的NPS介于+10和+20之间,而Exa…

    2022年6月6日
    27
  • 数组反转两种方法[通俗易懂]

    数组反转两种方法[通俗易懂]//数组反转 for(inti=0;i<arr.length/2;i++){ Stringt=””; t=arr[i]; arr[i]=arr[arr.length-1-i];//length-1 arr[arr.length]=t; } //方法二 for(inti=0,j=arr.length;i<arr.length/2;i++,j–){ Stringt=arr[i..

    2022年5月20日
    36
  • clientWidth、offsetWidth等介绍[通俗易懂]

    clientWidth、offsetWidth等介绍[通俗易懂]网页可见区域宽:document.body.clientWidth网页可见区域高:document.body.clientHeight网页可见区域宽:document.body.offsetWidth(包括边线的宽)网页可见区域高:document.body.offsetHeight(包括边线的宽)网页正文全文宽:document.body.scrollWidth网页正文全文高:do…

    2022年7月22日
    13
  • 数据库查询优化的一般步骤_sql创建数据库失败

    数据库查询优化的一般步骤_sql创建数据库失败长按识别下方二维码,即可"关注"公众号每天早晨,干货准时奉上!0、序言本文我们来谈谈项目中常用的20条MySQL优化方法,效率至少提高3倍!具体如下:1、使⽤…

    2022年8月21日
    5
  • 解决:VUE同一路由强制刷新页面

    解决:VUE同一路由强制刷新页面解决:VUE同一路由强制刷新页面

    2022年7月11日
    67
  • 新东方尹圆圆老师的博客上找来的「建议收藏」

    新东方尹圆圆老师的博客上找来的「建议收藏」这些网站是从新东方尹圆圆老师的博客上找来的,希望大家好好利用:1.http://www.texun.cn/addrso/index.htm特训网:EnglishLearningWebsites2.http://broadcast-live.com/LiveRadioandTVfromAroundtheWorld3.http://www.nxenglish…

    2022年9月13日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号