谈谈主函数main
来源:互联网 发布:解放军报网络投稿方式 编辑:程序博客网 时间:2024/05/22 00:43
我们来看一下主函数
public class HelloWorld{ public static void main(String[] args){ System.out.println("Hello World"); }}
main方法是一个特殊的规范,和JVM的运行原理有关
(1)main
JVM启动会找main方法,并且检查main函数所在类是否被java虚拟机装载。如果没有装载,那么就装载该类,并且装载所有相关的其他类。
因此程序在运行的时候,第一个执行的方法就是main()方法。
(2)static
通常情况下, 如果要运行一个类的方法,必须首先实例化出来这个类的一个对象,然后通过"对象名.方法名()"的方式来运行方法,但是因为main是程序的入口,这时候还没有实例化对象,因此将main方法声明为static的,这样这个方法就可以直接通过“类名.方法名()”的方式来调用。
(3)args
作用是从命令行取得输入参数,这样在程序中可以调用。
我们修改一下main方法
1
2
3
4
5
6
7
8
public
class
HelloWorld{
public
static
void
main(String[] args){
System.out.println(
"args[]"
);
for
(
int
i=
0
;i<args.length;i++){
System.out.println(args[i]);
}
}
}
执行方法和运行结果
传递给main一个包含字符串的数组args
JVM运行main的流程
①JVM开始试图执行类HelloWorld的main方法,
②JVM发现该类并没有被装载,也就是说JVM当前不包含该类的二进制代表,于是JVM使用ClassLoader试图寻找这样的二进制代表。
③如果这个进程失败,则抛出一个异常。
④类被装载后同时在main方法被调用之前,必须对类HelloWorld与其它类型进行链接然后初始化。
⑤链接包含三个阶段:检验,准备和解析。检验检查被装载的主类的符号和语义,准备则创建类或接口的静态域以及把这些域初始化为标准的默认值,解析负责检查主类对其它类或接口的符号引用,在这一步它是可选的。
⑥类的初始化是对类中声明的静态初始化函数和静态域的初始化构造方法的执行。
⑦一个类在初始化之前它的父类必须被初始化。整个过程如下:
阅读全文
0 0
- 谈谈主函数main
- 谈谈主函数main
- 谈谈Java的主函数main
- java main 主函数
- main主函数
- main主函数
- 主函数main()
- main 主函数详解
- 主函数(main.c)
- main主函数返回值
- 主函数main的参数
- Java的main主函数
- 主函数main里带参数
- 003.main 主函数文件
- 003.main 主函数文件
- Java主函数(main)
- main主函数的参数
- JAVA主函数(main)
- HDOJ多校 6034- Balala Power!
- ubuntu下安装sublime text 3
- 维基解密揭秘CIA五种恶意软件用法
- jQuery的Ajax---第二十七天
- 2017多校训练第一场
- 谈谈主函数main
- 自考之第一遍学习效果总结
- SpringMVC札集(02)——SpringMVC入门完整详细示例(下)
- Unity3d学习blog
- gocron
- git的使用和总结
- 竞赛入门经典 3-4竖式
- 监控利器 --- Zabbix的常规监控配置
- vpn