【JAVA】 什么是值传递和引用传递?

【JAVA】 什么是值传递和引用传递?值传递是对基本型变量而言的 传递的是该变量的一个副本 改变副本不影响原变量 引用传递一般是对于对象型变量而言的 传递的是该对象地址的一个副本 并不是原对象本身 一般认为 java 内的基础类型数据传递都是值传递 java 中实例对象的传递是引用传递首先 不要纠结于 PassByValue 和 PassByRefere 的字面上的意义 否则很容易陷入所谓的 一切传引用其实本质上

一:搞清楚 基本类型 和 引用类型的不同之处

int num = 10; String str = "hello"; 

在这里插入图片描述
如图所示,num是基本类型,值就直接保存在变量中。而str是引用类型,变量中保存的只是实际对象的地址。一般称这种变量为”引用”,引用指向实际对象,实际对象中保存着内容。

二:搞清楚赋值运算符(=)的作用

num = 20; str = "java"; 

三:调用方法时发生了什么?参数传递基本上就是赋值操作。

第一个例子:基本类型

void foo(int value) { value = 100; } foo(num); // num 没有被改变 

第二个例子:没有提供改变自身方法的引用类型

void foo(String text) { text = "windows"; } foo(str); // str 也没有被改变 

第三个例子:提供了改变自身方法的引用类型

StringBuilder sb = new StringBuilder("iphone"); void foo(StringBuilder builder) { builder.append("4"); } foo(sb); // sb 被改变了,变成了"iphone4"。 

第四个例子:提供了改变自身方法的引用类型,但是不使用,而是使用赋值运算符。

StringBuilder sb = new StringBuilder("iphone"); void foo(StringBuilder builder) { builder = new StringBuilder("ipad"); } foo(sb); // sb 没有被改变,还是 "iphone"。 

重点理解为什么,第三个例子和第四个例子结果不同?

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/211304.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午10:44
下一篇 2026年3月18日 下午10:45


相关推荐

  • Pycharm运行三种方式

    Pycharm运行三种方式1 普通运行方式创建一个 test 01 py 的文件 文件中没有用到测试框架如 Pytest 框架时 选择普通方式运行脚本点击左上角的加号 点击 python 配置文件工作目录点击上图中的按钮 OK 文件以普通方式运行 2 当项目中使用到 unittest 框架当项目中使用到 unittest 框架 pycharm 兼容 unittest 会自动识别以 unittest 方式运行 3 当项目中使用到 pytest 框架当项目中使用到 pytest 框架 pycharm 设置 pytest 方式云运行

    2026年3月27日
    1
  • 以太网帧格式及例子

    以太网帧格式及例子nbsp 很多人将局域网 LocalAreaNet LAN 和以太网 Ethernet 混为一谈 这个误解大概是因为和其他局域网技术比较起来 以太网技术使用得是如此普遍 发展得是如此地迅速 以至于人们将 以太网 当作了 局域网 的代名词 本节将讨论 局域网 和 以太网 二者之间的关系以及相关的一些基础知识 1 以太网概述 1973 年 施乐公司 Xerox 开发出了一个设备互连技术并将这项技术命名

    2026年3月18日
    3
  • resin 4.0数据源的配置

    resin 4.0数据源的配置

    2022年2月2日
    88
  • IDEA + Codex · 32ai 零魔法直连GPT-5-Codex

    IDEA + Codex · 32ai 零魔法直连GPT-5-Codex

    2026年3月16日
    2
  • 经典C面试题

    经典C面试题

    2021年11月30日
    40
  • 电子书包“翻转”课堂

    电子书包“翻转”课堂在联想·知好乐电子书包发布会上,一场别开生面的现场教学示范引起了与会者的极大兴趣。北京教育学院的王春老师借助联想·知好乐电子书包,创新出一种名为“翻转课堂”的教学模式,就是将原来课堂上老师教授新知的环节“翻转”为课前学生自主学习,并将原来课下学生的知识内化过程“翻转”到课上。与会的教育行业专家认为,这是一种更符合学习规律、更尊重学生认知的高效的教学方式。  据同方知好乐教育公司(以下简称知好乐)总…

    2022年10月19日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号