Java Static静态变量

430 阅读1分钟

static修饰成员变量

image.png

类中的静态变量被类的所有的对象共享,例如:student类中的变量teacher是静态变量,在经过s1对象的赋值之后,s2对象的teacher也是同样的字符。

image.png

image.png

image.png

如果教师的姓名不设置为静态变量的话,在s1给教师的赋值之后,s2并未给教师复制,显示为null. 此外,对于类中的静态变量,又多了一种调用方法,就是可以直接使用类对变量进行调用赋值。例如 Student.teacherName="zhangsan";赋值后,该类的所有的对象都使用这个教师的名字。

image.png

静态变量在内存中的

image.png

main中student类的字节码文件加载到方法区,并在内存中开辟一段单独存放静态变量的空间,为静态区,在jdk8之前,静态区在方法区中,在jdk8之后,静态区移动到了堆空间中。静态区中存储着所有的静态变量,默认是null。静态变量是优于对象出现的。

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png