• java值传递和引用传递


    对于java究竟是值传递还是引用传递,有很多说法。有博客说java是值传递,也有博客说java是值传递和引用传递并存。那么java究竟是什么样的参数传递的方式。

    1.值传递:对形参的操作不影响实参

    2.引用传递:对形参的操作影响实参

    在讨论java是值传递还是引用传递之前,我们先来了解下java的方法形参的内存

    java方法的形参存在方法的栈帧中,而每个方法的栈帧是相互独立的。对于基本数据类型,栈帧中直接存在值,而引用类型,栈帧中存放指向对象的内存地址。

    1.对于基本类型而言,对形参操作其实是对你所在方法的栈帧里的值进行操作,并不会影响到其他方法所对应栈帧。形参只是对实参值的copy,所以对于基本数据类型而言,java是值传递。

    2.对于引用数据类型而言,分为两种情况

    a)对对象的属性进行操作,那么实际上就是改变了对象的属性。那么有的人可能就会觉得java是值传递与引用传递并存。

    b)对对象进行操作,比如在方法类新创建一个对象,把对象赋值给形参。这个时候实参并不会发生变化。因为栈帧中存放的是对象的内存地址,当你将新建的对象赋值给形参时,形参所指向的内存地址已经发生了变化,你对这个对象的任何操作,都不会影响到实参。

    那么对于引用类型而言,java还是值传递,因为引用类型是对内存地址的copy。

    java只有值传递。

  • 相关阅读:
    配置Mysql远程访问
    mysql Access denied for user root@localhost错误处理备忘
    MsSql判断表是否有自增标识
    .net用NPOI生成Word表格
    TensorFlow-卷积
    Java中int与Integer的区别
    由经纬度坐标得到腾讯地图的瓦片/切片行列号
    vs code上配置Scala
    VMware虚拟机上配置CentOS联网
    使用PuTTy在CentOS下安装web.py与简单的文件传输
  • 原文地址:https://www.cnblogs.com/xwzp/p/11911936.html
Copyright © 2020-2023  润新知