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