假克隆:java中对于基本类型可以使用=来进行克隆,此时会有两个变量除了相等没有任何关系,而对于引用类型却不是如此简单,这与java内存空间使用有关系。java将内库存空间分为堆和栈,在栈中保存基本类型和引用变量;在堆中保存对象。
“=”对于引用变量而言,使用“=”修改引用而不是复制对象。此时两个引用变量指向同一个对象。因此如果进行修改就会改变另一个变量。
示例程序
package edu.test.ch6;
public class Employee {
private String name;// 表示员工的名字
private int age; // 表示员工的年龄
public String getName() {
return name;
}
public void setName(String name) {
this.name=name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age=age;
}
@Override
public String toString() {// 重写toString()方法
return "姓名:" + name + ", 年龄:" + age;
}
}
package edu.test.ch6;
public class Teste {
public static void main(String[] args) {
System.out.println("克隆之前:");
Employee employee1=new Employee();// 创建Employee对象employee1
employee1.setName("张XX");// 为employee1设置姓名
employee1.setAge(30);// 为employee1设置年龄
System.out.println("员工1的信息:");
System.out.println(employee1); // 输出employee1的信息
System.out.println("克隆之后:");
Employee employee2=employee1; // 将employee1赋值给employee2
employee2.setName("李XX");// 为employee2设置姓名
employee2.setAge(24);// 为employee2设置年龄
System.out.println("员工1的信息:");
System.out.println(employee1);// 输出employee1的信息
System.out.println("员工2的信息:");
System.out.println(employee2);// 输出employee2的信息
}
}
运行结果:

- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
