在java中,类加载就是将类的信息加载到内存中。
类是动态加载的,第一次使用的这个类的时候,才会加载,加载的时候会查看其父类是否加载,如果没有,则会加载其父类。
一个类的信息主要包括以下部分:
类变量(静态变量)
类初始化代码
类方法(静态方法)
实例变量
实例初始化代码
实例方法
父类信息引用
类初始化代码包括:
定义静态变量时的赋值语句
静态初始化代码块
实例初始化代码包括:
定义实例变量时的赋值语句
实例初始化代码块
构造方法
类加载过程包括:
分配内存保存类的信息
给类变量赋默认值
加载父类
设置父子关系
执行类初始化代码
1.类在初始化中,是先执行父类在执行子类的,不过父类执行时,子类的静态变量的值也是有的,只是是默认值。
2.创建对对象的过程:
分配内存,对所有实例变量赋默认值,执行实例初始化代码
3.动态绑定:
执行实例方法时,是从对象的实际对象类型开始寻找的,找不到的时候再查找父类的信息,直到找到为止。
4.静态绑定:
对变量的访问都是静态绑定,无论是类变量还是实例变量,实际对象类型是哪个,就是以哪个类型来执行,不会因为引用类型的改变而改变。