java值传递
- 值传递 :方法接收的是实参值的拷贝,会创建副本。
- 引用传递 :方法接收的直接是实参所引用的对象在堆中的地址,不会创建副本,对形参的修改将影响到实参。
Java 中将实参传递给方法(或函数)的方式是 值传递 :
- 如果参数是基本类型的话,很简单,传递的就是基本类型的字面量值的拷贝,会创建副本。
- 如果参数是引用类型,传递的就是实参所引用的对象在堆中地址值的拷贝,同样也会创建副本。
举例说明:
public class PassByValue {
public static void main(String[] args) {
char[] name = {'外卖', '小冰糖'};
System.out.println("调用方法前:" + new String(name));
paramTest(name);
System.out.println("调用方法后:" + new String(name));
}
private static void paramTest(char[] n) {
n = new char[2]; // 添加此行代码
n[1] = '神';
System.out.println("方法中修改为:" + new String(n));
}
}
如果是值传递的话:name -> {'外卖', '小冰糖'}, 并且 n -> {'外卖', '小冰糖'}
如果是引用传递的话:name -> {'外卖', '小冰糖'},但是 n -> name
这样子的话修改n的内容将会改变name的内容,但实际的输出并不是这样子的, n = new char[2]并没有改变name的内容,故java用的是值传递
调用方法前:外卖小冰糖
方法中修改为:神
调用方法后:外卖小冰糖
===============================================================
推荐一个公众号:外卖小冰糖
领券下单更便宜,一起薅平台羊毛,所得俑金对半分,超过0.3元即可返回无套路。
他主要有以下几点优势:
1.安静:不会每天推送消息打扰人。
2.返俑:你每下一个单都会获得一定的俑金,每单能拿到0.5-1元这样的金额,每天晚上8点左右自动通过微信零钱转给你,首次下单额外补贴0.5元俑金。
3.公众号内部提供一些小游戏,无聊的时候可以玩一玩,如:人生重开变态版,2048,飞机滑行等小游戏。
4.提供一些工具类的功能,如查看每日天气,每日英语,二维码生成,短链生成等。
希望能帮助到大家,祝大家生活愉快!!