0
点赞
收藏
分享

微信扫一扫

jvm的类加载器心得笔记

司马吹风 2022-07-12 阅读 49

     这里记一下我所理解到的类加载器相关的,重要的知识:

             之前一直疑惑的一个问题,jvm运行之后启动加载器加载java程序,在这个过程中,ClassLoader本身也是一个JAVA类,所以ClassLoader也需要一个加载器加载,这就有点难受了。并且在这个同时,ClassLoader需要一些其他的类作为运行时环境。但是此时应该除了类加载器之外应该不包含其他的java类。

           纠结了很久,看源码越看越蒙。还好再网上的大牛的博客中得到了答案。  有时候真的觉得it行业真的是人才辈出,能文能武。谁说程序员就是一脸呆板,情商低来着呢。

          感慨了一下,原来这里涉及到类加载的时机:  有两个时机会进行类加载

         一.预加载:jvm程序启动之后,由jvm自动完成,加载jre/lib/rt.jar,里面具有java的核心类库:java.lang.*,java.util.*等(要证明这一点很简单,写一个空的main函数,设置虚拟机参数为"-XX:+TraceClassLoading"来获取类加载信息)这时大牛给的方法,还没试。先兴奋的记下来。

       二.运行时加载:我觉得很多博客只针对这个过程进行了阐述,却没有对上一个加载时机进行阐述,这样中间就难免有一些地方不清楚。这里赶紧记一记。      这个阶段也就是那个  类加载机制的双亲委派模式起作用的时候。图片懒得上了。

这里直接记下大牛的地址:方便以后浏览:  有很多与jvm相关的博客,但是这位大牛的这一系列博客写的是真好。   里面具体的案例就等自己下来练习吧。然后这两天再把剩下的几个设计模式实践一遍。完美!


举报

相关推荐

0 条评论