代考首页 | 代考价格 | 代考流程 | 证书查询 | 信誉评价 | 代考论坛 | 海外港台代考价格 | 题库报价
  思科CISCO | 微软MICROSOFT | 华为HCNE | ORACLE认证 | SUN认证 | CIW认证 | IBM认证 | LPI认证 | CCNA专题 | MCSE专题 | ADOBE | 仿真题库
   会员登陆
用户:
密码:

   代考详细流程

代考地图
代考思科CCNA认证
代考思科CCNP认证
代考微软MCP认证
代考微软MCSE2000
代考微软MCSE2003
代考微软MCSD.NET
代考LPI认证
代考微软全能认证
代考思科微软全能认证
代考思科全能认证
代考思科CCDA认证
代考思科CCDP认证
代考思科CCIP认证
代考思科CCSP认证
代考思科CCVP认证
代考微软MCTS技术专家
代考MCITP微软IT专家
代考MCPD专业开发人员

   IT代考--本站服务
  itsky100.comIT认证代考 联盟的 代考 机构,提供 CCNA 代考 ,MCSE 代考 ,MCP 代考 ,CCNP 代考 ,JAVA 代考 ,ORACLE 代考 等各种IT 认证替考 服务。
  免费提供 IT认证 学习资料 考试题库 CCNA CCNP JAVA CIW MCSE MCSD教学资料 免费下载。
  IT认证代考 ,具体操作在我们的考试中心进行,通过百分百,请您绝对放心。
 
 
 
 
 
 
  首页>>SUN认证>>正文
 
入门基础 Java参数传递方式
其实这个问题我原来翻译(破除java神话之二:参数是传址的 )、转帖别人的详细解释(Java 应用程序中的按值传递语义 )和专门解释( 我对《Java 应用程序中的按值传递语义》的理解 )过,不过现在看来,原来翻译或者解释的角度是有问题的,从底层的角度解释并不直观,在交流的时候也容易引起误解,最终不能达成一致意见。下面以最终的效果来解释参数的传递方式:

1、对于原始数据类型,也就是int、 long、char之类的类型,是传值的,如果你在方法中修改了值,方法调用结束后,那个变量的值没用改变。
2、对于对象类型,也就是Object的子类,如果你在方法中修改了它的成员的值,那个修改是生效的,方法调用结束后,它的成员是新的值,但是如果你把它指向一个其它的对象,方法调用结束后,原来对它的引用并没用指向新的对象。
代码如下:
public class Tester {
    public static void main(String[] args) {
        int primitive = 2;
        changePrimitive(primitive);
        //primitive的值依然是2
        MyClass myClass = new MyClass();
        changeObject(myClass);
        //myClass仍然指向的是执行changeObject之前的那个对象
        //但是myClass.i等于3了
    }

    public static void changePrimitive(int primitive) {
        primitive = 3;
    }

    public static void changeObject(MyClass myClass) {
        myClass.i = 3;
        myClass = new MyClass();
    }
}

class MyClass {
    int i;
}

    对于远程调用,无论是什么类型,调用结束后,传入的参数和以前没用任何变化(当然前途是直接调用远程方法,如果中间经过其它的Proxy类或者Facade类,不能保证那些类对对象没用修改)。至于是通过Local接口进行调用的,也应该属于本地调用,和上面说的情况应该是一致的。

 

 

版权所有 国际IT认证代考联盟网

Copyright (C) 2006 www.ITSKY100.com All rights reserved