首页 > 代码库 > java中的值传递和引用传递
java中的值传递和引用传递
先弄清楚两者的概念
按值传递:意味着当将一个参数传递给一个函数时,函数接收的是原始值的一个副本。因此,如果函数修改了该参数,仅改变副本,而原始值保持不变。
按引用传递:意味着当将一个参数传递给一个函数时,函数接收的是原始值的内存地址,而不是值的副本。因此,如果函数修改了该参数,调用代码中的原始值也随之改变。
函数传参:
1、原始数据类型是按值传递的。
public class test { public static void main(String[] args){ int i=1; change(i); System.out.println(i); } private static void change(int var) { // TODO Auto-generated method stub var=-var; }}
输出:1
2、对象就是传引用
public class test { public static void main(String[] args){ Person person=new Person(); person.i=1; change(person); System.out.println(person.i); } private static void change(Person tmp) { // TODO Auto-generated method stub tmp.i=100; }}
输出:100
String类型因为没有提供自身修改的函数,每次操作都是新生成一个String对象,所以要特殊对待。可以认为是传值。
Done!
java中的值传递和引用传递
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。