1.值传递
值传递适用于Java中的基本数据类型和String字符串。
byte,short,int,long,float,double,char,boolean,String
传递方式:
1.定义在栈内存中
2.变量名中存储的是值
3.将值拷贝一份传入到另一个变量名
eg: byte i =1
int j=i
2.地址分配
一般定义对象的方式是 类名 对象名 = new 构造方法名(参数)
但如果这样
类名 对象名;
对象名 = new 构造方法(参数值,...);
对于对象名 储存在栈内存中 而其属性和方法储存在对内存中
当对对象调用时 会直接访问栈内存中储存的对象的地址
3.引用传递
适用于Java中的对象类型和数组
对象类型就包含了(class,interinterface,abstract class定义的类)
传递方式:
1.对象名在栈内存中,对象堆内存中
2.对象名中存储的是对象在堆内存中的首地址。
3.将对象名中存储的首地址拷贝一份存入到另一个对象名中
eg: 当定义一个Student 类之后
实例化stu1 和stu2两个对象
使stu1=stu2
此时stu2的地址改为了stu1的地址
而此时如果改变stu1的属性和方法则stu2也会受到影响
另外 当stu1=stu2这一步执行之后 JAVA程序会自动对stu2在堆内存中存储的内容进行释放