请问类变量存放在内存的哪里?

yhl5115 2007-10-26 08:57:09
在Thinking in Java 里提到有五个不同的地方(寄存器、堆栈、堆、常量存储、非RAM存储),类变量好像没有放在前边五个当中的任意一个啊
看到过说类变量在JVM中是放在方法区里的,这个方法区是一般的RAM啊,难道Thinking里说的有问题?
请教高手指点...
...全文
431 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
liluyemin 2007-10-26
  • 打赏
  • 举报
回复
个人认为放在栈里面的 只是他是一个指针变量 指向了堆中那个类的实例
lanseliuying 2007-10-26
  • 打赏
  • 举报
回复
在RAM里,我记得Think in Java中有段话:
“静态”是指在“固定的位置”(尽管也在RAM里)。静态存储里放程序运行时一直存在的数据。
汪老实 2007-10-26
  • 打赏
  • 举报
回复
嗯,应该是在ram里面。RAM里面应该有专门的静态存储区的
yhl5115 2007-10-26
  • 打赏
  • 举报
回复
谢谢大家的回答,whzresponse说得恨清晰
可在thinking里的非RAM是磁盘,就是持久化对象的那部分
我在想,这个静态数据就是在一般的RAM里吧,只是划出来专门存放这些东西的(当然还可以放其它的吧),这块RAM
就是JVM里的方法区,不知道我的理解对不

汪老实 2007-10-26
  • 打赏
  • 举报
回复
寄存器是内存中速度最快的,很有限,一般由JVM来按需要分配,我们是没有办法就操作他的内存

堆栈 一指针上移来分配内存,而且需要知道他的大小以及生命周期,所以分配的速度非常快,在
java中,所有的简单数据类型和引用都是存放在堆栈中的!

堆 这里分配内存不需要知道他的大小及生命周期这个好处,相对堆栈来说分配的速度要慢点,java中对象就储存在这里面,不包括常量和静态数据
常量存储 存储常量数据咯!
非RAM存储 应该是非RAM静态存储吧,就是存储静态数据的!
yhl5115 2007-10-26
  • 打赏
  • 举报
回复
二楼的可能没明白我的意思,我是说类变量就是类数据,也就是static变量
zhb_821012 2007-10-26
  • 打赏
  • 举报
回复
类在内存中是不存在的,内存中只有数据和函数,对象也是数据,类的各种特性通过一个个真实的对象来体现,类中的成员函数(非静态)也通过每个真实的对象来体现,也就是通过一组内存中的数据才能访问到这些成员函数。
洋溢2020 2007-10-26
  • 打赏
  • 举报
回复
你们可以用汇编读来看看的,是吗...?

62,623

社区成员

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

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