关于对象和引用的问题

Josh 2009-03-25 11:43:43
StringBuffer a=new StringBuffer("immutable");
这句话里面a代表一个引用,里面存的是一个指向immutable的内存地址,然后内存里面还有另外一个空间存的是StringBuffer类型的字符串值immutable,immutable可以理解为一个对象 是这样吗

...全文
137 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Josh 2009-04-04
  • 打赏
  • 举报
回复
明白了
summily 2009-03-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 dreamhunter_lan 的回复:]
确切的说,a不是引用,a是一个引用变量,这个变量的值是一个StringBuffer对象的值
在内存中开辟了一块内存给new出来的StringBuffer
至于"immutable"其实是在String Pool中的一个String对象
[/Quote]
正解
ethan119 2009-03-30
  • 打赏
  • 举报
回复
StringBuffer a=new StringBuffer("immutable");
如果"immutable"存在于Strinig pool中,那么创造一个StringBuffer对象,并把"immutable"复制到StringBuffer对象中,让引用a指向那个StringBuffer对象。
如果"immutable"不存在于Strinig pool中,那么先把"immutable"加入String pool中,然后执行上面的步骤。
Strinig pool中的每一个String都是一个对象。但是很可惜,StringBuffer引用永远都不可能指到String pool里面去。


StringBuffer继承自AbstractStringBuilder,看看StringBuffer和AbstractStringBuilder的构造函数:

public StringBuffer(String str) {
super(str.length() + 16);
append(str);
}

AbstractStringBuilder(int capacity) {
value = new char[capacity];
}
很显然,它开辟了新的内存空间。
fanchangyong 2009-03-28
  • 打赏
  • 举报
回复
首先我不太明白引用和引用变量的区别,下以引用代替.

a是一个引用,在栈中占据内存空间 。 而后边的new StringBuffer()为一个StringBuffer开辟内存.
里边的immutable是一个字符串,传递给StringBuffer构造方法的参数,在StringBuffer内部会经过加工把它构造成一个StringBuffer对象.
himily198338 2009-03-26
  • 打赏
  • 举报
回复
支持楼上说的
dreamhunter_lan 2009-03-26
  • 打赏
  • 举报
回复
确切的说,a不是引用,a是一个引用变量,这个变量的值是一个StringBuffer对象的值
在内存中开辟了一块内存给new出来的StringBuffer
至于"immutable"其实是在String Pool中的一个String对象
hoojo 2009-03-26
  • 打赏
  • 举报
回复

确切的说,a不是引用,a是一个引用变量,这个变量的值是一个StringBuffer对象的值
在内存中开辟了一块内存给new出来的StringBuffer
至于"immutable"其实是在String Pool中的一个String对象

正解
SunnyPea 2009-03-26
  • 打赏
  • 举报
回复
StringBuffer a=new StringBuffer("immutable");
这个语句创建了三个量a、
a是一个引用变量,它的值是StringBuffer对象的物理地址,存放在stack里,它指向对象,而对象是在heap里面。
chxy148 2009-03-26
  • 打赏
  • 举报
回复
支持楼上说的
yuppy 2009-03-26
  • 打赏
  • 举报
回复
早上好~~
thinkhejie 2009-03-26
  • 打赏
  • 举报
回复
immutable 是一个对象,LZ说的对。 变量 a 引用了这个对象。

62,615

社区成员

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

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