-
方法传入实参,是否会修改实参具体值?
网络认知:如果是基本数据类型是传值调用不会影响实参本身,其他对象即引用类型是传引用调用,直接影响引用所指向的内存。
个人认知:永远不会影响实参的值,因为基本数据类型的值就是本身所代表的值,引用类型的值是指向对象的内存地址,如果你不修改引用指向,那么你可以改变引用所指向的对象内部的数据。当你修改了引用指向后,那么无论你如何操作都不会影响实参当前指向对象内部的数据。
示例:引用传递,虽然方法内重新指定了引用的指向,但是不会影响实参引用本身的指向,也就是引用的值不会变,你可以借他的手去修改对象,但是你没法修改他本身。
public static void change(StringBuffer a){
//实参a的值永远不变,这种方式没有多大意义,且逻辑混淆
a = new StringBuffer("change");
a.append("change");
}
爱家人,爱生活,爱设计,爱编程,拥抱精彩人生!