需求:定义一个函数交换数组中两个元素的位置。

code 1:

import java.util.*;
class Demo3
{
public static void main(String[] args)
{
//创建一个int类型的数组
int[] arr = {10,20,30,40}; System.out.println("交换值之前:" + Arrays.toString(arr));
//交换arr数组中角标0和1
changeValue(arr,0,1); System.out.println("交换值之后:" + Arrays.toString(arr));
}
//数组中的值交换
public static void changeValue(int[] arr , int index1 , int index2 ){
int temp = arr[index1];
arr[index1] = arr[index2];
arr[index2] = temp;
}
}

大家思考下,交换值成功吗???

code 1:运行结果:

最终的结果不知道和你们所想的一样~。。。 。 。 可是事实 结果是:交换值成功

下面我们来看下内存图就会理解了。

一图解万疑,除非你看不懂

原因分析:main()方法与changeValue()方法操作的是同一个对象。操作的是同一数组对象。所以交换值成功。

最新文章

  1. 项目 CTR预估
  2. CoreGraphics-线段常见属性及渲染模式介绍
  3. centOS学习part3:远程工具VNC的安装与配置
  4. monogdb笔记1
  5. Java 水仙花数
  6. spring【一】 学习
  7. [PHP] pow指数运算函数与二进制
  8. linux安装anaconda3 conda: command not found
  9. mysql数据表的基本操作:表结构操作,字段操作
  10. MySQL查询当天、本周,本月,上一个月的数据
  11. 如何使用 t-sql 更新数据库中日期字段的部分数据(年?月?日?时?分?秒?)
  12. mysql 简单主从
  13. 谷歌浏览器 URL无法访问
  14. 软工大作业DB天气项目风险评估
  15. FluentNhibernate 不支持存储过程
  16. Windows装python
  17. CentOS安装nmon
  18. SpringBoot学习:在Interillj Idea上快速搭建SpringBoot项目
  19. QtAndroid具体解释(6):集成信鸽推送
  20. ThreadLocal (二):什么时候使用 InheritableThreadLocal

热门文章

  1. [BZOJ3668] [Noi2014] 起床困难综合症 (贪心)
  2. [BZOJ3110] [Zjoi2013] K大数查询 (树套树)
  3. CentOS 静态IP分配,提示Error, some other host already uses address解决办法
  4. js,获取和设置cookie、 localStorage
  5. Fiddler抓取https设置及其原理
  6. 关于Eclipse中Ctrl+Alt+Down和Ctrl+Alt+Up不起作用的解决方法
  7. 通过IF({1,0}和VLOOKUP函数实现Excel的双条件多条件查找的方法
  8. Selenium和Firefox兼容问题
  9. TypeScript入门(二)函数新特性
  10. MySQL数据库学习四 存储引擎和数据类型