在JAVA中为什么要把一个main方法定义成一个静态方法?

来源:百度知道 编辑:UC知道 时间:2024/07/01 04:54:43
实例化是什么意思?

1。静态方法的特点: 直接调用类名+方法名,不需要实例化类对象。
如: Hello.P();
非静态方法则必须实例化一个对象出来,再通过对象调用该方法如: Hello hello=new Hello(参数1~n); hello.P();

2。程序被打包成.jar文件后(相当于.exe文件),给外界唯一的接口就是main方法。使用者双击.jar文件,其实就是让虚拟机执行main方法。

3。main方法不是提供给程序员的,而是提供给虚拟机和使用客户的。 一个软件你没法让客户知道你内部的详情,当然客户也就没办法知道怎么去实例化对象,更不知道实例化对象时需要输入什么参数了。所以只能采用静态方法。

我是这么理解的:
如果方法f()被类A定义成静态方法,那么f()方法对于类A只有一个入口,也就是由A创建的所有对象共享一个入口。
如果方法f()不是静态的,那么由类A创建的每一个对象都有独立的入口。
方法main()是作为程序的入口,没有必要每个对象有一个入口,只需一个类有一个入口就行了,所以就定义成了静态的.

静态的方法是不需要初始化实例的 直接就能调用的 main方法在这个 类里边
运行main的时候不需要 new这个类 然后再调用的 别的静态方法的调用也是不需要初始化实例的 只需要类名.方法就可以用了!

静态方法是随着类进入内存时就被加载到内存的 不用实例化(如new HelloWorld()),而main方法是整个应用程序的入口
所有,如果不声明为static其他方法又怎么能进入内存让CPU来运算呢?