public static void main(String[] args) { // TODO Auto-generated method stub String str = "data1"; String str2 = new String("data2"); StringBuffer buffer = new StringBuffer("data3"); System.out.println("!!!!!1 str:=" + str + " str2:=" + str2 + " buffer:=" + buffer.toString()); dealData(str, str2, buffer); System.out.println("!!!!!2 str:=" + str + " str2:=" + str2 + " buffer:=" + buffer.toString()); } private static void dealData(String str, String str2, StringBuffer buffer) { str += "123"; str2 += "123"; buffer.append("123"); System.out.println("nerborn: str:=" + str + " str2:=" + str2 + " buffer:=" + buffer.toString()); }的输出结果是什么
时间: 2024-01-28 20:05:31 浏览: 62
运行这段代码,输出结果为:
```
!!!!!1 str:=data1 str2:=data2 buffer:=data3
nerborn: str:=data1123 str2:=data2123 buffer:=data3123
!!!!!2 str:=data1 str2:=data2 buffer:=data3123
```
在main方法中,我们定义了一个字符串变量str、一个字符串对象str2和一个StringBuffer对象buffer,并将它们分别初始化为"data1"、"data2"和"data3"。然后我们调用了dealData方法,传入这三个参数,并在dealData方法中对它们进行了修改。
在dealData方法中,我们对str和str2进行了字符串拼接操作,这实际上是创建了新的字符串对象,所以在dealData方法中修改的只是局部变量的值,不会影响到main方法中的原始变量。而对于StringBuffer对象buffer,我们使用了append方法将"123"添加到了原始字符串后面,这会直接修改原始对象的值,因此在main方法中打印buffer对象时,会发现它的值已经变成了"data3123"。
相关问题
public class Text1 { public static void main(String[] args) { // TODO Auto-generated method stub th1 t1 = new th1("芜湖"); t1.start(); th2 t2 = new th2("芜湖2"); t2.start(); } } class th1 extends Thread { String name; public th1(String name) { this.name = name; } @Override public void run() { // TODO Auto-generated method stub System.out.println(Thread.currentThread().getName() + ":" + name); } } }
这也是一个Java程序,其中定义了一个名为"th1"的线程类和一个名为"Text1"的主类。在主类中,创建了两个线程对象,一个是"th1"对象,一个是"th2"对象,并启动它们。"th1"线程类中,定义了一个名为"name"的字符串变量和一个构造函数,构造函数将传入的参数赋值给"name"变量。在"run"方法中,输出当前线程的名称和"name"变量的值。
但是这段代码中有一个多余的"}",需要将其删除。除此之外,程序运行可能会存在的问题取决于您的具体需求和执行环境。
package syliu1; public class Syliu1 { public static void main(String[] args) { // TODO Auto-generated method stub th1 t1 = new th1("芜湖"); t1.start(); th1 t2 = new th1("芜湖2"); t2.start(); } } class th1 extends Thread { String name; public th1(String name) { this.name = name; } @Override public void run() { // TODO Auto-generated method stub Thread current= Thread.currentThread(); { System.out.println(current.getName()+":"+name); System.out.println(Thread.currentThread().getName() +":" + name); } } }
这是一个Java程序,其中定义了一个名为"th1"的线程类和一个名为"Syliu1"的主类。在主类中,创建了两个"th1"线程对象,并启动它们。"th1"线程类中,定义了一个名为"name"的字符串变量和一个构造函数,构造函数将传入的参数赋值给"name"变量。在"run"方法中,输出当前线程的名称和"name"变量的值。
你想问我这段代码的作用或者有什么问题吗?
阅读全文