Java程序执行流程详解
1. Java虚拟机启动
Java虚拟机通过调用指定类或接口的 main
方法来启动执行,并向其传递一个字符串数组作为参数。在常见示例中,这个初始类通常被命名为 Test
。
1.1 启动流程示例
以在UNIX系统中执行命令 java Test reboot Bob Dot Enzo
为例,Java虚拟机会调用 Test
类的 main
方法,并传递包含 "reboot"
、 "Bob"
、 "Dot"
和 "Enzo"
四个字符串的数组作为参数。具体执行 Test
类的步骤如下:
1. 加载类 Test
:当首次尝试执行 Test
类的 main
方法时,若发现该类未被加载(即Java虚拟机中没有该类的二进制表示),则会使用类加载器尝试查找其二进制表示。若查找失败,将抛出错误。
2. 链接 Test
类 :加载 Test
类后,在调用 main
方法之前,需要对其进行初始化。而在初始化之前,必须先进行链接操作,链接包括验证、准备和(可选的)解析。
- 验证