java classloader

作者:原创时间:2022-03-25
文档

java classloader是什么,让我们一起了解一下?

ClassLoader就是用来动态加载class文件到内存当中用的,通过Java的类加载机制来动态加载某个class文件到内存当中的,从而只有class文件被载入到了内存之后,才能被其它class所引用。

classloader(类加载器)的主要工作是什么?

就是把类文件加载到JVM中。

1、加载:定位要加载的类文件,并将其字节流装载到JVM中。

2、链接:给要加载的类分配最基本的内存结构保存其信息,比如属性,方法以及引用的类。

在该阶段,该类还处于不可用状态。

(1)验证:对加载的字节流进行验证,比如格式上的,安全方面的。

(2)内存分配:为该类准备内存空间来表示其属性,方法以及引用的类。

(3)解析:加载该类所引用的其它类,比如父类,实现的接口等。

3、初始化:对类变量进行赋值。

那么类加载器是如何实现的?

当JVM(Java虚拟机)启动时,会形成由三个类加载器组成的初始类加载器层次结构:

bootstrap classloader           
 extension classloader    
  system classloader

bootstrap classloader -引导(也称为原始)类加载器,它负责加载Java的核心类。在Sun的JVM中,在执行java的命令中使用-Xbootclasspath选项指定附加的类。这个加载器的是非常特殊的,它实际上不是 java.lang.ClassLoader的子类,而是由JVM自身实现的。大家可以通过执行以下代码来获得bootstrap classloader加载了那些核心类库:

URL[] urls=sun.misc.Launcher.getBootstrapClassPath().getURLs();
   for (int i = 0; i < urls.length; i++) {
     System.out.println(urls.toExternalform());
   }

以上就是小编今天的分享了,希望可以帮助到大家。





显示全文
java clob java clone() java collect java collections java color java combobox java comet 山楂干泡水最佳搭配 java commandline java comparable接口 java compiler java config java console java console.log 复活节的由来 java const java consumer接口 统一和康师傅是哪国的 怎么删掉word中的空白页 微信笔记在哪里编辑 java class.forname java class java cipher java charset java charsequence java charat java channel iPad怎么重启 java cglib 平板如何录屏 java ceiling java callback java calendar获取当前时间 苹果13怎么开机 java calculate java byte取值范围 java bytebuffer java bundle java build.gradle java bufferedoutputstream