时间:2021-05-20
先使用int实验:
public class TTEST { private static List<UserEntity> mList = new LinkedList<UserEntity>(); public static void main(String[] args) { int a = 0; changeA(a); System.out.println("a = "+a); } public static void changeA(int a){ a = 1; } }输出:a = 0
这说明对于int值是按值传递。其他几个基本类型也是如此。
再使用自己定义的类UserEntity来实验:
public class UserEntity { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } } public class TTEST { public static void main(String[] args) { UserEntity userEntity = new UserEntity(); userEntity.setName("猿猴"); changeName(userEntity); System.out.println("name = "+userEntity.getName()); } public static void changeName(UserEntity userEntity){ userEntity.setName("忽必烈"); } }输出:name = 忽必烈
我们再来使用一个linkedList<Object>来实验:
import java.util.LinkedList; import java.util.List; public class TTEST { private static List<UserEntity> mList = new LinkedList<UserEntity>(); public static void main(String[] args) { UserEntity userEntity = new UserEntity(); userEntity.setName("石头"); addUser(userEntity); System.out.println("name = "+userEntity.getName()); } public static void addUser(UserEntity userEntity){ mList.add(userEntity); mList.get(0).setName("猿猴"); } }输出:name= 猿猴
这说明在使用我们自己定义的类时,是按引用传递的。
接着,再来使用String实验:
public class TTEST { public static void main(String[] args) { String str= "开始的"; changeStr(str); System.out.println("str = "+str); } public static void changeStr(String str){ str = "改变的"; } }输出:str = 开始的
用Integer做实验也会发现没有改变。
说明我们按照java内置的对象也是值传递。因此我们可以做如下总结:
只要我们自己定义的类创建的对象,都是引用传递,系统内置的基本类型和对象都是指传递。
总结
以上所述是小编给大家介绍的Java中的按值传递和按引用传递,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
java方法参数的传递有两种,值传递和引用传递。1.按值传递:参数类型是int,long等八大基本数据类型时,参数传递的过程是按值拷贝的过程如下代码public
最近遇到个有趣的问题:“JS中的值是按值传递,还是按引用传递呢?”在分析这个问题之前,我们需了解什么是按值传递(callbyvalue),什么是按引用传递(ca
在阅读本文之前,根据自己的经验和理解,大家可以先思考并选择一下Java函数的参数传递方式:A.是按值传递的?B.按引用传递的?C.部分按值部分按引用?此处暂不宣
今天研究了下Python中的传值问题,通常在C、C++中有按值传递和按引用传递两种情况,按值传递时会拷贝实参,而按引用传递时只是给形参赋了一个指向实参的指针,但
详解java的值传递、地址传递、引用传递一直来觉得对值传递和地址传递了解的很清楚,刚才在开源中国上看到一篇帖子介绍了java中的值传递和地址传递,看完后感受颇深