赋值操作与参数传递

本文详细探讨了Java中赋值操作与参数传递的原理,区分了基本类型和引用类型的区别。对于基本类型,赋值是值的复制,而引用类型则是引用的复制。举例说明了当两个引用指向同一对象时,通过其中一个引用修改对象,会影响另一个引用的值。同时,展示了当引用指向不同对象时,各自操作互不影响的情况。
摘要由CSDN通过智能技术生成

误区总是有人认为Java的赋值操作和传递参数操作都是passing by value和passing by reference。这很明显是错误的,在Java中只有 passing by value。众所周知,Java有两种数据类型结构:基本数据类型与引用数据类型。那么在赋值和传参自然也只会涉及到这两种。刨根究底,在内存中,基本数据类型的值是存在栈内存中的,而引用数据类型中,它的引用也是存在栈内存中的,但是这个引用指向的对象是存在堆内存中。存储方式不同,那么在赋值和参数传递中肯定会有一些不同。

赋值与参数传递

基本类型
对基本数据类型的赋值很简单,基本类型存储了实际的数值,而并非指向一个对象的引用,所以在为其赋值的时候,是直接将一个地方的内容复制到了另一个地方.例如:对基本类型使用a=b ,那么b的内容就复制给了a.若接着又修改了a,b的值是不会受影响的。
引用类型
但是在为对象赋值的时候,情况却发生了变化,对一个对象进行操作的时候,我们真正操作的是对对象的引用。所以倘若将“一个对象赋值给另一个对象”,实际上是将“引用”从一个地方复制到了另一个地方。倘若对对象使用c=d,那么c和d都会指向原本只有d指向的那个对象。

详解

例子1:

public class Solution {

    private int a;
    private int b;

    public void setA(int a) {
        this.a = a;
    }
    public void setB(int b) {
        this.b = b;
    }
}

                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值