JVM启动时标明的启动类是什么?有具体的例子吗?

问题描述

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

类的初始化

类什么时候才被初始化:

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

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

3)调用类的静态方法

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

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

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

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

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

阅读 4.8k
1 个回答

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

java com.example.Abc

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题