`
shi11074037
  • 浏览: 9015 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

java方法参数传递

阅读更多
java方法参数传递面试题三则
发表于: java | 作者: darkmi | 日期: 2010/11/28 11:11
标签: 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";
System.out.println(str);
}

}
答案:

aaa
说明:
changString()方法仅仅使本地变量str指向了一个全新的字符串对象”aaabbb”,对main()方法中的str变量没有任何影响。

某网友对java方法参数传递的总结:

基础数据类型(int,char,……)传值,对象类型(Object,数组,容器……)传引用。

有说java方法参数都是传值的,理解方式不同而已。引用本身也是值(对象地址)。

传值方式,传递的是值的副本。方法中对副本的修改,不会影响到调用方。

传引用方式,传递的是引用的副本。此时,形参和实参指向同一个内存地址。对引用副本所指向的对象的修改,如修改对象属性、容器内容等,会影响到调用方。对引用副本本身(对象地址)的修改,如设置为null,重新指向其他对象,不会影响到调用方。

只要知道传引用时,也是传递的引用的副本,就比较容易理解了。

以上内容来源:http://blog.csdn.net/flyjimi/archive/2008/07/11/2638662.aspx
分享到:
评论

相关推荐

    Java方法参数传递机制原理解析

    主要介绍了Java方法参数传递机制原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    Java方法参数传递如何实现

    主要介绍了Java方法参数传递如何实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    java方法的参数传递其二.docx

    介绍java 方法的参数传递,本文是引用传递。

    java传递参数的方法

    java传递参数的方法 很的东西 大家下载学习一下

    11.java参数传递.zip

    11.java参数传递.zip11.java参数传递.zip11.java参数传递.zip11.java参数传递.zip11.java参数传递.zip11.java参数传递.zip11.java参数传递.zip11.java参数传递.zip11.java参数传递.zip11.java参数传递.zip11.java...

    浅析Java引用类型和方法参数传递

    浅析Java引用类型和方法参数传递,浅析Java引用类型和方法参数传递

    13.java参数传递之引用传递.zip

    13.java参数传递之引用传递.zip13.java参数传递之引用传递.zip13.java参数传递之引用传递.zip13.java参数传递之引用传递.zip13.java参数传递之引用传递.zip13.java参数传递之引用传递.zip13.java参数传递之引用传递....

    58.java参数传递机制.zip

    58.java参数传递机制.zip58.java参数传递机制.zip58.java参数传递机制.zip58.java参数传递机制.zip58.java参数传递机制.zip58.java参数传递机制.zip58.java参数传递机制.zip58.java参数传递机制.zip58.java参数传递...

    Jni中C和Java的参数传递.doc

    Jni中C和Java的参数传递.doc

    62.java引用类型的参数传递.zip

    62.java引用类型的参数传递.zip62.java引用类型的参数传递.zip62.java引用类型的参数传递.zip62.java引用类型的参数传递.zip62.java引用类型的参数传递.zip62.java引用类型的参数传递.zip62.java引用类型的参数传递....

    59.java基本类型的参数传递.zip

    59.java基本类型的参数传递.zip59.java基本类型的参数传递.zip59.java基本类型的参数传递.zip59.java基本类型的参数传递.zip59.java基本类型的参数传递.zip59.java基本类型的参数传递.zip59.java基本类型的参数传递....

    java参数传递

    这里详细的说明了,java参数传递的过程,引用传递,值传递

    java参数的传递与返回值

    java参数的传递与返回值 江苏省无锡市

    Java参数传递PPT

    关于Java参数传递的PPT,详细介绍参数传递的类型。彻底理解Java只有唯一传递方式——值传递。

    Java的引用和函数参数传递

    Java的引用和函数参数传递Java的引用和函数参数传递Java的引用和函数参数传递Java的引用和函数参数传递

    java参数传递 java 参数.doc

    java参数传递 java 参数

    Java方法的参数传递机制实例详解

    主要介绍了Java方法的参数传递机制,结合实例形式详细分析了java方法参数传递机制原理、实现方法及操作注意事项,需要的朋友可以参考下

    Java语言的方法参数浅析

    参数传递是Java语言中函数调用的重要步骤,清楚地了解参数传递的过程是编写出高质量程序所必须的.大多数程序设计语言具有传值调用和传引用调用的两种方法.通过对典型程序的研究与分析可以看出JAVA语言的参数传递总是...

    java 中函数的参数传递详细介绍

    java 中函数的参数传递详细介绍 java 中函数的参数传递详细介绍

    java参数传递学习demo

    java的参数传递对比,体现了值传递和引用传递的区别,是我在java入门是写的学习demo

Global site tag (gtag.js) - Google Analytics