为什么Java核心技术里运行一个没有main方法的程序在cmd里javac编译后 java运行不成功,而书里和说可以,百度的其他猿友有说成功和不成功的(结果说是应该会先打印再报错)
public class Hello{
static {
System.out.println("*******************************88irklweqjkljlsdfnl");
}
}
为什么Java核心技术里运行一个没有main方法的程序在cmd里javac编译后 java运行不成功,而书里和说可以,百度的其他猿友有说成功和不成功的(结果说是应该会先打印再报错)
public class Hello{
static {
System.out.println("*******************************88irklweqjkljlsdfnl");
}
}
首先要搞清楚两点你就不难理解了:
1,main是Java运行的必备,意思是只有Java文件的时候想运行必须有main.
2 , static{}静态语句块,会在运行时优先加载,所以它不需要main方法处理。也就是说即使是一个空的main也会执行static{}里的内容!请看下图: