当前位置:  编程技术>java/j2ee

java中的值传递和引用传递的区别分析

    来源: 互联网  发布时间:2014-10-22

    本文导语:  传值---传递基本数据类型参数 代码如下:public    class           PassValue{    static void exchange(int a, int b){//静态方法,交换a,b的值        int temp;        temp = a;        a = b;        b = temp;    }    public static ...

传值---传递基本数据类型参数

代码如下:

public    class           PassValue{
    static void exchange(int a, int b){//静态方法,交换a,b的值
        int temp;
        temp = a;
        a = b;
        b = temp;
    }
    public static void main(String[] args){
       int i = 10;
       int j = 100;
       System.out.println("before call: " + "i=" + i + "t" + "j = " + j);//调用前
        exchange(i, j);                                                                    //值传递,main方法只能调用静态方法
        System.out.println("after call: " + "i=" + i + "t" + "j = " + j);//调用后
    }
}

运行结果:
代码如下:

        before call: i = 10        j = 100
        after    call: i = 10        j = 100
 

说明:调用exchange(i, j)时,实际参数i,j分别把值传递给相应的形式参数a,b,在执行方法exchange()时,形式参数a,b的值的改变不影响实际参数i和j的值,i和j的值在调用前后并没改变。
引用传递---对象作为参数
代码如下:

class Book{
    String name;
    private folat price;
    Book(String n,    float ){                //构造方法
        name = n;
        price = p;
    }
    static  void  change(Book a_book,    String n,    float p){    //静态方法,对象作为参数
            a_book.name = n;
            a_book.price = p;
    }
    public void output(){        //实例方法,输出对象信息
        System.out.println("name: " + name + "t" + "price: " + price);
    }
}
 public class PassAddr{
    public static void main(String [] args){
        Book b = new Book("java2",    32.5f);
        System.out.print("before call:t");        //调用前
        b.output();
        b.change(b,    "c++",    45.5f);            //引用传递,传递对象b的引用,修改对象b的值
        System.out.print("after call:t");            //调用后
        b.output();
    }
}

运行结果:
代码如下:

        before    call:    name:java2        price:32.5
        after       call:    name:c++          price:45.5

说明:调用change(b,"c++",45.5f)时,对象b作为实际参数,把引用传递给相应的形式参数a_book,实际上a_book也指向同一个对象,即该对象有两个引用名:b和a_book。在执行方法change()时,对形式参数a_book操作就是对实际参数b的操作。

    
 
 

您可能感兴趣的文章:

  • Java中的值传递和引用传递实例介绍
  • 在java网络编程中,传递数据时,如何把二维数组从客户端传递到服务器端?请教大家,谢了
  • java applet和servlet之间是否可以传递对象?
  • java中如何使参数传递按传"引用"方式进行?
  • java的基本型数据,比如int,char在函数参数中能否“按址传递”
  • 在java application中,2个窗体间如何传递参数?
  • Jsp中Java和JavaScript之间如何传递变量?
  • java及C++中传值传递、引用传递和指针方式的理解
  • 请问在java里传递方法的可选参数是如何实现的
  • 如何用jacob包,从Java和com之间传递二维数组?
  • linux下JNI给JAVA传递中文的问题
  • 刚才发现了一个很严重的问题,java传递参数的时候不能检查正确?
  • 请问java程序调用外部exe文件,怎么传递参数
  • 如何在VC和JAVA间传递汉字,哪个晓得?
  • 如何用Java通过POST方法向HTTP接口传递数据?
  • 写一个方法,向它传递一个对象,循环打印出对象层次结构中的所有类?thinking in java里面的一个习题不知道如何做请教高手?
  • java中String字符串的传递。(引用)
  • 关于JAVA类方法中参数据传递
  • 我使用corba将Java和C程序连接起来,由Java向C传递一个字符串,但是我发现我原来的0a被换成了0d 0a,那位给各解释。
  • 又是java参数传递的问题,看里边的例子。。。
  • Java中弱引用和软引用的区别以及虚引用和强引用介绍
  • java的引用类型的详细介绍
  • 奇怪?我在jsp中调用java类。java类本身编译没错,但jsp中的引用Tomcat总是报错。
  • java支持引用吗?
  • java用什么方法代替C++里的引用功能,菜鸟小问题
  • JAVA中函数调用时,能不能向 C/C++一样函数的入口参数可以为传出值(就是引用,或指针)
  • Java中方法调用到底是按值,还是按引用???
  • 浅析Java方法传值和传引用问题
  • JAVA中如何实现对基本类型的引用?
  • 在java中如何使用一“引用”。
  • java程序执行时,引用类何时装载?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 我想编程分析任意一个java文件,把其中的注释部分删掉,请帮我分析一下思路和方法好吗?
  • 急!请问有分析java程序性能瓶颈的工具吗?例如,统计 java 程序中函数调用次数?
  • Java 代码分析工具 JHawk
  • Java程序性能分析工具 VisualVM
  • Java 静态分析工具 JArchitect
  • Java监控和分析 Memory Analyzer
  • 基于Java的磁盘分析工具 JDiskReport
  • Java运行分析工具 jSonde
  • Java包依赖分析插件 ModelGoon
  • Java 网络数据分析包 JNetStream
  • Java多线程实时分析工具 mtrat
  • Java代码覆盖测试分析工具 Clover
  • Java内存使用分析 HeapAnalyzer
  • UIMA分析引擎 UIMA Java
  • 输出java进程的jstack信息示例分享 通过线程堆栈信息分析java线程
  • 使用java如何分析系统不能识别的字符串?
  • Java动态跟踪分析工具 BTrace
  • Java代码Bug分析插件 FindBugs
  • Java文档分析工具 DoctorJ
  • Java包依赖分析 jDependency
  • java命名空间java.sql类types的类成员方法: java_object定义及介绍
  • 我想学JAVA ,是买THINK IN JAVA 还是JAVA2核心技术:卷1 好???
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: imageflavor定义及介绍
  • 请问Java高手,Java的优势在那里??,Java主要适合于开发哪类应用程序
  • java命名空间java.lang.management类managementfactory的类成员方法: getcompilationmxbean定义及介绍
  • 如何将java.util.Date转化为java.sql.Date?数据库中Date类型对应于java的哪个Date呢
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getlibrarypath定义及介绍
  • 谁有电子版的《Java编程思想第二版(Thinking in java second)》和《Java2编程详解(special edition java2)》?得到给分
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getstarttime定义及介绍
  • 本人想学java,请问java程序员的待遇如何,和java主要有几个比较强的方向
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: stringflavor定义及介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3