Java中一个类的信息编译之后是存放在字节码文件中的(.class),运行的时候,如果虚拟机用到了这个类,它就会通过ClassPath找到这个字节码的文件,通过一个输入流,把其中的内容读入到虚拟机的内存中,从而获得这个类的信息,称为类加载
类的加栽只会进行一次,第一次用到这个类的时候
静态初始代码块在类加载的时候运行
类加载的时机:能不加载就不加载
1. 第一次new对象的时候,加载
2. 第一次访问static成员的时候,加载
3. 声明引用的时候,不会加载类
4. 加载字类会先加载父类
5. 如果通过子类访问父类的静态成员,只加载父类
6. 如果访问的是类的公开的静态常量,那么如果编译器在编译的时候能确定这个常量的值的时候,那么就不会加载,反之,编译器不能确定值的时候,就加载
Code:
class A
{
static int i=20;
static final int j=50;
static double x=Math.random()*1000;
A()
{
System.out.println("A的构造函数");
}
{
System.out.println("class A的初始化块");
}
static{
System.out.println("classA被加载");
}
}
class B extends A
{
B()
{
System.out.println("B的构造函数");
}
static
{
System.out.println("class b 被加载");
}
{
System.out.println("class b的初始化块");
}
}
class TestClassLoader
{
public static void main(String[] args)
{
A a; //声明一个引用的时候不加载类
a=new B(); //new 一个对象的时候被加载,先加载父类,后再加载子类
System.out.println(A.i); //当使用静态的成员变量的时候被加载
System.out.println(B.i); //通过子类去访问父类的静态成员的 时候,只加载父类
System.out.println(A.h); //由于是可确定的值,所以不加载类
System.out.println(A.x); //由于编译的时候不确定具体的值,所以会加载类
}
}
分享到:
- 2008-05-06 10:41
- 浏览 1124
- 评论(0)
- 论坛回复 / 浏览 (0 / 1802)
- 查看更多
相关推荐
weblogic类加载过程简述weblogic类加载过程简述weblogic类加载过程简述weblogic类加载过程简述weblogic类加载过程简述weblogic类加载过程简述
JVM类加载过程
java类加载过程详解
springboot 类加载过程,源码分析
Java类加载流程(双亲委派)流程图.zip
Java虚拟机类加载顺序,Java虚拟机类加载顺序,Java虚拟机类加载顺序
如果这个类存在直接父类,并且这个类还没有初始化(**在一个类加载器中,类只能被初始化一次**),那就先初始化直接父类(不适用于接口)。 3. 加入类中存在的初始化语句(如static变量和static块),那就先执行...
这里可进一步细分为三个步骤:极客时间 | Java核心技术36讲验证(Verification),这是虚拟机安全的重要保障,JVM 需要核验字节信息是符合 Ja
T8.3_类加载过程 java 经典教程 经典教材
1.编写个向接的应程序,可能等到运时再指定其实现的类 2.户可以定义个类加载器,让程序在运时从络或其他地加载 1.加载:(重点) 1.通过“类全名”来获取定义此
该文件是JVM中关于类加载机制的知识整理的思维导图,包括类加载机制概述、类加载的生命周期、加载时机、加载过程、类加载、类的初始化和实例化等几个大方面进行了讲解,其中类加载中还对JVM三种预定义类加载器进行了...
主要介绍了JVM的类加载过程以及双亲委派模型详解,类加载器就是根据指定全限定名称将 class 文件加载到 JVM 内存,然后再转化为 class 对象。,需要的朋友可以参考下
02 类加载子系统 PPT 介绍 JVM 的类加载子系统, 包括类加载阶段和流程、加载器分类和类加载机制等。
1. 加载(Loading):classpath,jar包,网络,磁盘位置下的类的class以二进制字节流读进来,在内存 2. 验证(Verification)
Java虚拟机----类的加载过程.docx
什么是虚拟机类加载机制以及加载过程,以及类加载时机
主要介绍了Java中类加载过程全面解析,具有一定参考价值,需要的朋友可以了解下。
java的类加载机制,类加载顺序,类加载的体系结构,类加载过程,双亲委派模型及机制等相关内容。做架构师或者高级开发,类加载是必须要掌握的内容。
1 类加载过程图解 系统加载Class类型的文件主要是:加载->连接->初始化,其中连接分为:验证->准备->解析;其实,整个生命周期是7步,类从被加载到虚拟机内存中开始,到卸载出内存为止,分为:加载->验证->准备...