java中的main函数为什么是静态的

如题所述

非静态成员函数在执行前必须先构造并实例化该函数所在的类。
如果允许非静态的main,那么main函数所在的类必须先进行实例化,
那么就需要再写个函数去实例化main所在的类,再调用main,这个实例化代码又写在哪呢?如果它也是非静态的,岂不是又要写个函数去实例化它所在的类嘛?

因此,JAVA语言就规定了main必须是静态的。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-03-04
main函数其实也是所在类的一个方法,就比如一个类是test,那么该类的main其实就是test.main(String[] args),众所周知如果一个方法不是静态的,则要先实例化该类,比如要这样 A a=new A();
然后才能调用 a.main();

而这对于运行一个程序的主函数来说是不现实的,所以比如把main函数定义为static,使a.main()可以直接被调用。

因此,java规定了main函数必须是静态的本回答被网友采纳
第2个回答  2013-03-04
JAVA语言标准规定
第3个回答  2013-03-04
入口方法如果是非静态的,你如何调用?

java main 为什么 static
static静态的,也就是程序运行时就要没加载的,main是一个程序的入口,所以要提前加载好,要不谁来调用它啊?程序就没法运行了。

JAVA里面的main函数为什么要定义为static的?
main函数其实也是所在类的一个方法,就比如一个类是test,那么该类的main其实就是test.main(String[] args),众所周知如果一个方法不是静态的,则要先实例化该类,比如要这样 test t=new test();然后才能调用 test.main();而这对于运行一个程序的主函数来说是不现实的,所以比如把main函数定义为...

Main函数为什么是静态的
因此,JAVA语言就规定了main必须是静态的。

java中为什么要把main方法定义为一个static方法
原因:静态变量和静态方法在类被加载的时候就分配了内存空间,当非静态的方法调用他们的时候,他们已经有了内存空间,当然是可以调用的咯!(4)可以用类的对象去调用静态的方法。我们知道,在C\/C++当中,这个main方法并不是属于某一个类的,它是一个全局的方法,所以当我们执行的时候,c++编译器很容易...

为什么main方法是public static void
main是java程序执行的入口,原则上他不属于任何类,但是由于java是一门面向对象的语言,在java中,万事万物皆为对象,这也就导致了main函数需要依赖于类而存在。因此他必须是类中的函数,但是肯定不能为成员函数(成员函数为类的一个特定的动作),因此只能static静态函数。另外,他需要具有外部访问的特征...

java中静态函数的意义
1、在java里被声明为静态的。jvm会把这个属性或者是方法的内存地址开辟在静态常量池中。2、它不能通过对象名来访问,而是通过类名来访问。而且在static声明的类里面。3、main函数是一个程序的入口jvm只会找你的main函数。jvm在调用main函数的时候没有newmain函数,所以java里面的main函数限制了,一定要...

请问JAVA的main函数前加的static和public是什么意思?代表了什么?不加呢...
也就是说main函数中的代码是存储在静态存储区的,即当定义了类以后这段代码就已经存在了。如果main()方法没有使用static修饰符,那么编译不会出错,但是如果你试图执行该程序将会报错,提示main()方法不存在。因为包含main()的类并没有实例化(即没有这个类的对象),所以其main()方法也不会存。而...

为什么Java中的main方法必须是public static void的?
也就是说Java的main函数不是通过exit code来判断程序是否正常执行。所以,main方法的返回值就被设定为void。面试官:再问一下,为什么 main 方法的入参是字符串数组(String[])?大彬:Java应用程序是可以通过命令行接受参数传入的,从命令行传递的参数可以在java程序中接收,并且可以用作输入。因为命令...

java中为什么main函数可以嵌套进类中,根据什么原理?这样写不就成了类...
首先回答你 第一个问题 main本来就是一个方法 第二 至于你说的循环调用 。那个是不成立的 因为main方法 是static 修饰的 static关键字修饰的方法 不用new 一个instance出来 就能调用。换句话说 和其他普通方法 存储在内存的方式 是不一样的

java中main方法中的static函数不管是不是在最后,都会最先执行吗?_百度...
main之所以为static的,在程序加载的时候就会分配内存,但是如果一个程序中还有其他的static方法,只能在static修饰的方法中调用。对于static代码段,也是程序执行时开始加载。我在涉及多线程应用遇到过这个问题,例如:public class Test { static { initial(); \/\/ 调用静态方法initial()} private static ...

相似回答