java对象可以直接赋值吗?
时间: 2023-08-05 10:10:27 浏览: 236
Java中的对象赋值有两种方式:浅拷贝和深拷贝。
浅拷贝是指将一个对象的引用赋给另一个对象,这样两个对象指向的是同一个内存空间。这意味着如果其中一个对象的属性发生了变化,另一个对象的属性也会跟着改变。换句话说,它们共享相同的状态。示例代码如下:
```
Person person1 = new Person("Tom");
Person person2 = person1; // 浅拷贝
```
深拷贝是指将一个对象完全复制一份,包括对象中的所有属性,而不是仅仅复制引用。这样两个对象是独立的,它们的属性互不影响。示例代码如下:
```
public class Person implements Cloneable {
private String name;
public Person(String name) {
this.name = name;
}
@Override
public Object clone() throws CloneNotSupportedException {
return super.clone();
}
}
Person person1 = new Person("Tom");
Person person2 = (Person) person1.clone(); // 深拷贝
```
需要注意的是,如果对象中的属性也是对象,那么需要对这些属性也进行深拷贝。否则,仍然会出现浅拷贝的问题。
阅读全文