大家有没有这个疑问:基本数据类型与引用数据类型作为传参时什么时候能修改到实参的值呢?
基础数据类型如int,是不能修改到实参的,这个我就不出图;那引用数据类型如类,接口,数组;下面以类为例子,列举了String类,自定义类,List作为分析;
发现的规律是 对于类而言:形参跟实参是同一份hashcode,为啥String不是呢,String是不可变对象,List可以明显看到刚开始是跟形参是同一个,后面加了元素后就产生新的地址;
1 String类:如下图,可以明显看到传参与实参不同hashcode
2 List:传参后会产生新的hashcode
3 自定义类:可以明显看到传参与实参相同hashcode