这是一个自圆其说的约定。
面向对象中,”状态“是和对象实例绑定的,也就是说没有一个实例,就谈不上说它的状态,就好像一个人还不存在我们就没法给它取个名字也不能和它有交流一样。而 static (静态)则表示”没有状态“,因此在 JVM 刚启动时这个世界中还没有任何对象实例时我们就只能先用 static 方法来创建第一个对象实例,就把它理解成接待员,它引导我们创建各个对象实例并建立彼此之间的关系。然后我们开始有了我们的对象图,JVM 世界就有了一个
生态系统。
因此我们的 main 方法必须是 static,同时它是被外界调用的(不是我们的程序本身),因此它又必须是 public。
本回答被提问者和网友采纳