java--值传递与引用传递

1.实质:一切引用传递的本质上就是传值;

2.基本类型与引用类型:

   int num=10;  num是基本类型,值就是直接保存在变量中。

  String str="hello"; str是引用类型,变量中保存的只是实际对象的地址,一般称这种变量为“引用”,引用指向实际对象,实际对象中保存着内容。

3.搞清楚赋值运算符(=)的作用

 num = 20; 对于基本类型num,赋值运算符会直接改变变量的值,即原来的值会被覆盖掉。

str = "java"; 对于引用类型str,赋值运算符会改变引用中保存的地址,原来的地址会被覆盖掉。但是原来的对象不会改变(重要),("hello"的字符串对象没有被改变,但是没有被任何引用指向的对象是垃圾,会被垃圾回收器回收。)。

4.值传递,实质上就是复制一个实际参数的副本,将副本给你,调用的函数可以改变副本的值,但是原本的值并不会改变;

  引用传递,是指在调用函数时将实际参数的地址直接传递到函数中,那么在函数中对参数所进行的修改,将会影响到实际参数。

5.本质区别:值传递和引用传递的区别并不是传递的内容,而是实参有没有被复制一份传给形参;

 

posted @ 2020-09-22 09:51  未闻花名&2  阅读(183)  评论(0编辑  收藏  举报