2023-06-04 18:04:02
Java是值传递吗?
结论:Java是值传递,基本类型传递的是自身值的副本,引用类型传递的是引用地址的副本。
详细说明:
值传递是指将实参复制一份传递到方法中,对形参的修改不会影响到实参
引用传递是指将实参的地址传递到方法中,对形参的修改会影响到实参。
首先基本数据类型肯定都是值传递,因为基本数据类型是保存在栈帧中的,每个方法都是一个新的栈帧,所以对形参的修改不会影响到实参。
对于引用类型,实际的内容是存在堆内存或者字符串常量池中的,变量保存的是内容的地址值,对形参重新赋值也就是指向新的对象,是不会影响到实参的。
如果是引用传递,那么下面的实参应该也会修改,但并不会。
1 | User user = new User("123","小明"); |