首页 > 编程语言 > 详细

java_类加载器的简述

时间:2020-08-20 20:43:40      阅读:74      评论:0      收藏:0      [点我收藏+]

1.类加载器的作用

Java类加载器是Java运行时环境的一部分,负责动态加载Java类到 Java虚拟机的内存空间中。

类通常是按需加载,即第一次使用该类时才加载。

一个应用程序总是由多个类组成,Java程序启动时并不是一次把所有的类全部加载后再运行。

它总是先把保证程序运行的基础类一次性加载到jvm中,由于有了类加载器,所以Java运行时系统不需要知道文件与文件系统,其它类等到jvm用到的时候再加载,这样的好处是节省了内存。

因为java最早就是为嵌入式系统而设计的,内存宝贵,这是一种可以理解的机制,而用到时再加载这也是java动态性的一种体现。

 

 

2.类加载器的使用

那么类加载器需要这么使用呢:

class Base{
static int a = 1;
static {
System.out.println("init Base!");
}
}
class Sub extends Base {
static int b = 2;
static {
System.out.println("init Sub!");
}
}
public class zuoye2 {
static {
System.out.println("init zuoye2!");
}
/**
* @param args
*/
public static void main(String[] args) {
//调用base类的变量a
System.out.println("a:"+Base.a);
//调用sub类中的b
System.out.println("b:"+Sub.b);
System.out.println("a:"+Base.a);
System.out.println("b:"+Sub.b);
int[] array1 = new int[3];
System.out.println(array1.getClass());
System.out.println(int[].class);
int[] array2 = new int[3];
System.out.println(array2.getClass());
//比较两个类的区别
System.out.println(array2.getClass()==array1.getClass());
int[][] array3 = new int[2][3];
//比较两个类的区别
System.out.println(array3.getClass()==int[][].class);

}

}
运行结果:

技术分享图片

 

 





当程序运行时会先加载静态块里的代码,如何再执行主程序。当前没用到的类并不会去加载静态块里面的代码。

 



java_类加载器的简述

原文:https://www.cnblogs.com/dxgld/p/13537312.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!