为什么在定义一个类的时候,静态的变量,比实例变量节省内存空间

降降降 2020-07-17 01:03:20
为什么说在同一个类型有相同的属性,把这个属性定义为静态的会比非静态的变量更节省空间?
...全文
854 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
陆海潘江小C 2020-07-17
  • 打赏
  • 举报
回复
对的,类中定义静态变量或者方法,是类所有的,相当于共享的,而非静态的需要创建类的对象时候(实例化),属于对象自身的。所以会有你的这种说法。另外,访问静态变量或方法可以通过类名或者对象,建议用类名访问更好。
sunyiz 2020-07-17
  • 打赏
  • 举报
回复
引用 2 楼 降降降 的回复:
可以说实例变量每个对象都有一个,静态变量的是大家共用一个内存吗?


嗯,
静态属性,是属于“类”的属性
非静态属性,是属于“对象”或者说“实例”的属性

但是静态属性也不可滥用
毕竟对象的属性占用的内存,在对象被回收后,就收回了
而类的属性在被加载之后,将始终占据在内存中
降降降 2020-07-17
  • 打赏
  • 举报
回复
可以说实例变量每个对象都有一个,静态变量的是大家共用一个内存吗?
烟花散尽13141 2020-07-17
  • 打赏
  • 举报
回复
static表示静态,也可以理解成全局的意思。 通过new出来的实例是new一次就开辟一次内存空间。 而static是程序运行期间开启空间。生命周期是整个项目。而且只会创建一次。 在JVM中他也是存在【方法区】中的。 结论: 在程序中static始终只有一份。是所有类的实例共享。而非静态变量是挂载在实例上的。一个实例就独有一份非静态属性 关注我,不定时更新java学习

62,635

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧