关于static关键字
static关键字
(1)static的特点:
a)static是一个修饰符,用于修饰成员。
b)static修饰的成员被所有的对象所共享。
c)static优先于对象存在,因为static的成员随着类的加载就已经存在了。
d)static修饰的成员多了一种调用的方式,直接可以通过类名调用。
e)static修饰的数据是共享的,对象中存储的是特有数据。
(2)成员变量和静态变量的区别:
a)两个变量的生命周期不同
成员变量随着对象的创建而存在,随着对象的被回收而释放。
静态变量随着类的加载而存在,随着类的消失而消失。
b)调用方式不同。
成员变量只能被对象调用。
静态变量可以被对象调用,还可以被类名调用。
c)别名不同
成员变量(实例变量)
静态变量(类变量)
d)数据存储位置不同。
成员变量数据存储到堆内存的对象中,所以也叫对象的特有数据。
静态变量数据存储在方法区(共享数据区)的静态区,所以也叫对象的共享数据。一个对象修该静态属性值后,会影响其他对象。
e)静态使用的注意事项:
静态方法只能访问静态成员。(非静态既可以访问静态,也可访问非静态)。
静态方法中不可以使用this或者super关键字。
注:main()为程序的主方法,该方法前添加static修饰,是与类相关的。Java解释器运行时将会寻找该方法,因为解释器调用该方法是,还没来得及创建当前类的对象,因此不能定义成与对象相关。这也是为什么主方法是静态的。调用静态方法会使得类被加载。
转载请注明原文地址: https://ju.6miu.com/read-34130.html