0

问题描述

最近在学习类加载相关的知识,在学习相关文章时看到了类何时被初始化的内容。

类的初始化

类什么时候才被初始化:

1)创建类的实例,也就是new一个对象

2)访问某个类或接口的静态变量,或者对该静态变量赋值

3)调用类的静态方法

4)反射(Class.forName("com.lyj.load"))

5)初始化一个类的子类(会首先初始化子类的父类)

6)JVM启动时标明的启动类,即文件名和类名相同的那个类 只有这6中情况才会导致类的类的初始化。

5个我都理解,就是最后一个这个不太明白?到底什么是JVM启动时标明的启动类,是main方法的那个类吗?

Google了半天也没找到相关结果,如果您有时间,希望得到您的指点,感激不尽。

5月25日提问
1 个回答
1

已采纳

不是有 main 方法的类, 可能多个类有 main 方法. 而是命令行参数的指定的类, 如你个com/example/Abc.java文件, 编译后生成 com/example/Abc.class, 这个类有main 方法, 执行时需要指定类名

java com.example.Abc

这里的 com.example.Abc 就是上面JVM启动时标明的启动类所指

撰写答案

推广链接