`

Java类加载器类型

    博客分类:
  • JVM
 
阅读更多

原创转载请注明出处:http://agilestyle.iteye.com/blog/2369539

 

JVM自带的加载器

  • 根类加载器(Bootstrap)(C++编写)
  • 扩展类加载器(Extension)(Java编写)
  • 系统类加载器System)(也被称为应用类加载器,Java编写)

用户自定义的类加载器

  • java.lang.ClassLoader的子类
  • 用户可以定制类的加载方式

Java的可执行文件不同于C/C++,Java编译器只产生中间字节码文件(.class文件),由Java虚拟机(java.exe)解释执行。Java发布的程序(JAR包)也多半是一堆class文件,运行时由ClassLoader加载到Java虚拟机中执行。ClassLoader是Java虚拟机的主要组成部分,由Java语言编写,用户可以实现自定义的ClassLoader来完成特定的功能。

 

JVM规范定义了两种类型的ClassLoader

  • Bootstrap ClassLoader
  • User-defined ClassLoader

JVM在运行时会产生三个ClassLoader

  • Bootstrap ClassLoader
  • Extension ClassLoader
  • AppClassLoader

Bootstrap是用C++编写的,我们在Java中看不到它,是null,是JVM自带的类装载器,用来装载核心类库,如java.lang.*等。

AppClassLoader的Parent是ExtClassLoader,而ExtClassLoader的Parent为Bootstrap ClassLoader。

 

分享到:
评论

相关推荐

    java类加载机制原理与实现

    Java 中有三种类型的类加载器: 1. 启动类加载器(Bootstrap ClassLoader):负责加载 Java 的核心类库,例如 java.lang.String、java.util.ArrayList 等。 2. 扩展类加载器(Extension ClassLoader):负责加载 ...

    Java类加载内幕

    类加载是java语言提供的最强大的机制之一。...然后深入探讨java虚拟机(JVM)是怎么利用类加载器读取代码,及java中类加载器的主要类型。接着用一个类加载的基本算法看一下类加载器怎么加载一个内部类。本文的下一节演

    【JVM】类加载器与双亲委派模型

    类加载器的类型 类加载器有以下种类: 启动类加载器(Bootstrap ClassLoader) 扩展类加载器(Extension ClassLoader) 应用类加载器(Application ClassLoader) 启动类加载器 内嵌在JVM内核中的加载器,由C++语言...

    链接器和加载器.PDF(链接器和加载器 Beta 2)

    《链接器和加载器》讲述构建程序的关键工具——链接器和加载器,内容包括链接和加载、体系结构、目标文件、存储分配、符号管理、库、重定位、加载和覆盖、共享库、动态链接和加载、动态链接的共享库,以及着眼于成熟...

    【Visio源文件】类加载器的层次结构图

    所有Java应用都至少引用java.lang.Object类,也就是在运行的时候,java.lang.Object这个类需要被加载到Java虚拟机中,如果这个加载过程由Java自己的类加载器来完成,则在虚拟机中会存在多个版本的java.lang.Object类...

    Java虚拟机类加载机制浅谈

    JVM主要包含三大核心部分:运行时数据区,类加载器和执行引擎。  虚拟机将描述类的数据从Class文件加载到内存,并对数据进行校验、准备、解析和初始化,终会形成可以被虚拟机使用的Java类型,这是一个虚拟机的类...

    java深度历险

    创建自己的类加载器 14 参考资料 15 JAVA线程:基本概念、可见性与同步 16 JAVA线程基本概念 16 可见性 17 JAVA中的锁 18 JAVA线程的同步 19 中断线程 20 参考资料 20 JAVA垃圾回收机制与引用类型 22 JAVA垃圾回收...

    JAVA_API1.6文档(中文)

    java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。 java.util.concurrent 在并发编程中很常用的实用工具类...

    java classload教程

    然后深入探讨java虚拟机(JVM)是如何利用类加载器读取代码,以及java中类加载器的主要类型。接着用一个类加载的基本算法看一下类加载器如何加载一个内部类。本文的下一节演示一段代码来说明扩展和开发属于自己的类...

    Java类加载机制浅析

    4、类加载器ClassLoader  4.1类加载器分类  5、双亲委派机制   5.1、检查某个类是否已经加载   5.2、加载顺序  5.3、打破双亲委派机制 所谓类加载机制就是 虚拟机把Class文件加载到内存 并对数据进行校验,...

    java源码包---java 源码 大量 实例

     Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...

    J2SE笔记讲解个人修订(1.1).docx

    14 JAVA类加载器CLASSLOADER 15 JAVA简单工厂模式 16 JAVA中的注解 17 JAVA 图形界面 18 JAVA多线程 19 JAVA 反射机制 20 JAVA克隆CLONE(复制) 21 JAVA 网络编程 22 JAVA 其他未归类 23 JNI概述

    Java 1.6 API 中文 New

    java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。 java.util.concurrent 在并发编程中很常用的实用工具类。...

    Java基础知识点.html

    类加载器 ClassLoader 反射 Stream 流 函数式编程 Lambda 表达式 网络编程-协议 网络编程-端口 网络编程-IP 多线程 IO流-字节流 IO流-字符流 IO流-转换流 File Map HashMap 序列化和反序列化 可变参数 类型通配符 ...

    东北大学20春《JAVA语言程序设计》在线平时作业3答案.docx

    JAVA语言程序设计基础知识点 基于提供的文件信息,我们可以总结出以下几个重要的知识点: ...这些知识点涵盖了JAVA语言程序设计的基础知识,包括数据类型、表达式、类和对象、类加载器、编译方式等方面的内容。

    corejava基础重要知识点总结

    CLASSPATH:类加载器使用 让类加载器明确去哪里加载.class文件 通常不需要设置 默认值:. .:当前目录(.java) CLASSPATH相当于中国的低保制度 JAVA_HOME:其他的程序使用 WEB 设置方式: 1:一次性的设置 ...

    2022年Java面试题个人总结答案.docx

    Java类加载器加载类次序依次为:JVM类加载器、扩展类加载器、系统类加载器、顾客自定义类加载器。其中,系统类加载器先加载。 2. 堆和栈的区别 栈存储基本数据类型和对象的引用,堆存储对象和数组。 二、String、...

    java api最新7.0

    java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。 java.util.concurrent 在并发编程中很常用的实用工具类。...

    JavaAPI1.6中文chm文档 part1

    java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。 java.util.concurrent 在并发编程中很常用的实用工具类...

Global site tag (gtag.js) - Google Analytics