Java参数传递

基本数据类型:

byte、short、int、long、boolean、float、double、char
每一个基本数据类型都有一个对应的封装类。
Byte、Short、Integer、Long、Boolean、Float、Double、Character
引用类型:
类、抽象类、接口
class、abstract class、interface
不管是你自己定义的类,还是Java给你提供的类。

值传递

值传递适用于Java的基本数据类型。
String在这种传参的情况下和基本数据类型是一致的。
复印身份证后,身份证+复印件,如果把复印件上的内容
改了,和原件有关系吗!
)
在这里插入图片描述

在这里插入图片描述

引用传递

应用传递适用于Java的引用数据类型。
数组也是属于引用数据类型。
int[] a = new int[10];
int[] b = new int[]{1,2,2,3,3,};
但是String除外。

对象名中存储的是对象在堆内存中的首地址。
把对象名中的首地址,拷贝一份传入到另一个对象名(变量)中,这个时候两个(N个)对象名中存储的地址就是一致的,
你使用任何一个对象名去修改它所指向对象的内容,其他的对象名的也会跟着改变,因为指向的是同一个对象。
在这里插入图片描述 Java的内存优化技术:在声明时,如果两个变量值一样,目前两个变量的值在内存中只有一份拷贝,如果其中一个变化,此时产生新的拷贝。