关于值传递与引用传递
引用数据类型是引用传递(call by reference),基本数据类型是值传递(call by value)
值传递不可以改变原变量的内容和地址---》原因是java方法的形参传递都是传递原变量的副本,在方法中改变的是副本的值,而不适合原变量的
引用传递不可以改变原变量的地址,但可以改变原变量的内容---》原因是当副本的引用改变时,原变量 的引用并没有发生变化,当副本改变内容时,由于副本引用指向的是原变量的地址空间,所以,原变量的内容发生变化。
结论:1.值传递不可以改变原变量的内容和地址;
2.引用传递不可以改变原变量的地址,但可以改变原变量的内容;
对象赋值时,比如A=B,只是把A对象的地址指向了B对象的地址,所以其实对象只有一个
java中“==”比较地址,equals方法在String中被重载,相当于只比较值
内存引用地址,是指栈中存放的地址,来指向堆中的某个位置。
基本类型,数据直接存放在栈中,不存在内存引用地址。
基本类型,数据直接存放在栈中,不存在内存引用地址。
若A为子类object,B父类object,则
A=B // err
B=A,// ok
浙公网安备 33010602011771号