做房产网站赚钱吗,电脑做网站,网站开发培训学费,重庆公司注册官网入口传值还是传引用是Java中很基础的一个问题#xff0c;也是笔试的时候经常被考察的一个问题#xff0c;总结一下。题目1#xff1a; 写出以下程序的输出内容。public class Test {public static void changeValue(int value){value 0;}public static void main(String[] args…传值还是传引用是Java中很基础的一个问题也是笔试的时候经常被考察的一个问题总结一下。题目1 写出以下程序的输出内容。public class Test {public static void changeValue(int value){value 0;}public static void main(String[] args) {int value 2010;changeValue(value);System.out.println(value);}}求输出结果。答案2010这个题目考察了java方法的参数传递问题。java中方法的参数传递为值传递不管这个参数是基本类型还是引用类型我们传递过去的都是该值的一个副本这个副本作为方法的局部变量保存在栈(stack)中。对于上面的 changeValue() 方法传递进来的是变量 value 的一个副本在 changeValue() 方法中修改的只是该方法的一个局部变量不会影响作为参数传进来的那个变量两者井水不犯河水。题目2 写出以下程序的输出内容。public class Test {public static void changList(List list){list.add(bbb);}public static void main(String[] args) {List list new ArrayList();list.add(aaa);changList(list);System.out.println(list.size());}}答案2说明main()方法在调用changeList()方法的时候changList()方法中的list变量是main()方法list变量的副本这两个list变量都指向heap中的同一ArrayList对象因此操作的也是同一对象。题目3写出以下程序的输出内容。public class Test {public static void changString(String str){str str bbb;}public static void main(String[] args) {String str aaa;changeString(str);System.out.println(str);}}答案aaa说明changString()方法仅仅使本地变量str指向了一个全新的字符串对象”aaabbb”对main()方法中的str变量没有任何影响。对java方法参数传递的总结基础数据类型(intchar……)传值对象类型(Object数组容器……)传引用。有说java方法参数都是传值的理解方式不同而已。引用本身也是值(对象地址)。传值方式传递的是值的副本。方法中对副本的修改不会影响到调用方。传引用方式传递的是引用的副本。此时形参和实参指向同一个内存地址。对引用副本所指向的对象的修改如修改对象属性、容器内容等会影响到调用方。对引用副本本身(对象地址)的修改如设置为null重新指向其他对象不会影响到调用方。只要知道传引用时也是传递的引用的副本就比较容易理解了。