黑马程序员技术交流社区

标题: 传说这样的代码没有main()可以运行,我试了,不行,是某个版本修复了么? [打印本页]

作者: Diors    时间: 2015-7-2 22:07
标题: 传说这样的代码没有main()可以运行,我试了,不行,是某个版本修复了么?
  1. public class NoMain {
  2.         static {
  3.                 System.out.println("This is a static block test");
  4.                 System.exit(0);
  5.         }
  6. }
复制代码

作者: sophitia    时间: 2015-7-2 22:39
这个是静态代码块,它会先于对象的产生之前产生,但如果你连主函数都没有,JVM又怎么知道该从哪里开始?
作者: luorenyu    时间: 2015-7-2 22:44
这是什么??
作者: Diors    时间: 2015-7-2 23:17
sophitia 发表于 2015-7-2 22:39
这个是静态代码块,它会先于对象的产生之前产生,但如果你连主函数都没有,JVM又怎么知道该从哪里开始? ...

正因为是先于对象产生,而且在所有静态方法运行之前运行,所以才可能没有main()运行的,因为main()也是静态方法,从运行优先级上,晚于静态代码块
作者: Diors    时间: 2015-7-2 23:19
luorenyu 发表于 2015-7-2 22:44
这是什么??

静态代码块,先于对象运行,先于其他静态方法运行




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