Java中实例化一个对象,具体是否就是使用new为对象开辟内存空间???

如题所述

Object o;//这是声明一个引用,他的类型为Object,他的值为空null,还没有指向任何对象。该引用放在内存的栈区域中。
o = new Object();//new Object()句,实例化了一个对象,就是在堆中申请了一块连续空间用来存放该对象。
= 运算符 将引用o 指向了该对象。
也就是说将栈中表示引用o的内存地址的内容改写成了Object对象在堆中的地址。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-01-28
比如:
A a=new A();
为A对象创建了一个实例。但在内存中开辟了两块空间。

一块空间在堆区,存放new A()这个对象。
另一块空间在堆栈,也就是栈,存放 a,a的值为new A()这个对象的内存地址。因为java在JVM(java虚拟机)中运行,所以a描述的内存地址不一定是这个对象真实内存的地址。
第2个回答  2010-01-28
如果不懂就去看看马士兵或v512关于j2se的视频吧。
第3个回答  2010-01-28
恩 你要研究这方面的知识最好看下java的内存分配相关内容 一时半会我也说不明白 ~ 堆内存 栈内存 常量池~· 都了解下就明白jvm的分配原理了本回答被提问者采纳
相似回答