网站删除留言板功能删除,做内贸哪个网站找客户,知名品牌设计公司,客户管理系统 软件类加载
定义
一个java文件从编写代码到最终运行#xff0c;必须要经历编译和类加载的过程#xff0c;如下图#xff08;图源自b站视频up主“跟着Mic学架构”#xff09;。
编译就是把.java文件变成.class文件。类加载就是把.class文件加载到JVM内存中#xff0c;得到一…类加载
定义
一个java文件从编写代码到最终运行必须要经历编译和类加载的过程如下图图源自b站视频up主“跟着Mic学架构”。
编译就是把.java文件变成.class文件。类加载就是把.class文件加载到JVM内存中得到一个clss对象。使得我们可以使用new关键字来实例化这个对象。
具体流程
其中类加载的流程细分如下图源自b站up主“寒食君”。只有最开始加载步骤的读取二进制流与初始化部分可以被上层开发者控制其余步骤都是由JVM掌握。
类加载器分类
类加载器的分类本身由JVM定义。各个不同的JVM的实现方式不一定一样。
以下我们讨论的都是hotspot实现的JVM中的概念图源自b站up主“寒食君”。
hotspot中类加载器分为两种分为启动类加载器bootstrap classloader和非启动类加载器。
bootstrap classloader底层是由c/cpp实现的无法作为对象被程序引用主要是用来加载java的核心类库。非启动类加载器底层由java实现继承自java.lang.ClassLoader可以作为对象被程序引用。又细分为三种类加载器。 Extension ClassLoader主要被用来加载java API的拓展。Applicatiion ClassLoader主要被用来加载环境变量或者是系统属性指定路径下的类库。也就是上层程序员自己编写的一些代码以及一些第三方类库所以最常用。User ClassLoader 与上述提及的只能从本地文件中获取字节码来加载的加载器不同这个是用户自定义加载器可以加载任意来源的字节码。 命名空间未完结待续
https://blog.csdn.net/weixin_40575457/article/details/106100423
https://blog.csdn.net/qwlzxx/article/details/71440420
图来自