欢迎来到杳无音讯的个人站|

杳无音讯

园龄:2年11个月粉丝:9关注:9

main方法前为什么加static

       在刚刚开始学习Java的时候,我们新建一个Java文件,实现输出helloworld;在其中的main()方法中,有一个static修饰符,这个符号的作用,一开始的时候我们并不清楚,经过了一个多月的大量的Java的联系,我也没有在意。今天我在CNDS的论坛上查阅了一些资料,也翻阅了一些教材对static也有了更多的了解。

       在学习java之前我也有过对c语言和c++的接触,这二者中也有static这个关键字的应用。在c语言中,首先,如果在一个函数中声明一个变量为静态变量,系统会给它分配一个内存,用于存放它,这个内存不会因为退出函数而被释放,由所有该函数的调用处共同维护,是与程序“共存亡”的,我们在学习的时候是与自动变量(auto)对比着学的;其次,在一模块内,一个静态的变量,只能被模块内部的函数所访问,不能被模块以外的变量所访问;最后,在一个模块内,如果一个函数被声明为静态的,它只能由这一模块的其它函数使用,使用和访问的范围被封装。在c++中,我们第一次学习static是在面向对象的时候,我们引入了“类属性”的概念,我们设计了一个类,定义了一个静态变量,在类外对这个变量进行初始化,声明的静态变量由所有对象共同维护;定义了一个静态的函数可以通过类名和函数名对它进行调用,静态函数只能访问类的静态变量成员。

      Static的中文意思为“静态的”,首先在Java中由static修饰的变量为静态变量,在类中写下一个静态变量后,在对象还没有被创建的时候,,如果加载了类,static修饰的变量就会生成,与对象的实例化无关,其次static修饰的方法其一般格式为public static 返回值 方法名(参数){};最后,static也可用于修饰方法块,被修饰的方法块会被优先执行且只能执行一次。

     说了这么多,那为什么再写主方法时要加static呢?这个我在哔哩哔哩中的一个小段子找到了答案,static为静态修饰符,被它修饰的方法为静态方法,而静态方法有一个特点,那就是它独立于该类的任何一个对象,它不依赖于类的对象的实例化,被类的所有示例所共享,并且可以被优先加载出来,之后,Java虚拟机可以根据类名在运行时的数据区方法找到main方法,它的调用过程经历了类加载,链接和初始化。如果不加会发生什么呢?不加static修饰符,main方法不会被实例化,java虚拟机不会对其进行加载,main()方法无法被调用。

本文作者:杳无音讯

本文链接:https://www.cnblogs.com/130-gzh/p/16702838.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   杳无音讯  阅读(208)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起