黑马程序员技术交流社区

标题: main方法为什么能被jvm直接调用? [打印本页]

作者: 善毅    时间: 2016-3-8 23:30
标题: main方法为什么能被jvm直接调用?
main方法为什么能被jvm直接调用?而不用创建对象来调用啊?

作者: 旅人    时间: 2016-3-8 23:30
jvm先装载类,再链接类,再初始化类(以代码的文本顺序执行类变量初始化器、类静态初始化方法或接口的属性(field)初始化器),完成类的初始化后,才执行类的main方法。在链接过程中,可以静态链接(解析),也可以动态链接(解析),下面的图例说明的是动态链接。
作者: 善毅    时间: 2016-3-8 23:32
是因为有static关键字修饰的缘故
作者: Angus丶SY    时间: 2016-3-8 23:37
因为有static关键字修饰的缘故
作者: LZBJVJY    时间: 2016-3-8 23:55
main 在java中为一个修饰符,并非关键字.在程序开发中被定义为一种程序可识别的入口,这样JVM就会容易去识别;  是一种人为的约定俗成,即为一种规定,大家都去遵守而已!
作者: 善毅    时间: 2016-3-9 12:30
问题解决了谢谢大家
作者: saver    时间: 2016-3-9 12:36
jvm是先装载类,再链接类,再初始化类,完成类的初始化后,才执行类的main方法,不需要创建对象来调用的
作者: 善毅    时间: 2016-3-9 21:06
LZBJVJY 发表于 2016-3-8 23:55
main 在java中为一个修饰符,并非关键字.在程序开发中被定义为一种程序可识别的入口,这样JVM就会容易去识别; ...

嗯嗯,非常感谢
作者: yunfeng482    时间: 2016-3-11 08:19
main方法是static,加载类之后就可以用此方法了。而且jvm记录了main方法,所以会默认运行此方法。{:2_34:}
作者: tangshenshen    时间: 2016-3-11 09:11
膜拜一下~~~~~~~~~·
作者: 就是我    时间: 2016-3-12 17:02
jvm执行一段程序(除去加载类之类的操作),真正执行总要有一个入口的,或者说通过操作系统进入程序都会有main函数,
应该是实现由协定什么的
作者: 暴风城管    时间: 2016-3-12 23:46
Main就是个门牌号,当jvm看到了,他就知道他到家了,只有这个门牌号是对的
作者: 却又像风    时间: 2016-3-20 21:58
我也想过这个问题,但是好像是因为main方法里面有static,可以直接调用,创建对象那是用来调用别的类中的方法
作者: skxy2016    时间: 2016-3-23 13:50
要真正弄清楚这个原理,估计要先了解JVM等底层的东西了。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2