static的作用

1.隐藏:当同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性,但是加了static之后就只能本源文件才可见

2.static保持变量内容的持久。存储在静态数据区的变量会在程序刚开始运行时就完成初始化,也是唯一的一次初始化。共有两种变量存储在静态存储区:全局变量和static变量,只不过和全局变量比起来,static可以控制变量的可见范围

3.static是默认初始化为0。在静态数据区,内存中的所有的字节默认值都是0x00

4.static在类内声明static:

        函数体内static变量的作用范围就是该函数体,该变量的内存只被分配一次,因此其值在下次调用的时候仍然维持上一次的值

        在模块内的static全局变量可以被模块内所有函数访问,但是不能被模块外的其他函数访问

        在模块内的static函数只可被这一模块内的其他函数调用,这个函数的使用那范围被限制在申明它的模块内

        在类中的static成员变量属于这个类所有,对类的所有对象只有一份拷贝

        在类中的static成员函数属于这个类所有,这个函数不接收this指针,因而只能访问类的static成员变量

        static类成员函数不能访问非static的类成员,只能访问static修饰的类成员

        static成员函数不能被virtual修饰,static成员不属于任何对象或实例,所有加上static没有任何实际的意义。

你可能感兴趣的:(java,开发语言)