java参数传递,引用还是拷贝
2016-04-19 14:41
381 查看
public class Foo{
public static void main(String [] args){
StringBuffer a = new StringBuffer("G");
StringBuffer b = new StringBuffer("H");
operate(a,b);
System.out.printlen(a+","+b)
}
private static void operate(StringBuffer x, StringBuffer y){
x.append(y);
y=x;
}
}
输出 GH,H;
java 都是拷贝传递(也就是所为的值传递)a的引用变量将自己的存储单元的内容传给了operate()方法的x的变量
也就是将实体对象的地址传给了x变量,在operate()方法中对x的一切操作都是针对x所指向的这个存储单元。
(x是StringBuffer值的一个引用副本)
Java
编程语言只有值传递参数-----当一个对象实例作为一个参数被传递到方法中时,参数的值就是该对象的引用一个副本。指向同一个对象,对象的内容可以在被调用的方法中改变,但对象的引用(不是引用的副本)是永远不会改变的。
相关文章推荐
- Java多线程与静态方法
- Java_Ant详解
- java 1.8 函数式编程
- SpringMVC 使用对象接收参数
- Java学习·Set
- 乔治棍子算法JAVA实现
- Java的HashMap和HashTable
- Java回调机制解析
- Spring
- 浅谈web应用中的会话
- java同步代码块
- 一个电脑同时运行 64bit 和 32bit 的eclipse 如何匹配 jdk环境
- Java中的数组
- Spring切入点表达式常用写法
- Java开发注意事项
- java.lang.ClassCastException: org.slf4j.impl.Log4jLoggerFactory cannot be cast to ch.qos.logback.classic.LoggerContext问题原因及解决方法
- 编写Android程序Eclipse连不上手机。
- Java命令学习系列(七)——javap
- Java命令学习系列(六)——jinfo
- Java命令学习系列(五)——jhat