Java值传递和引用传递(附带实例)
在 Java 中,方法参数的传递有两种形式,分别叫做值传递和引用传递。
【实例】在项目中创建类 MethodDemo02,实现值传递,代码如下:
程序运行结果为:
【实例】在项目中创建类 MethodDemo03,实现引用传递,代码如下:
程序的运行结果为:
Java值传递
方法参数中的基本数据类型使用的是值传递,使用的值分别是 byte、short、int、long、float、double、char 和 boolean。当把一个基本数据类型的变量作为参数传递给方法时,实际上是将该变量的值复制一份传递给方法的形式参数。【实例】在项目中创建类 MethodDemo02,实现值传递,代码如下:
public class MethodDemo02 { public static void main(String[] args) { //将 30 值再次赋值给 num, num=30 int num=30; method01(num); System.out.println("num ="+num); } public static void method01(int num){ //将 20 的值赋值给 num, num=20 num=20; } }在上述代码中,我们在 method01 方法中修改了 num 的值,但不会改变外部 num 的值。
程序运行结果为:
num = 30
Java引用传递
方法参数中的引用数据类型,使用的是引用传递。当把一个引用数据类型的变量作为参数传递给方法时,传递的是该变量引用的对象的内存地址,在方法内部对引用指向的对象进行修改会改变外部实际参数引用的对象。【实例】在项目中创建类 MethodDemo03,实现引用传递,代码如下:
public class MethodDemo03 { public static void main(String[] args) { String s=new String("world"); method01(s); System.out.println("s ="+s); } public static void method01(String str) { String s1=new String("hello"); } }在上述代码中,method01 方法中对 String 对象的修改会影响外部的 String 对象。
程序的运行结果为:
s = world