java里面main函数为什么要用static修饰

这学期刚开java,因为之前只写过C++和Python没接触过java,有些写法挺不习惯的,今天写完一个程序,run的时候发现提示the selection can't be launched.......查了网上一些资料,虽然不知道具体是不是我以为的这个原因,我main函数没有写static(C++和Python都没这玩意儿),我想我这里应该是这个原因。如果不是这个原因,欢迎指正。

那么我那时候就在想,为什么我不加static就这样了,于是去查了查static的作用:


static 是静态的意思,这个我们在学C和C++里面就学过。

 0.static 修饰的域,我们叫静态域,它是归类所有的,被所有对象所共享,只有一个
 1.static修饰的区块,域只会初始化一次
 2.static修饰的域或方法,可以直接通过类的名字加上.进行调用

 3.static修饰的方法内不能直接使用非静态成员

static这个字告诉编译器,这个main函数是静态的,储存在静态存储区,在定义以后它就存在了,缺少它的话,编译并不会出错,而是在运行的时候报错,因为这个时候main这个类并没有实例化,自然main方法就不能用,加上static之后,这个方法(main)就变成了静态的,不需要实例化就能用,我记得刚开始学C语言的时候,我们老师说main是一个程序的入口,当时怎么想都没想明白,现在看这个例子,就可以想得通为什么要加static,main作为入口,不可能先去实例化一个对象去调用它,所以他必须可以直接调用。。

原文地址:https://www.cnblogs.com/Yintianhao/p/9157414.html