本帖最后由 tuanjie 于 2014-1-14 10:52 编辑
下面是关于引用传递的的代码,代码都差不多,可结果运行却不一样,
引用传递一:
- class Demo{
- int temp = 30;
- }
- public class TestJava {
- public static void main(String[] args) {
- Demo d1 = new Demo();
- d1.temp = 50;
- System.out.println("fun方法调用之前:"+ d1.temp);
- fun(d1);
- System.out.println("fun方法调用之后" + d1.temp);
- }
- public static void fun(Demo d2){
- d2.temp = 100;
- }
- }
复制代码 运行结果:
fun方法调用之前:50
fun方法调用之后100
引用传递二:
- class Demo{
- String temp = "hello";
- }
- public class TestJava {
- public static void main(String[] args) {
- Demo d1 = new Demo();
- d1.temp = "world";
- System.out.println("fun方法调用之前:"+ d1.temp);
- fun(d1);
- System.out.println("fun方法调用之后:" + d1.temp);
- }
- public static void fun(Demo d2){
- d2.temp = "welcome";
- }
- }
复制代码 运行结果:
fun方法调用之前:world
fun方法调用之后:welcome
同样都是引用传递,只是Demo类中的temp类型变了,运行结果差别很大,谁能分析一下这是什么原因吗?
|