JAVA提高第七篇类加载器解析-创新互联

今天我们学习类加载器,关于类加载器其实和JVM有很大关系,在这里这篇文章只是简单的介绍下类加载器,后面学习到JVM的时候还会详细讲到类加载器,本文分为下面几个小节讲解:

成都创新互联公司是一家集网站建设,嫩江企业网站建设,嫩江品牌网站建设,网站定制,嫩江网站建设报价,网络营销,网络优化,嫩江网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

一、认识类加载器

1.什么是类加载器?

所谓的类加载器可以从其作用来理解,其功能就是将classpath目录下.class文件,加载到内存中来进行一些处理,处理完的结果就是一些字节码.那是谁把这些class类加载到内存中来的呢?就是类加载器。

2.JVM中默认的类加载器有哪些?

java虚拟机中可以安装多个类加载器,系统默认三个主要的类加载器,每个类加载器负责加载不同位置的类:BootStrap,ExtClassLoader,AppClassLoader

注意的是:

1.类加载器本身也是一个java类,因为类加载器本身也是一个java类,那么这个特殊的java类【类加载器】是有谁加载进来的呢?这显然要有第一个类加载器,这第一个类加载器不是一个java类,它是BootStrap。

2.BootStrap不是一个java类,不需要类加载器java加载,他是嵌套在java虚拟机内核里面的。java 虚拟机内核已启动的时候,他就已经在那里面了,他是用c++语言写的一段二进制代码。他可以去加载别的类,其中别的类就包含了类加载器【如上面提到的Ext  和 app】。

案例:

下面我们写个例子来获取ClassLoaderTest这个类的类加载器的名字,代码如下:

package study.javaenhance;

import java.util.ArrayList;

public class ClassLoaderTest
{
  public static void main(String[] args) throws Exception 
  {
    //获取类加载器,那么这个获取的是一个实例对象,我们知道类加载器也有很多种,那么因此也有其对应的类存在,因此可以获取到对应的字节码
    System.out.println(ClassLoaderTest.class.getClassLoader());
    //获取类加载的字节码,然后获取到类加载字节码的名字
    System.out.println(ClassLoaderTest.class.getClassLoader().getClass().getName());
    //下面我们看下获取非我们定义的类,比如System ArrayList 等常用类
    System.out.println(System.class.getClassLoader()); 
    System.out.println(ArrayList.class.getClassLoader()); 
    
    
  }

}


分享题目:JAVA提高第七篇类加载器解析-创新互联
分享链接:http://scjbc.cn/article/dcpdho.html

其他资讯