java 基础 --- static 本质

坚强是说给别人听的谎言 提交于 2020-03-08 20:41:20

                                                                        java 基础 --- static 本质

今天遇到了 Static ,想深入了解一下 Static 的具体作用。

一, 静态成员变量和静态方法

Static 是一个用于修饰成员变量和方法的,被其修饰的成员变量/方法被称作静态成员变量/静态成员方法 ,也叫做类变量。既然是被这个关键字修饰,那么注定静态成员变量/方法与普通的成员变量/方法是有区别的。

 

静态与非静态的区别:

1.static 修饰的成员变量和方法,从属于类。普通变量和方法,从属于对象的。

2.静态修饰的变量/方法的生命周期和类相同,在整个应用程序执行期间都有效。普通成员变量/方法只有在类创建对象后才开始存在的,对象被销毁,他也会被销毁。

3.静态变量/方法可以使用“类名.静态成员”的形式进行调用。非静态变量/方法必须用“对象.变量”来调用。

 

 

4.静态变量是全类共享的,普通变量是每个对象单独使用的。

5.在静态方法中不可以使用 this 关键字。

6.在静态方法中不可以直接调用非静态方法

7.在 java 中规定,不能将方法体内的局部变量声明为 static。

 

 

二,静态代码块

在类中,用 static 声明的成员变量为静态成员变量,也成为类变量。类变量的生命周期和类相同,在整个应用程序执行期间都有效。

构造方法用于对象的初始化,静态初始化块用于类的初始化操作。在静态初始化块中,不能直接访问非 static 成员。

静态初始化块:

静态初始化顺序:

1,上溯到 Object 类,限制性 Object 类的静态初始化块,在向下执行子类的静态初始化块,知道我们的类的静态初始化块为止。

2.构造方法执行顺序和上面顺序一样。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!