java 基础 --- static 本质
今天遇到了 Static ,想深入了解一下 Static 的具体作用。
一, 静态成员变量和静态方法
Static 是一个用于修饰成员变量和方法的,被其修饰的成员变量/方法被称作静态成员变量/静态成员方法 ,也叫做类变量。既然是被这个关键字修饰,那么注定静态成员变量/方法与普通的成员变量/方法是有区别的。
静态与非静态的区别:
1.static 修饰的成员变量和方法,从属于类。普通变量和方法,从属于对象的。
2.静态修饰的变量/方法的生命周期和类相同,在整个应用程序执行期间都有效。普通成员变量/方法只有在类创建对象后才开始存在的,对象被销毁,他也会被销毁。
3.静态变量/方法可以使用“类名.静态成员”的形式进行调用。非静态变量/方法必须用“对象.变量”来调用。
4.静态变量是全类共享的,普通变量是每个对象单独使用的。
5.在静态方法中不可以使用 this 关键字。
6.在静态方法中不可以直接调用非静态方法
7.在 java 中规定,不能将方法体内的局部变量声明为 static。
二,静态代码块
在类中,用 static 声明的成员变量为静态成员变量,也成为类变量。类变量的生命周期和类相同,在整个应用程序执行期间都有效。
构造方法用于对象的初始化,静态初始化块用于类的初始化操作。在静态初始化块中,不能直接访问非 static 成员。
静态初始化块:
静态初始化顺序:
1,上溯到 Object 类,限制性 Object 类的静态初始化块,在向下执行子类的静态初始化块,知道我们的类的静态初始化块为止。
2.构造方法执行顺序和上面顺序一样。
来源:CSDN
作者:夜行的猫夏熙
链接:https://blog.csdn.net/qq_36155035/article/details/104739201