TangGodBlogs

java中方法传参

Word count: 434 / Reading time: 2 min
2018/07/26 Share

这里写图片描述

这里写图片描述

1).方法传参中调用者传的对象与使用者得到的对象,指向的是同一个内存地址,
所以修改的是同一个对象。(不做clone操作的情况下)
例:
1.图中所有调用list对象的方法,引用的都是同一个list内存对象。
2.图中 ref2的user(从list中取出的)与main中的user1指向的是同一个对象,所以当调用完,
返回main方法时,再修改user1仍然修改了list中的user对象的值。
3.图中ref2中的user如果是重新new出的话,返回到main方法时,再修改user1则不对list中
user对象的值生效,因为他们指向的不是同一个内存对象。
//不能传递修改的:
4.当传递方法参数类型为基本数据类型(数字以及布尔值)时,一个方法是不可能修改
一个基本数据类型的参数。
5.在Java中,String是一个引用类型,但是在作为参数传递的时候表现出来的却是基本
类型的特性,即在方法中改变了String类型的变量的值后,不会影响方法外的String变量的值。
(一个是String实际上操作的是char[],可以理解为String是char[]的包装类。二是给String变量
重新赋值后,实际上没有改变这个变量的值,而是重新new了一个String对象,改变了新对象
的值,所以原来的String变量的值并没有改变。)
6.基本变量的包装类也无法改变引用值。(因为value属性为final) 可以使用反射来修改引用值
Stack 寨 Heap 堆
参考文章:https://www.cnblogs.com/lixiaolun/p/4311863.html

CATALOG