| 静态成员变量 | 成员变量 | 局部变量 | |
| 默认值 | 默认值相同 | 无默认值 | |
| 代码位置 | 代码位置相同(类中方法外) | 方法内 | |
| 内存位置 | 方法区 | 在堆中开辟空间 | 在栈中开辟空间 |
| 修饰符不同 |
static 数据类型 变量名 (不可修饰局部变量) | 数据类型 变量名; | |
| 内存份数 | 所有对象共享一份 | 创建一次对象就会开辟一次空间 | 存放在栈中调用局部变量所在的方法才会被开辟 |
| 调用方法 |
类名.属性名 (对象名.属性名 不推荐) | 对象名.属性名 | |
| 使用范围 | 在类中 不可放在方法中 | 在类中使用 | 在方法内有效 |
| 生命周期:(开始) | 随着类的加载开辟空间 | 成员变量创建对象才会开辟空间 | 调用方法 开辟空间 |
| 结束 | 类的卸载 | 当没有对象指向堆中的空间时由GC回收 | 方法执行完毕,弹栈 |
静态成员变量VS成员变量VS局部变量
最新推荐文章于 2025-11-26 09:38:06 发布
本文详细介绍了Java中的静态成员变量和实例成员变量的区别,包括它们的默认值、内存位置、生命周期以及调用方式。静态成员属于类级别,所有对象共享,而实例成员在每个对象创建时分配空间。此外,还探讨了两者的使用范围和内存管理,帮助理解何时使用静态和实例变量。
782

被折叠的 条评论
为什么被折叠?



