类加载机制的学习1______类加载器

在学习类加载机制之前,我们先了解一下类加载器,因为类加载器是类加载机制的前提。类加载器的主要任务就是:根据一个类的全限定名,将该类的字节码文件加载进JVM中,然后转换为一个对应类的Java.lang.Class对象实例。程序员也可以自定义类加载器,一般的将派生于抽象类ClassLoader的类加载器都划分为自定义类加载器。

在程序中我们最常见的类加载器时钟只有三个:

  • Bootstrap ClassLoader
  • ExtClassLoader;
  • AppClassLoader;(加载classpath路径下的所有类,自己编写的类)

1.Bootstrap ClassLoader:

    Bootstrap ClassLoader:由C++语言编写,嵌套在JVM内部。

2.ExtClassLoader,AppClassLoader:

    ExtClassLoader,APPClassLoader派生于ClassLoader,用Java语言编写。

抽象类ClassLoader:

原文地址:https://www.cnblogs.com/xbfchder/p/11410320.html

时间: 2024-08-10 04:54:39

类加载机制的学习1______类加载器的相关文章

虚拟机类加载机制(2)——类加载器

<深入理解Java虚拟机>一书中将类的加载过程放到了类加载器前面一节,但在这里我想先讲“类加载器”.在上一篇类加载时机中我们用大量篇幅来讲解了类加载过程中的5个步骤的最后一步——初始化.在这一节中,我们实际是在讲解类加载过程5个步骤的第一步——加载. 我们再次回顾类加载过程的5个步骤: 类加载过程的“加载”步骤是通过类加载器(ClassLoader)来实现的.那么加载阶段做什么工作呢?“通过一个类的全限定名来获取描述此类的二进制字节流.”首先我们需要了解来自同一个Class文件的两个类是否一定

虚拟机类加载机制(3)——线程上下文类加载器

之所以将线程上下文类加载器(Thread Context ClassLoader)单独拿出来写,确实是因为它涉及的东西比较多,既然带有线程两个字,一定也是非常重要的一个东西. 我们首先来回顾一下类加载器的双亲委派模型. 在上一章<虚拟机类加载机制(2)——类加载器>中我们解释了何为类加载器的“双亲委派模型”,知道了双亲委派模型给我们带了一个好处就是Java类随着它的类一起具备了一种带有优先级的层次关系.简单的例子就是Object类在程序的各种类加载环境中都会由启动类加载器来加载,换言之,它无论

漫谈JVM之类加载机制(篇一)

前言 最近在看一本书,发现代码里用到了Thread.currentThread().getContextClassLoader(),为什么类加载器还与线程有关系呢,为什么不直接使用ClassLoader.getSystemClassLoader()呢?带着这些疑问又把JVM类加载机制从头到尾学习了一遍. 篇一 类加载时机 我们编写的代码存储在java文件中,java源代码通过编译生成Java虚拟机可识别的字节码,存储在Class文件中.运行java程序时需要将Class文件中的信息加载到Java

Java魔法堂:类加载机制入门

一.前言 当在CMD/SHELL中输入 $ java Main<CR><LF> 后,Main程序就开始运行了,但在运行之前总得先把Main.class及其所依赖的类加载到JVM中吧!本篇将记录这些日子对类加载机制的学习心得,以便日后查阅.若有纰漏请大家指正,谢谢! 以下内容均基于JDK7和HotSpot VM. 二.执行java的那刻   大家都知道通过java命令来启动JVM和运行应用程序,但实际的流程又是如何的呢? 1. 首先根据java后的运行模式配置项或<JAVA_H

java中类加载机制

在java中的每一个类都会对应一个Class对象,我们通常把这个Class对象称之为字节码对象,那么这个字节码对象是由谁来产生的呢?java中的类是由谁来加载进内存的呢?接下来我介绍的就是负责将java中的字节码文件加载到内存,创建Class对象的类ClassLoader,也就是java中的类加载器. 类加载器一般由系统来提供,不需要我们自己实现,但是通过我们自定义的类加载器可以更加灵活的加载class文件.在java中有三个默认的类加载器分别是Bootstrap ClassLoader(启动类

热修复之类加载机制总结

扩展:了解JVM中的类加载机制 及双亲委托模式,之后你会发现Android的ClassLoader与Java中的不同之处,因着前者加载的是dex文件,并非是class字节码文件,再去学习dex相关概念知识, Android类加载介绍?Android中的ClassLoader类加载机制主要用来加载dex文件,系统提供了PathClassLoader.DexClassLoader两个API可供选择.ClassLoader种类如下:BootClassLoader,BaseDexClassLoader:

JAVA 初识类加载机制 第13节

JAVA 初识类加载机制 第13节 从这章开始,我们就进入虚拟机类加载机制的学习了.那么什么是类加载呢?当我们写完一个Java类的时候,并不是直接就可以运行的,它还要编译成.class文件,再由虚拟机解释给当前的操作系统去执行.这些过程都是我们看不见的,我们能看见的也就是一个.class文件.既然虚拟机要解释这些.class文件给当前的操作系统听,那么他怎么获得这些.class文件呢?虚拟机获得这些.class文件的过程就是类加载了. 所以,总结来说就是:虚拟机将.class文件从磁盘或者其他地

七、JVM类加载机制

根据<深入理解java虚拟机>这本书总结 当我们写完代码,编辑成class文件,然后启动运行的时候,虚拟机会将class文件加载到内存(并不一定是本地的class文件,也可以从网络获取或者通过别的方式),并且经过对class文件中的数据进行校验.解析.初始化等过程,将class文件转化为虚拟机可以直接使用的java类型,整个这个过程可以叫做-类加载机制. 类加载的整个过程分为以下几部分: 1加载-2校验-3准备-4解析-5初始化-6使用-7卸载 个人觉得12345,五个部分就够了,其中234也

ClassLoader类加载机制&amp;&amp;JVM内存管理

一.ClassLoader类加载机制 在java中类加载是遵循委派双亲加载的:通过调用loadClass方法逐级往上传递委派加载请求,当找不到父ClassLoader时调用其findClass方法尝试进行查找和加载,如果当前ClassLo找不所需的Class,则由其孩子尝试进行查找和加载,如果当前ClassLoader找了所需的Class则将该Class按请求路径逐级返回孩子.其关系图如下所示: ClassLoader.loadClass(...) 是ClassLoader的入口点.当一个类没有