java核心技术没有main方法的程序

为什么Java核心技术里运行一个没有main方法的程序在cmd里javac编译后 java运行不成功,而书里和说可以,百度的其他猿友有说成功和不成功的(结果说是应该会先打印再报错)
图片说明

public class Hello{
static {
System.out.println("*******************************88irklweqjkljlsdfnl");

    }   

}

首先要搞清楚两点你就不难理解了:
1,main是Java运行的必备,意思是只有Java文件的时候想运行必须有main.
2 , static{}静态语句块,会在运行时优先加载,所以它不需要main方法处理。也就是说即使是一个空的main也会执行static{}里的内容!请看下图:
图片说明

在Java中,main()方法是Java应用程序的入口方法,也就是说,程序在运行的时候,第一个执行的方法就是main()方法不同的java文件可以有多个main,
因为你不同的java文件中可以有Main方法的存在。
IDE的不同决定了先运行那个main方法。但是它只执行一个main方法
而不会执行多个,也不能被别的方法调用。

Java大小写是有严格区别的,其实无论大小写均可,一般编译名字和源文件一样。有些是大家共同的习惯,方便认读。

java 程序入口是固定格式的 main 方法

main()方法是Java应用程序的入口,程序在运行的时候,第一个执行的方法就是main()方法。static()方法在类加载的时候执行。虽然在main的前面执行。 但是执行的时候还是会先找main()方法的。没有main()程序是执行不了的。 不信,你可以在eclipse,直接写个static{} 不写main().

尽信书则不如无书啊。