Java 全局变量:static 修饰符的影响与实例变量区别
在 Java 中,全局变量加上 'static' 修饰符表示该变量是静态变量,不加 'static' 修饰符表示该变量是实例变量。
区别如下:
-
静态变量是属于整个类的,只会在内存中存在一份副本,被该类的所有实例共享;实例变量每创建一个对象,就会在内存中存在一份副本,被该实例独享。
-
静态变量在类加载时就已经初始化,可以通过类名直接访问;实例变量需要通过实例对象来访问。
-
静态变量可以在没有创建对象的情况下被访问和修改;实例变量需要通过创建对象后才能访问和修改。
如果该类中有方法对该对象做修改了,区别如下:
-
如果方法中修改的是静态变量,那么无论是通过类名还是实例对象访问该变量,修改结果都是一样的。因为静态变量是属于整个类的。
-
如果方法中修改的是实例变量,那么通过类名访问实例变量是无法修改的,需要通过创建对象来访问和修改。因为实例变量是属于每个实例对象的,不同实例对象之间的实例变量是互不影响的。
原文地址: https://www.cveoy.top/t/topic/p04Q 著作权归作者所有。请勿转载和采集!