下面这段代码大家已经熟到不能再熟了,可以说闭着眼睛都能敲出来......
public class HelloWorld{ public static void main(String[] args){ System.out.println("Hello,World!"); } }
有意思的例子
java项目没有main函数也能输出“HelloWorld”?
为了验证这个点,我敲下了以下代码:
public class HelloWorld{ static{ System.out.println("Hello,World!"); System.exit(0); } }
开心地打开了命令行
编译
编译通过!
运行
可是一运行,控制台报错了!!!
于是我连忙把我前几天买的宝贝疙瘩《Java核心技术卷一(中文第十一版)》拿了出来(PS:最新版真的很贵......)。
corejava11
哦!原来我的版本是jdk 8 ,这个问题在jdk 8中已经修复了,于是我将jdk版本调整到jdk 7
jdk 7 编译运行
可以看出,还是不行,于是我又将jdk版本换成jdk 6
jdk 6 编译运行
可以看出,这个没有main函数的类在控制台上打印出了“Hello,World!”。
因此,可以得出,在jdk 6以前,没有main函数java程序也能在控制台中打印“HelloWorld”,JVM对main函数的检查也没有那么严格。
其实《corejava》第九版是面对java 7 出版的,里面新录入了很多java 7的新特性,但这个例子显然在java 7中就已经被修复。因此,这些权威书籍也会有错误。所谓尽信书,不如无书便是这个道理。自己实践一下才能印象更深!
corejava9
技术在不断发展,我们开发人员只有不断向前学习,才能不被行业所淘汰。
总结