Java里边什么是值传递和引用传递?两个有什么区别
学过java基础的人都知道,在java中参数的传递过程中有值传递和应用传递,那么这两个到底有什么区别呢,下面我通过例子为大家详细的介绍下。
我们都知道Java中有八种数据类型,基础数据类型分别是:byte,short,int,long,float,double,char,boolean,引用数据类型分别是:数组,类和接口。方法传参的时候我们有两种,一种是形式参数(定义方法时写的参数),一种是实际参数(调用方法时给的具体值)。
首先我们通过一个例子说明值传递
static int data = 200;
public static void main(String[] args) {modifyValue(data);System.out.println(data);
}public static void modifyValue(int data) {data = 100;
}
运行以上代码你会发现data还是200,这是为什么呢,这是因为int是基本的数据类型,属于值传递
下面我来看什么是引用传递
static int[] arrNum = {1,2,3,4,5};public static void main(String[] args) {modifyArrValue(arrNum);for(int i=0;i<arrNum.length;i++) {System.out.println(arrNum[i]);}}public static void modifyArrValue(int[] arrNum) {for(int i=0;i<arrNum.length;i++) {arrNum[i] = 0;}}
我们来看结果是4个0,是不是很意外,因为这个地方是引用类型的。
可能看了上面的例子之后有的同学还是不理解什么是值传递,什么是引用传递。我给大家举个非常简单的例子:
A同学买了一篮水果,但是回来后发现水果有坏的,于是他拿去人家给他重新换了一栏。 (值传递)
A同学买了一篮水果,但是回来后发现水果有坏的,于是他拿去换,人家把水果给换了,但是篮还是他之前的那个篮。(引用传递)
可能例子不是很恰当,但是能说明问题。
以上部分内容来自网络,有问题可以在下面评论,技术问题可以私聊我。
转载于:https://www.cnblogs.com/c1024/p/11012036.html
Java里边什么是值传递和引用传递?两个有什么区别相关推荐
- Java中的值传递和引用传递
当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 答:是值传递.Java 编程语言只有值传递参数.当一个对象实例作为 ...
- Java值传递与引用传递
Java面试题: 当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 答案基本上是:值传递 说明:得出这种结论的前提必须是&qu ...
- Stack Overflow上188万浏览量的提问:Java 到底是值传递还是引用传递?
来自:沉默王二 在逛 Stack Overflow 的时候,发现了一些访问量像阿尔卑斯山一样高的问题,比如说这个:Java 到底是值传递还是引用传递?访问量足足有 188万+,这不得了啊!说明有很多很 ...
- java 引用传递_详解java的值传递、地址传递、引用传递
详解java的值传递.地址传递.引用传递 一直来觉得对值传递和地址传递了解的很清楚,刚才在开源中国上看到一篇帖子介绍了java中的值传递和地址传递,看完后感受颇深.下边总结下以便更容易理解. 按照以前 ...
- Java中传参数--值传递和引用传递
** Java中传参数–值传递和引用传递 ** 在Java中,传参数分为值传递和引用传递. 在Java中的数据类型分为两大类:一类是引用类型,也叫类类型(除了String以外的所有复合数据类型,包括数 ...
- java的引用传递_Java的值传递和引用传递
首先来看一段代码: User类: 1 public classUser {2 privateString name;3 4 publicString getName() {5 returnname;6 ...
- java引用传递关键字_Java值传递和引用传递
Java值传递和引用传递 1 什么是Java值传递和引用传递 在Java中只有值传递,而没有引用调用.如果我们调用传递值的方法,则称为按值调用.在调用方法中完成的更改在调用方法时不受影响. 2 Jav ...
- java中的值传递和引用传递问题
值传递与引用传递 最近学基础的时候,老师讲了值传递和引用传递,这个问题一直不太明白,上网查了很多资料,按照自己的理解整理了一遍,发现之前不太明白的地方基本上想明白了,如有不正确的地方,欢迎指正,谢谢. ...
- 【Java基础】Java中的值传递、引用传递
Java中的值传递.引用传递 对于一个方法而言,参数是为该方法提供信息的,而不是想让该方法改变自己.--<Java编程思想> 值传递是对基本型变量而言的,传递的是该变量的一个副本,改变副本 ...
- Java中值传递和引用传递原理以及区别
Java在参数传递时有两种:一种是按值传递,一种是按引用传递 值传递:值传递是指在调用方法时将实际参数复制一份传递到方法中,也就是说,在调用方法时,实际参数把他的值的副本传递给对应的形式参数.(注意这 ...
最新文章
- php敏感字符串过滤_PHP实现的敏感词过滤方法示例
- NFS精简版配置方法
- leetcood学习笔记-107-二叉树的层次遍历二
- 设计素材模板|如何从优秀作品里学习版面设计?
- python聚类分析如何确定分类个数_R语言做聚类分析Kmeans时确定类的个数
- 读取pcap获得端口_渗透技巧——获得Exchange GlobalAddressList的方法
- 如何实现分布式锁?赶紧收藏备战金三银四!
- HDR概念 (二十八)
- 【三维路径规划】基于matlab无人机三维路径规划【含Matlab源码 1262期】
- iOS 地图移动中心点获取
- 微PE工具箱四合一下载并安装
- 【转】知识图谱构建全过程
- 微商引流脚本,微商怎样选择正确的引流脚本?
- 对偶理论与灵敏度分析
- 关于本学期学校数据库课程的总结和一些心得
- 使用select2 实现拼音全拼和首字母 搜索
- Android 支付宝支付密码输入界面
- eclipse配置tomcat9.0
- 【ZBH选讲·拍照】
- MySQL5.7 固态盘性能设置_MySQL 5.7 安装完成后,立即要调整的性能选项
热门文章
- File-nodejs
- Linux学习笔记--对文本的操作及正则表达式
- 和朋友聊天时好玩的加密小程序(第一版)
- 如何计算_平整场地如何计算?
- signature=ecbb5c28a0561484700bbfeebe84cc52,Corps next in line as bond fees are hit by ECB
- JCheckBox 默认选择_[注册表] 将Windows 10默认应用程序设置页面添加到桌面右键菜单中...
- java的hashmap排序_Java面试题:如何对HashMap按键值排序
- c语言程序设计 赵宏,C语言程序设计(模块化程序设计I )(6页)-原创力文档...
- 关于各种回归评价指标MSE、RMSE、MAE、R-Squared、Standard Deviation(标准差)
- java一个点围着另一个点转_Java:按指定的度数值旋转另一个