zoukankan      html  css  js  c++  java
  • java值传递和引用传递

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

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

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

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

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

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

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

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

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

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

    java只有值传递。

  • 相关阅读:
    值得收藏的14款响应式前端开发框架
    简单几步把LOGO变字体
    7 款免费的 Metro UI 模板
    JPG渐进 & PNG/PNG24 交错测试
    你的钱,以后是放银行还是放支付宝?
    Bise IE6 在你的网站上加上它让IE滚蛋吧
    单例模式常见场景
    10 个最新的开发者工具
    大流量网站的底层系统架构
    DNS解析全过程及原理
  • 原文地址:https://www.cnblogs.com/xwzp/p/11911936.html
Copyright © 2011-2022 走看看