浅谈Java中 a+=b和a=a+b的区别

Java中,`a = b`表示将对象b的引用赋值给对象a。这意味着ab将指向同一个对象实例。以下是一些关键点: 1. **引用赋值**:在Java中,对象变量实际上是对对象的引用。当你执行`a = b`时,a不再指向原来的对象,而是指向b所指向的对象。 2. **对象比较**:使用`==`运算符比较两个对象时,比较的是它们的引用是否相同,而不是它们的内容。如果要比较对象的内容,应该使用`equals()`方法。 3. **深拷贝与浅拷贝**:赋值操作不会创建对象的副本,而是复制引用。如果需要创建对象的副本,需要显式地创建新的对象并复制内容。 示例代码: ```java class MyClass { int value; MyClass(int value) { this.value = value; } } public class Main { public static void main(String[] args) { MyClass a = new MyClass(10); MyClass b = new MyClass(20); System.out.println("Before assignment:"); System.out.println("a.value = " + a.value); System.out.println("b.value = " + b.value); a = b; // a now references the same object as b System.out.println("After assignment:"); System.out.println("a.value = " + a.value); System.out.println("b.value = " + b.value); // Changing the value of b b.value = 30; System.out.println("After changing b.value:"); System.out.println("a.value = " + a.value); System.out.println("b.value = " + b.value); } } ``` 输出结果: ``` Before assignment: a.value = 10 b.value = 20 After assignment: a.value = 20 b.value = 20 After changing b.value: a.value = 30 b.value = 30 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值