不理解,为什么输出会是这样的; recount中的sbuff1、sbuff2是main中sbuff1、sbuff2的拷贝,但指向的StringBuffer是一样的。因此sbuff2.append(" Floart"); 改变了sbuff2指向的StringBuffer,但sbuff1=sbuff2; 不起作用因为这个sbuff1不是main中那个。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 输出是:void in palm Beach void in palm Beach Floart因为recount(StringBuffer sbuff1,StringBuffer sbuff2)中的参数sbuff1,sbuff2都是引用,所以并不会改变它们在内存中所指向的区域,可是因为StringBuffer对象本身是可变的,所以sbuff2.append方法改变了sbuff2的值。但是sbuff1=sbuff2并不改变sbuff1在内存中指向的位置,因为它是引用的,sbuff1=sbuff2只在方法中有效。 应该是void in palm Beachvoid in palm Beach Float调用recount时sbuff2.append(" Floart"); 使到sbuff2的内容变化了sbuff1=sbuff2时sbuff1的地址变化了,当跳出函数时sbuff1还是指向原来地址,结果sbuff1的值没有改变 1。recount(StringBuffer sbuff1,StringBuffer sbuff2)不是方法?是事件?2。在main中StingBuffer sbuff1=StringBuffer(" palm Beach")后,就定义好了sbuff1在内存中的区域?那也定义好了sbuff2的内存区域。3。recount中,sbuff2.append("Floart")改变了内存区域,可以理解。subff1=subff2,中,sbuff2还是调用的main中的sbuff2?是这样的吗? sbuff2.append(" Floart"); sbuff2引用的是类中的sbuff2 这个操作改变了类中的sbuff2变量引用的值 而临时变量sbuff2还是引用类中的sbuff2sbuff1=sbuff2; 临时变量sbuff1的引用变成sbuff2 而类中的变量sbuff1的引用没有变 sbuff2.append(" Floart"); sbuff2引用的是类中的sbuff2 这个操作改变了类中的sbuff2变量引用的值 而临时变量sbuff2还是引用类中的sbuff2sbuff1=sbuff2; 临时变量sbuff1的引用变成sbuff2 而类中的变量sbuff1的引用没有变 1.recount是方法2.在java中不用考虑什么内存,java的抽象高于这一级别。StingBuffer sbuff1=StringBuffer(" palm Beach")生成了一个StringBuffer对象,并让引用sbuff1指向这个对象。3.sbuff2.append("Floart")改变了sbuff2指向的对象。两个sbuff2不相同,但都指向同一个对象。 java多线程求解 紧急求助:WebSphere MQ的事务管理问题,解决马上结贴 我说能不能不要再问String创建了几个对象这种蛋疼问题啊? 请问如何控制线程并发的个数? 在eclipse3中如何使用jdk5的特性,如annotation、for in集合、泛型等??? 这三句话定义了3个什么对象?请教! 请问为什么我看Applet在IE显示只有一个灰色框呢? (散分) 关于多线程的,谁能帮我解释一下这个程序 怎麼樣將二個frame合在一塊? 有谁能帮我解决JEditPane对中文页面的支持问题 date()函数返回什么? J2SE的迷茫
void in palm Beach Floart
因为recount(StringBuffer sbuff1,StringBuffer sbuff2)中的参数
sbuff1,sbuff2都是引用,所以并不会改变它们在内存中所指向的区域,可是因为StringBuffer对象本身是可变的,所以sbuff2.append方法改变了sbuff2的值。但是sbuff1=sbuff2并不改变sbuff1在内存中指向的位置,因为它是引用的,sbuff1=sbuff2只在方法中有效。
void in palm Beach
void in palm Beach Float调用recount时
sbuff2.append(" Floart"); 使到sbuff2的内容变化了
sbuff1=sbuff2时sbuff1的地址变化了,当跳出函数时
sbuff1还是指向原来地址,结果sbuff1的值没有改变
2。在main中StingBuffer sbuff1=StringBuffer(" palm Beach")后,就定义好了sbuff1在内存中的区域?那也定义好了sbuff2的内存区域。
3。recount中,sbuff2.append("Floart")改变了内存区域,可以理解。
subff1=subff2,中,sbuff2还是调用的main中的sbuff2?是这样的吗?
类中的sbuff2变量引用的值 而临时变量sbuff2还是引用类中的sbuff2
sbuff1=sbuff2; 临时变量sbuff1的引用变成sbuff2 而类中的变量sbuff1的引用没有变
类中的sbuff2变量引用的值 而临时变量sbuff2还是引用类中的sbuff2
sbuff1=sbuff2; 临时变量sbuff1的引用变成sbuff2 而类中的变量sbuff1的引用没有变
2.在java中不用考虑什么内存,java的抽象高于这一级别。StingBuffer sbuff1=StringBuffer(" palm Beach")生成了一个StringBuffer对象,并让引用sbuff1指向这个对象。
3.sbuff2.append("Floart")改变了sbuff2指向的对象。两个sbuff2不相同,但都指向同一个对象。