类变量、实例变量、局部变量

类变量

在方法外,被static修饰

初始化后不可改变

有默认值

类变量只有一份,与对象个数无关

多用于被声明为常量(static final ),此时使用大写命名

JDK 8静态变量和常量池从方法区迁移到堆中

 

实例变量

声明在类中,方法或语句块外

可以被访问修饰符修饰

当对象被实例化后,每个实例变量就被确定

有默认值

随对象创建和销毁

实例变量存储在堆中

 

局部变量

方法内或语句块内

在方法被执行的时候创建,执行完毕后变量被销毁

访问修饰符不能修饰局部变量

没有默认值,必须初始化后,才能使用

在栈上分配

 

 

这篇博客详细总结了

Java中final、static、static final区别:

https://blog.csdn.net/qq1623267754/article/details/36190715

 

这篇博客详细总结了

JDK 8之前的各种变量之间的区别:

https://blog.csdn.net/woainike/article/details/6413984

博客有点老,JDK 8就没有方法区了,不过总结的很清晰,可参考

 

posted @ 2020-12-26 09:42  codercql  阅读(101)  评论(0编辑  收藏  举报