Java中函数参数是值还是对象的问题
2017-08-30 21:33
429 查看
首先,Java中的函数传参只有值传递,不存在其他的形式
如果是传递基本数据类型,那没什么好说的,传的是值。
如果是传递的对象,传递的也是值,这个“值”是该对象的引用的副本,本质上是一个内存地址。
举例如下:
public static void main(String[] args) {
String s = "aaa";
change(s);
System.out.println(s);
}
public static void change(String s){
s="bbb";
}在函数change(String s)中的s是main方法中s的一个副本,当执行代码s="bbb"时,只是将s这个副本从指向"aaa"变成指向字符串常量池中的"bbb",对于main中的s,并没有影响,它依然指向"aaa"。
如果是传递基本数据类型,那没什么好说的,传的是值。
如果是传递的对象,传递的也是值,这个“值”是该对象的引用的副本,本质上是一个内存地址。
举例如下:
public static void main(String[] args) {
String s = "aaa";
change(s);
System.out.println(s);
}
public static void change(String s){
s="bbb";
}在函数change(String s)中的s是main方法中s的一个副本,当执行代码s="bbb"时,只是将s这个副本从指向"aaa"变成指向字符串常量池中的"bbb",对于main中的s,并没有影响,它依然指向"aaa"。
相关文章推荐
- 关于Java对象作为参数传递是传值还是传引用的问题
- java 函数参数的传递问题。
- JavaWeb开发之Servlet中的线程问题及使用ServletConfig对象操作Servlet中的参数
- 在JavaScript中使用Qt对象成员函数的参数及返回值问题
- 关于java以对象为参数传值问题
- 关于C#函数对象参数传递的问题
- 关于C#函数对象参数传递的问题
- python函数的参数传递问题---传值还是传引用?
- C++中关于将fstream对象作为函数参数传递相关问题说明
- java面试题解惑:当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
- 有关java的函数调用返回值的问题和参数传递问题
- JAVA 通过 JNA 调用 C程序 dll 函数传入中文参数问题
- Android 访问Webservice接口,参数对象不能串行化问题解决(java.lang.RuntimeException: Cannot serialize)
- 关于C#函数对象参数传递的问题
- 关于C#函数对象参数传递的问题
- JAVA中涉及函数参数的传递问题。
- python函数参数是值传递还是引用传递(以及变量间复制后是否保持一致):取决于对象内容可变不可变
- asp.net(C#)函数对象参数传递的问题
- python函数参数是值传递还是引用传递(以及变量间复制后是否保持一致):取决于对象内容可变不可变
- asp.net(C#)函数对象参数传递的问题