学过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同学买了一篮水果,但是回来后发现水果有坏的,于是他拿去换,人家把水果给换了,但是篮还是他之前的那个篮。(引用传递)

可能例子不是很恰当,但是能说明问题。

以上部分内容来自网络,有问题可以在下面评论,技术问题可以私聊我。

最新文章

  1. table 鼠标移上去改变单元格边框颜色。
  2. BLAST套件
  3. “CEPH浅析”系列之六——CEPH与OPENSTACK
  4. PE文件结构部分解析以及输入的定位
  5. Requirejs开篇
  6. mvc action 参数绑定——值提供器【学习笔记】
  7. jQuery Ajax全解析
  8. django的Model 模型中常用的字段类型
  9. ShareSDK第三方登陆 (IOS)
  10. 模仿jQuery的filter方法
  11. Java多线程由易到难
  12. Hessian源码分析--总体架构
  13. linux磁盘命令-lsblk显现磁盘阵列分组
  14. ES6 - Map
  15. ZOJ Problem Set - 2397 Tian Ji -- The Horse Racing
  16. Markdonw基本语法学习
  17. python Django 文件下载示例
  18. luogu P2113 看球泡妹子
  19. hdu 1394 Minimum Inversion Number - 树状数组
  20. JMeter学习(三十七)Jmeter录制手机app脚本(转载)

热门文章

  1. idea 类图显示
  2. ajax加载本地html文件出现 XMLHttpRequest cannot load的问题
  3. noip模拟赛 排列
  4. hdu 1269 求连通图的模板题
  5. java操作数据库的工具库(from韩顺平)
  6. codevs2486 太鼓达人
  7. MyBatis3-示例工程
  8. ASM instance正常启动,但是用sqlplus 连不上的问题
  9. ssh连接失败
  10. mysql中间件amoeba实现mysql读写分离