StringBuffer 传地址,string好像是传值。
解决方案 »
- JTextField中输入(2+2)*4为什么和“(2+2)*4”不相等呢
- 输出400以内的Smith数
- 请问java中如何调用载有图片的dll
- java的中文乱码问题,明天晚上(本周5晚上)结帖,忘各位真情相助,谢谢了!
- JavaServlet相关
- socket通讯,CPU使用率100%,如何解决
- 关于APPLET的问题,为什么class文件已经更换了,运行html文件显示的还是原来的内容那?
- 斑竹,高手同志们,Java如何向access里插入和读取OLE字段
- 关于用java运行控制台命令程序代码段Runtime为什么在windows上有异常呢? 80分
- 我怒了!J2SDK 1.4出的鬼问题,到底怎么回事?
- 简单问题 100分
- 怎样让一个线程在后台运行?
public class T104_34 {
public static void operate(StringBuffer x, StringBuffer y) {
x.append(y);//关键是这个append方法,它对x所在在地址进行操作。
y = x;//y是局部变量,所以在这里随便怎么赋值都没有什么用。
System.out.println(y); // print AB
}
public static void main(String[] args)throws Exception {
StringBuffer a = new StringBuffer("A");
StringBuffer b = new StringBuffer("B");
operate(a,b);
System.out.println(a + " , " + b); // print AB , B
System.in.read ();
}
}
*/public class T104_34 {
public static void operate(String x, String y) {
x.concat(y);//很明显,concat是返回一个追加后的字符,但是对y本身不进行改变。
//如果好生改变那么下面这句应该输出"ABB"
System.out.println(x.concat(y));// print AB
System.out.println(x); // print A //局部变量
}
public static void main(String[] args)throws Exception {
String a = new String("A");
String b = new String("B");
operate(a, b);
System.out.println(a + " , " + b); // print A , B
System.in.read ();
}
}
public static void operate(StringBuffer x, StringBuffer y) {
x.append(y);
y.append(x);
System.out.println(x); // print AB
System.out.println(y); // print BAB
}
public static void main(String[] args) {
StringBuffer a = new StringBuffer("A");
StringBuffer b = new StringBuffer("B");
operate(a,b);
System.out.println(a + " , " + b); // print AB , BAB
}
}
// 我怀疑,java对String的处理确实是按值传递进行的!