java – 将引用类型变量作为方法参数传递
发布时间:2020-12-15 08:32:01 所属栏目:Java 来源:网络整理
导读:运行下面的代码后,我得到这个输出: 前夕 1200 谁能解释一下为什么Person类型变量的值被改变而Integer类型变量的值不是? 我已经读过这个: www.javaworld.com/javaworld/javaqa/2000-05/03-qa-0526-pass.html www.yoda.arachsys.com/java/passing.html#form
运行下面的代码后,我得到这个输出:
前夕 1200 谁能解释一下为什么Person类型变量的值被改变而Integer类型变量的值不是? > www.javaworld.com/javaworld/javaqa/2000-05/03-qa-0526-pass.html 但我不明白为什么使用Person和Integer类型它的工作方式不同. public class Test { public static void main(String[] args) { Object person = new Person("Adam"); Object integer = new Integer("1200"); changePerson(person); changeInteger(integer); System.out.println(person); System.out.println(integer); } private static void changeInteger(Object integer) { integer = 1000; } private static void changePerson(Object person) { ((Person)person).name="Eve"; } } 解决方法
在Java中,primitive types(例如整数)总是由值专门处理,对象(例如您的Person)和数组总是由
reference专门处理.
如果传递原语,则将复制该值,如果传递引用类型,则将复制地址,因此存在差异. 如果你按照上面的链接和/或做一些googlin’你会发现更多. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |