首页 > 代码库 > Java对象的假克隆
Java对象的假克隆
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; } public Employee(String name, int age) { this.name = name; this.age = age; } public Employee() { } @Override public String toString() { return "Employee [name=" + name + ", age=" + age + "]"; } }
/**
* 在Java中对于基本类型可以使用"="来进行克隆,此时两个变量除了相等是没有任何关系的
* 而对于引用类型却不能简单地使用"="进行克隆,这与Java的内存空间有关。
* 在Java中将内存空间分成两块,即堆和栈.
* 在栈中保存基本类型和引用变量
* 在堆中保存对象
* 对于引用变量而言,使用"="将修改引用,而不是复制堆中的对象,此时两个引用变量将
* 指向同一个对象
* 因此一个变量对其进行修改则会改变另一个变量
*/
public static void main(String[] args) { System.out.println("克隆之前:"); Employee emp1 = new Employee(); emp1.setName("张XX"); emp1.setAge(30); System.out.println("员工1的信息:"+emp1); System.out.println("克隆之后"); Employee emp2 = emp1; emp1.setName("李XX"); emp1.setAge(24); System.out.println("员工1的信息:"+emp1); System.out.println("员工2的信息:"+emp2); System.out.println("是否为同一个对象:"+(emp1==emp2)); }
运行结果如下:
本文出自 “IT菜鸟” 博客,请务必保留此出处http://mazongfei.blog.51cto.com/3174958/1907842
Java对象的假克隆
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。