Java|优秀的程序员怎么能不知道类是何时被加载进虚拟机的
文章图片
文章图片
文章图片
文章图片
文章图片
文章图片
文章图片
开始正文前 , 让我们先来了解一下什么是“类的动态加载机制” 。 当编写好一个java类并通过编译器编译成class文件后 , 该类就可以在JVM虚拟机中运行了 。 我们将 , class文件被加载到虚拟机中的过程称为“类加载机制” 。 “动态加载”就是在程序运行的过程中将class文件加载到虚拟机中 。
我们都知道java可以做到运行时动态加载类 , 那你知道 , 编写好的类是什么时候加载到java虚拟机中的吗?
下面就让我们就一起探讨一下 , java类在什么情况下会被加载到JVM虚拟机中 。
首先让我们先将idea作出如下配置(我使用的开发工具是idea , 所以只介绍了idea的配置) , 从而方便我们观察类是何时被加载的 。
操作步骤请按如下两图进行:
图一
图二
第一种情况:
当我们通过“new”关键字创建出一个对象实例时 , 会将该类加载到虚拟机中 。代码:
类的加载情况:
第二种情况:
当我们访问一个类的静态方法或者静态属性时 , 会将该类加载至虚拟机中 。代码:
类的加载情况:
当初始化一个类的时候会初始化该类的静态代码块 , 如果这其中有引用到其它类 , 那么被引用的类也会进行加载 。代码:
类的加载情况:
第三种情况:
通过反射(使用Class.forName()方法) , 也会导致类加载 。代码:
类的加载情况:
第四种情况:
当加载子类时 , 会先加载它的父类 。【Java|优秀的程序员怎么能不知道类是何时被加载进虚拟机的】代码:
类的加载情况:
以上四种情况都会将类加载进虚拟机中 。 类的加载有且仅有“一次” , 当一个类已经在虚拟机中存在了 , 就不会再进行重复加载了 。
今天的分享就到这里了 , 如果感觉“菜鸟”写的文章还不错 , 记得点赞加关注呦!你们的支持就是我坚持下去的动力 。 文章哪里写的有问题的也希望大家可以指出 , 我会虚心受教 。
推荐阅读
- 程序员|强力支持!国家再出重拳,这是要彻底解决华为芯片危机
- Java|Java项目搜索功能的实现
- 程序员|37岁程序员裸辞,四个月被497家公司拒绝,问猎头后懵了
- Java|面试三年经验的程序员,感觉简历在造假!连个简单的题目都不会
- 王石头|捐助优秀宏志生,人均价值上万元!,雷军做公益网友点赞
- 游龙战神|-启动流程,好程序员Java培训分享SpringBoot
- 科技阿维|小米万元助学大礼包贺金榜题名,实名羡慕!这群优秀高考生有福了
- 程序员|漫画:程序员的宿命,真实的反映了我现在的状况。何时是个头?
- 王优秀|10小时卖10万单,背后模式引发深思,''网瘾少年''进军直播带货
- 程序员|那些还在外包公司干的程序员们,快醒醒吧