java里为什么主函数前面要加static修饰

       先说一下static

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

       static关键字,告知编译器main函数是一个静态函数。也就是说main函数中的代码是存储在静态存储区的,静态方法在内存中的位置是固定的,即当定义了类以后这段代码就已经存在了。如果main()方法没有使用static修饰符,那么编译不会出错,但是如果你试图执行该程序将会报错,提示main()方法不存在。因为包含main()的类并没有实例化(即没有这个类的对象),所以其main()方法也不会存。而使用static修饰符则表示该方法是静态的,不需要实例化即可使用。

       main方法是一个程序的入口,如果写成非静态的,那么就必须实例化一个对象再来调用它,既然是入口这样肯定是不可以的;静态方法是属于类的,直接用类名就可以调用         

      static方法不需要创建对象 可以直接访问 这样main方法就不需要做特殊处理

     static方法在静态数据区中,这样就可以直接调用不需要每次调用都要重新生成。

     静态函数在调用时不用实例化

     静态,一上来就装入内存 
     main函数其实也是所在类的一个方法,就比如一个类是test,那么该类的main其实就是test.main(String[] args),众所周知如果一个方法不是静态的,则要先实例化该类,比如要这样 test t=new test(); 然后才能调用 test.main(); 
而这对于运行一个程序的主函数来说是不现实的,所以比如把main函数定义为static,使test.main()可以直接被调用。 
因为main就是这个类的主函数,入口,如果每次进这个入口的时候再去实例话然后再去调用这个入口方法,就很罗嗦 。

     注:以上很多事网上查来的,最精彩的解答是在csdn上,一个问题引发的深邃的回答,最后亚里士多德都出来了,有兴趣的围观吧http://bbs.csdn.net/topics/200084223

  • 19
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值