在学习Java的过程中,经常会听到“值传递”和“引用传递”这两个概念。它们是Java中传递参数时所使用的两种传递方式。
值传递是指在方法调用时,将实参的值传递给形参。即在方法内改变形参的值,不会影响到实参的值。例如:
public void example(int num) { num = num + 1; System.out.println("方法内的值:" + num); } public static void main(String[] args) { int num = 1; example(num); System.out.println("方法外的值:" + num); }
在以上代码中,参数num在方法example中被修改,但是在程序的主方法中,num的值并没有发生改变。因此可以得出结论,Java中是采用值传递的方式传递参数。
而引用传递则是传递变量的地址给方法形参,也就是说,方法的形参得到的是传递对象的实际地址,当形参发生改变时,实参的值也会随之改变。下面是一个示例:
public void example(List<String> list) { list.add("Java"); } public static void main(String[] args) { List<String> list = new ArrayList<>(); example(list); System.out.println(list); }
通过以上代码可以看出,方法example中的形参list对应的是主函数中的实参list,因此在方法内部对list进行的操作也会改变主函数中的list的值。
综上所述,Java中采用值传递的方式传递参数,但传递对象时,采用的是将对象的引用地址传递给方法形参,即引用传递的方式。