java值传递和引用传递

 一、基本类型和引用类型
1.8种基本数据类型 int long short double float boolean char byte
基本数据类型的变量保存原始值,变量就是数据本身

2.引用数据类型
类类型(类,加载在方法区的,比如静态方法都是类类型)
 String name = "";
 Student stu = new Student();
接口类型
 数组


二、值传递和引用传递
值传递:在方法的调用中,实参将它的实际值传递给形参
(意味着传递了对象的一个副本,改变副本的值,不会影响原来的数)
eg: int a=3;
     int b=a;
 b=b+2;
 System.out.println(b);//5
 System.out.println(a);//3

引用传递:把对象的地址值传过去,函数接收的原始值的首地址值
(传递的不是实际的对象是对象的引用,引用对象所作的改变会反映到所有的对象上)
执行方法过程中,形参、实参的内容相同,指向同一块地址值,实际操作的是同一个数据
 int[] a= {1,2,3};
 int[] b=a;
 b[0]=b[0]+2;
 System.out.println(b[0]); //3
 System.out.println(a[0]); //3

特殊:
String是引用类型,参数传递是引用传递,但参数改变,不影响原数据
String是不可变类,参数改变时,指向的地址值发生了改变,但内容依旧是原来的内容

原文地址:https://www.cnblogs.com/yxj808/p/11945156.html