被static修饰的成员变量可以被修改吗

来源:互联网 发布:list转换成byte数组 编辑:程序博客网 时间:2024/05/30 05:00

被static修饰的变量、常量、方法被称作静态变量、静态常量以及静态方法。

那么被static修饰的成员变量可以被修改吗?可以。只要是变量就可以被修改。被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。只要这个类被搜索加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们。

按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或类变量;另一种是没有被static修饰的变量,叫实例变量。

两者的区别是:
 对于静态变量在内存中只有一个拷贝(节省内存),JVM只为静态分配一次内存,在加载类的过程中完成静态变量的内存分配,可用类名直接访问(方便),当然也可以通过对象来访问(但是这是不推荐的)。
 对于实例变量,没创建一个实例,就会为实例变量分配一次内存,实例变量可以在内存中有多个拷贝,互不影响(灵活)。

所以一般在需要实现以下两个功能时使用静态变量:
1.在对象之间共享值时
2.方便访问变量时

static final修饰的成员变量可理解为“全局常量”,常量的值才是不能更改的,才是不可修改的!

静态变量并不是说其就不能改变值,不能改变值的量叫常量。 其拥有的值是可变的 ,而且它会保持最新的值。说其静态,是因为它不会随着函数的调用和退出而发生变化。即上次调用的时候,如果我们给静态变量赋予某个值的话,下次函数调用时,这个值保持不变。




阅读全文
0 0