[java]-java学习札记(1)-关于引用作参数传递
来源:互联网 发布:人员管理系统 php 编辑:程序博客网 时间:2024/05/17 08:30
class ValHold{
public int i = 10;
}
public class ObParm{
public void amethod(){
ValHold v = new ValHold();
another(v);
System.out.println(v.i);
}
public void another(ValHold v){
v.i = 20;
ValHold vh = new ValHold();
v =vh;
System.out.println(v.i);
}
public static void main(String[] argv){
ObParm o = new ObParm();
o.amethod();
}
}
此题的答案是
10
20
为什么不是
10
10呢?
这样解释吧,按照sun官方的说法:当一个引用变量作为参数传递给一个方法时, 在这个方法内可以改变变量的值,即改变引用指向的对象,(本题中将vh赋给v)但是方法的调用结束后,改变量恢复原来的值,即变量仍然指向原来的对象。 (即another(v)调用结束之后,v又回复到第一次ValHold v = new ValHold();时指向的地址空间。)
但是如果在方法内改变了引用指向的对象的数据(属性),那么当方法的调用结束后,尽管引用仍然指向原来的对象,这个对象的某个属性已经被改变了(v的i值在 执行v.i=20的时候就已经被改变了,所以调用another结束后,v.i已经变成了20)
- [java]-java学习札记(1)-关于引用作参数传递
- 关于java引用传递
- java参数传递(值传递还是引用传递)
- java参数传递(值传递还是引用传递)
- java参数传递(值传递还是引用传递)
- java参数传递(值传递还是引用传递)
- java参数传递(值传递还是引用传递)
- Java中String作参数传递问题
- java引用与参数传递
- JAVA关于参数传递
- 关于java参数传递
- 关于Java的引用和函数参数传递
- 关于JAVA中参数传递问题的总结(按值传递和引用传递)
- 【学习】java参数传递
- java关于值传递和引用传递
- java学习(1) 引用类型值类型区别 引用传递值传递的区别
- 【Java学习】java方法参数的值传递和引用传递
- Java学习之引用传递
- Java虚拟机(JVM)中的内存设置详解
- 2008年9月10日(9日没写)
- strncpy
- 产生条形码
- TIM学习文档2——TIM安装简介
- [java]-java学习札记(1)-关于引用作参数传递
- Linux内核模块编程引导
- TIM学习文档4——TIM基本架构
- 在linux平台下安装Oracle10g-“系统没有所需的交换空间”
- 优化Apache的性能
- TIM学习文档10——TIM系统部署1
- AJAX 同步与异步
- 最新的文件上传模型,支持多文件上传
- GridView控件实现无刷新数据操作