频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

java方法的传参问题

来源:中国IT实验室 作者:佚名 出处:巧巧读书 2008-06-24 进入讨论组
  • 关 键 词:
  • java

       上java课的时候,老师讲java所有的参数都是pass by value,以前感觉很困惑,一直感觉对象是通过引用传递的。今天测试了一些才发现其中的奥秘。 java中如何交换两个值?对于基本类型: view plaincopy to clipboardprint?

    public static void swap(int args[]){

          int temp=args[0];

          args[0]=args[1];

          args[1]=temp;

      }

      public static void swap(int args[]){

            int temp=args[0];

            args[0]=args[1];

            args[1]=temp;

        }对于引用类型,一般也需要这种使用数组的方法。以前一直以为 swap(Object o1,Object o2)能够实现交换功能,测试过之后才知道这是自己一厢情愿的想法。在swap(Object o1,Object o2)中,o1和o2只是调用时外部对象引用值的拷贝,内部对它们的修改不会改变外部的实际值。但是如果调用了引用所指向的对象的方法的话,那确确实实是会执行的。做下面的测试验证一下: view plaincopy to clipboardprint?
    public class Test{

        public static void modify(StringBuffer buffer){

            buffer.append("world");

            buffer=new StringBuffer("no effect!");

        }

        public static void main(String args[]){

            StringBuffer stringBuffer=new StringBuffer("hello ");

            System.out.println(stringBuffer);

            modify(stringBuffer);

            System.out.println(stringBuffer);

        }

    }

更多文章 更多内容请看Java环境安装配置Java编程开发手册Java的类专题,或进入讨论组讨论。
收藏此文】【 】【打印】【关闭
较早的文章:JPA中的集合查询示例

较新的文章:利用iText写PDF心得
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章