public class Test
{
static void oper(StringBuffer c,StringBuffer d)
{
d = c.append("B");
}
public static void main(String[] args)
{
StringBuffer a = new StringBuffer("A");
StringBuffer b = new StringBuffer("B");
oper(a, b);
System.out.println(a + "," + b);
}
}
此程序会输出:AB,B。为什么不是AB,AB?
{
static void oper(StringBuffer c,StringBuffer d)
{
d = c.append("B");
}
public static void main(String[] args)
{
StringBuffer a = new StringBuffer("A");
StringBuffer b = new StringBuffer("B");
oper(a, b);
System.out.println(a + "," + b);
}
}
此程序会输出:AB,B。为什么不是AB,AB?
解决方案 »
- 日期为什么比设置的多一个月?
- JTable单元格编辑问题
- java的垃圾回收的疑问,求高手指点
- ssh2事务配置管理
- 小第要做一个项目,建立一个自动EMAIL回复机,详细的请进来看,拿个高手曾经做个这方面的项目,可以进来给个想法.
- ●用java编了一个语言,请大家帮忙测试
- 能否将jbuilder中的类直接导出到ration rose 中
- 请教:谁能解释一下Serializable接口及serialVersionUID常量的用法?
- 高分求救啊!!!!高手们快来救救我啊!!!关于applet显示图片更新的问题
- 紧急求救,关于变量名使用另一变量的内容的问题!
- TextField设为不可编辑后还可以选中界面的内容么?
- 正则表达式,字符串分隔问题
static void oper(StringBuffer c,StringBuffer d) {
c = new StringBuffer("X");
d = c;
}
此程序会输出:A,B
实际上形参c和d传的是引用地址的副本而
static void oper(StringBuffer c,StringBuffer d)
{
d = c.append("B");
} 中
a的值改变是因为c.append("B");
这时操纵的是c这个地址所引用的对象,所以值改变