文档章节

类装载器

龙之天空
 龙之天空
发布于 2015/11/03 10:01
字数 518
阅读 8
收藏 0

1、java虚拟机使用每一个类的第一件事就是将该类的字节码装载进来,转载字节码的功能是由类装载器完成的,类装载器负责根据一个类的名称为定位和生成类的字节码数据后返回给java虚拟机
   最常见的装载器,是将.class中的内容,转换成java虚拟器的编码

2、类装载器本身也是一个java类,java虚拟机也允许开发人员编写自己的类装载器,以便通过其他各种特殊方式来产生类字节码

3、不管类装载器采用什么方式,只要能够在内存中制造出给java虚拟机调用的类字节码即可,所以,把类装载器描述为类字节码的制造器更容易让人理解

4、当一个类被加载后,java虚拟机将其编译为可执行代码存储在内存中,并将索引信息存储进一个HashTable中,其索引关键字为与之相对应的类名

5、java程序中的类本身也是一种事物,它也可以用一个java类描述,这个特殊的类名就叫class。类装载器装载某个类的字节码的过程,实际上就是在创建class类的一个实力对象,这class类的实例对象封装的内容正好是当前加载类的字节码数据

 类名.class System.class
 对象的.getClass()  New Date().getClass()
 Class.foName("类名")

java虚拟机中内嵌了一个称为Bootstrap的类装载器,它属于java虚拟机的内核,不用类装载器装载。bootStrap类装载器负责加载java核心包中的类(即rt.jar文件中的类),是所有类加载器的顶点,这些类的class.getClassLoader方法返回值为null,即表示是BootStrap累装载器

ExtClassLoader类加载器:jar
AppClassLoader类加载器:启动类


线程中的类加载器:Thread.setContextClassLoader()方法设置线程的上下文类装载器

© 著作权归作者所有

上一篇: 权限管理
龙之天空
粉丝 7
博文 79
码字总数 18140
作品 0
宁波
私信 提问
Java类装载体系中的隔离性

正 文 Java中类的查找与装载出现的问题总是会时不时出现在Java程序员面前,这并不是什么丢脸的事情,相信没有一个 Java程序员没遇到过ClassNotException,因此不要为被人瞅见自己也犯这样的错...

crazyinsomnia
2010/01/31
1K
0
Java基础知识——类装载器与反射机制

类装载器ClassLoader 类装载器就是寻找类的字节码文件,并构造出类在JVM内部表示的对象组件。 类装载器把一个类装入JVM中,要经过三步: 1.装载:查找和导入Class文件; 2.链接:执行校验、准...

札小白
2014/06/21
0
0
Android 装载器---概要

在Android3.0中引入了装载器的功能,这使它很容易在Activity或Fragment中使用异步的方式加载数据。装载器的特点如下: 1. 装载器对于每个Activity和Fagment都是有效的; 2. 装载器提供异步数...

长平狐
2012/10/16
43
0
android loader 详解

装载器从android3.0开始引进。它使得在activity或fragment中异步加载数据变得简单。装载器具有如下特性: 它们对每个Activity和Fragment都有效。 他们提供了异步加载数据的能力。 它们监视数...

等待流星
2014/03/13
89
0
深度分析Java的ClassLoader机制(源码级别)

写在前面:中的所有类,必须被装载到中才能运行,这个装载工作是由中的类装载器完成的,类装载器所做的工作实质是把类文件从硬盘读取到内存中,在加载类的时候,都是通过的方法来加载class的...

梁金晶
2016/09/28
20
0

没有更多内容

加载失败,请刷新页面

加载更多

Python 周刊第 418 期

新闻 PyCon US 2020 开始接受财务赞助! https://pycon.blogspot.com/2019/10/financial-aid-launches-for-pycon-us-2020.html2020年 Python 美国开发者大会,tips: 中国也有,可以赞助国内的...

iCodeBugs
13分钟前
3
0
ThreadLocal源码阅读

首先,从set方法入手, // ThreadLocalpublic void set(T value) { Thread t = Thread.currentThread(); ThreadLocalMap map = getMap(t);//这里可以看出,从Threa......

小海bug
22分钟前
3
0
成长之路 万事知行合一

思想决定行为,行为决定习惯,习惯决定性格,性格决定命运。 很多道理,不管是前辈给你指点说的也好,还是你自己看一些书籍学到的也好,如果不能够做到,就连那些不知道这个道理的人都不如。...

T型人才追梦者
25分钟前
3
0
uml图六种箭头的含义

在看一些技术博客的时候,经常会见到博客里画上很多uml图。因为经常会被这几种表达关系的箭头搞混,这里我就把常见的6种箭头表达的含义理一下。 泛化 概念:泛化是一种一般与特殊、一般与具体...

1只特立独行的猪
32分钟前
3
0
【在 Nervos CKB 上做开发】Nervos CKB 脚本编程简介[3]:自定义代币

原文作者:Xuejie 原文链接:https://xuejie.space/2019_09_06_introduction_to_ckb_script_programming_udt/ Nervos CKB 脚本编程简介[3]:自定义代币 CKB 的 Cell 模型和 VM 支持许多新的用...

NervosCommunity
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部