【JAVA】数据交换,java方法参数
来源:互联网 发布:青岛华为软件开发 编辑:程序博客网 时间:2024/06/05 11:10
还是先看题吧:
package test.java;
public class test8 {
static String a = "yes";
static String b ="no";
public static void main(String[] args) {
jh(a,b);
System.out.println("a:" + a + "b:" + b);
}
private static void jh(String a, String b) {
String c = a;
a = b;
b = c;
}
}
print打印出来的 a 和 b 应该是什么值呢?
A: a:yes ; b:no
B: a:no ; b:yes
---------------------------------------------------------------------------------分割线-------------------------------------------------------------------------------
答案显而易见:A
那么问题来了,是为什么呢?
这个就得说到JAVA传递参数的方式了,很多程序提供了两种参数传递方式:1、值调用,2、引用调用
上面这段代码, jh 方法中的参数 a 和 b 被初始化为两个对象(a和b)的引用的拷贝,并没有调用声明的 a 和 b 的引用,
所以,在 jh 交换时,实质上交换的是这两个拷贝,并没有交易换原 a 和 b 的引用。
故答案是:A
- 【JAVA】数据交换,java方法参数
- java中交换两个数据的方法
- java day02 交换数据
- java 数据交换
- java 数据交换
- Oracle与Java之发布交换参数值的方法
- Java day02 方法(交换数据,普通形式)
- java分析可不可以调用方法交换两个数据(初级)
- dojo与java交换数据
- java 交换两个参数的值
- java方法(参数传递机制、实现值交换、形参不确定)
- hdoj2016(java)数据的交换输出(数组交换)
- * java 中的数组 对象数组 以及main方法中的参数 x y不用中间参数实现交换
- Java数据类型与JSON的数据交换
- JSON与java各种数据的交换
- Java之数据的交换比较
- JAVA-UDP初步:数据交换示例
- Java编程中 交换数据的值
- 1A HDU1498 & poj3041
- java虚拟机运行时数据区域
- IPC详解
- 【Android_View】ImageView源码简析笔记(五)
- js 遇到的坑clear
- 【JAVA】数据交换,java方法参数
- Is It A Tree? -- HDOJ
- sum-root-to-leaf-numbers
- mysql
- win10装ubuntu双系统启动时卡在命令行
- css实现鼠标悬停图片放大显示
- 由日期转换成星期几
- Yii2 Layout 传值实现和原理
- c语言typedef的用法