在Thinking in Java 里提到有五个不同的地方(寄存器、堆栈、堆、常量存储、非RAM存储),类变量好像没有放在前边五个当中的任意一个啊
看到过说类变量在JVM中是放在方法区里的,这个方法区是一般的RAM啊,难道Thinking里说的有问题?
请教高手指点...

解决方案 »

  1.   

    二楼的可能没明白我的意思,我是说类变量就是类数据,也就是static变量
      

  2.   

    寄存器是内存中速度最快的,很有限,一般由JVM来按需要分配,我们是没有办法就操作他的内存堆栈  一指针上移来分配内存,而且需要知道他的大小以及生命周期,所以分配的速度非常快,在
          java中,所有的简单数据类型和引用都是存放在堆栈中的!堆  这里分配内存不需要知道他的大小及生命周期这个好处,相对堆栈来说分配的速度要慢点,java中对象就储存在这里面,不包括常量和静态数据
    常量存储 存储常量数据咯!
    非RAM存储 应该是非RAM静态存储吧,就是存储静态数据的!
      

  3.   

    谢谢大家的回答,whzresponse说得恨清晰
    可在thinking里的非RAM是磁盘,就是持久化对象的那部分
    我在想,这个静态数据就是在一般的RAM里吧,只是划出来专门存放这些东西的(当然还可以放其它的吧),这块RAM
    就是JVM里的方法区,不知道我的理解对不
      

  4.   

    嗯,应该是在ram里面。RAM里面应该有专门的静态存储区的
      

  5.   

    在RAM里,我记得Think in Java中有段话:
    “静态”是指在“固定的位置”(尽管也在RAM里)。静态存储里放程序运行时一直存在的数据。