为什么在Java中栈里面变量的地址值无法输出,而堆里面的变量地址可以输出

解决方案 »

  1.   

    这是因为java语言限制java的内存模型,栈->堆基础类型的值是直接存在栈;而包装类型(对象)数据存在堆中,他的引用存在栈中;而栈是在进入方法时候,开辟出来的一份内存空间,这个空间有一个 引用地址范围 例如A1-A13;栈中所有的内存的地址引用都是A1+1 ... A1+N的方式表示所以,你要取到栈空间的引用地址,不可能的,这是java限制;你取到对象引用地址只是存储在栈中的堆的地址
      

  2.   


    这个跟java 编程没关系,你看一下jvm原理就都明白了。