我记得C++里方法返回对象时,会重新构造一个对象,原以为java也是如此,实际测试了下,发现不是,java返回的是对原对象的引用,测试如下:
新建测试类:
class Test {
String str;
public Test() {
System.out.println("Create Test");
}
public Test(String str) {
this.str = str;
System.out.println("Create Test: " + this.str);
}
public void setStr(String str) {
this.str = str;
System.out.println("setStr: " + this.str);
}
protected void finalize() {
if (null != str) {
System.out.println("destroy Test:" + this.str);
}
else {
System.out.println("destroy Test");
}
}
}
新建测试方法:
private Test createTest() {
Test test = new Test("test1");
test.setStr("test2");
return test;
}
在main中调用测试方法:
Test test = createTest();
test.setStr("test3");
console打印结果:
Create Test: test1
setStr: test2
setStr: test3
destroy Test:test3 说明前后一共只创建了一个对象。