假设下面这种情况,test1中的do方法会被初始化吗?
public class test{
public static void main(string []args){
test1 t;
}
}
class test1{
int i;
static void do(){}
}
方法不存在什么初始化,只用成员变量需要初始化。
而且你test1 t;
t此时是指向null,没法调用do。需要先new。
方法不用初始化,对于static方法,直接通过 类名.xxxx调用
看错了,static方法可以调用,不需要初始化。而且不需要对象。
用 test1.do 调用,而不是用 t.do
创建类的实例
访问某个类或接口的静态变量,或者对该静态变量赋值
调用类的静态方法
反射(如Class.forName(“com.shengsiyuan.Test”))
初始化一个类的子类
Java虚拟机启动时被标明为启动类的类(Java Test).
出现以上6中情况,才会初始化,初始化的是什么呢?初始化的是静态成员变量或者执行静态代码块
只对这个类的引用做一个声明,不会初始化
对于static方法,只有在第一次类加载时被初始化,之后就不会了!