深入理解Java虚拟机(二)——类加载器深入解析 布满荆棘的人生 2022-05-14 15:21 193阅读 0赞 **目录** [深入理解Java虚拟机(一)——JVM整体架构][Java_JVM] [深入理解Java虚拟机(二)——类加载器深入解析][Java] [深入理解Java虚拟机(三)——JVM内存结构+JVM执行引擎][Java_JVM_JVM] [深入理解Java虚拟机(四)——JVM性能调优监控工具][Java_JVM 1] -------------------- # 类加载过程 # ## •类加载:类加载器将class文件加载到虚拟机的内存 ## •加载:在硬盘上查找并通过IO读入字节码文件 •连接:执行校验、准备、解析(可选)步骤 •校验:校验字节码文件的正确性 •准备:给类的静态变量分配内存,并赋予默认值 •解析:类装载器装入类所引用的其他所有类 •初始化:对类的静态变量初始化为指定的值,执行静态代码块 ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3o3ODU0OTUyOTU_size_27_color_FFFFFF_t_70][] # 类加载器种类 # •**启动类加载器**:负责加载JRE的核心类库,如jre目标下的rt.jar,charsets.jar等 •**扩展类加载器**:负责加载JRE扩展目录ext中JAR类包 •**系统类加载器**:负责加载ClassPath路径下的类包 •**用户自定义加载器**:负责加载用户自定义路径下的类包 ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3o3ODU0OTUyOTU_size_27_color_FFFFFF_t_70 1][] # 类加载机制 # •**全盘负责委托机制**:当一个ClassLoader加载一个类时,除非显示的使用另一个ClassLoader,该类所依赖和引用的类也由这个ClassLoader载入 •**双亲****委****派****机制**:指先委托父类加载器寻找目标类,在找不到的情况下在自己的路径中查找并载入目标类 ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3o3ODU0OTUyOTU_size_27_color_FFFFFF_t_70 2][] •双亲委派模式优势 •**沙箱安全机制**:自己写的String.class类不会被加载,这样便可以防止核心API库被随意篡改 •**避免类的重复加载:**当父亲已经加载了该类时,就没有必要子ClassLoader再 加载一次 # 类加载过程 # •JVM加载jar包是否会将包里的所有类全部加载进内存? •JVM对class文件是按需加载(运行期间动态加载),非一次性加载,见示例(启动需要加上参数:-verbose:class) ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3o3ODU0OTUyOTU_size_27_color_FFFFFF_t_70 3][] [Java_JVM]: https://blog.csdn.net/z785495295/article/details/83472821 [Java]: https://blog.csdn.net/z785495295/article/details/83473079 [Java_JVM_JVM]: https://blog.csdn.net/z785495295/article/details/83473154 [Java_JVM 1]: https://blog.csdn.net/z785495295/article/details/83473307 [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3o3ODU0OTUyOTU_size_27_color_FFFFFF_t_70]: /images/20220503/a9ee12127a88406bb140f2b7e1c9d03e.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3o3ODU0OTUyOTU_size_27_color_FFFFFF_t_70 1]: /images/20220503/42337e1314a64895884b0aebce7f3209.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3o3ODU0OTUyOTU_size_27_color_FFFFFF_t_70 2]: /images/20220503/68b94df7bbbd4fecad8b6a89a18f3a06.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3o3ODU0OTUyOTU_size_27_color_FFFFFF_t_70 3]: /images/20220503/57ce61f461624718839c094a294ef2ac.png
还没有评论,来说两句吧...