当前位置:  技术问答>java相关

java中的参数(对象)是怎样传递的?

    来源: 互联网  发布时间:2015-07-09

    本文导语:  如果是by reference: void swap(MyClass lhs, MyClass rhs) { MyClass temp = lhs; lhs = rhs; rhs = temp; } 却不行..... 但又不可能是值传递。 那么,到底是.................. | 如果你要交换地址,需要用好像c...

如果是by reference:
void swap(MyClass lhs, MyClass rhs)
{
MyClass temp = lhs;
lhs = rhs;
rhs = temp;
}
却不行.....

但又不可能是值传递。
那么,到底是..................

|
如果你要交换地址,需要用好像c++那样的双重指针才行,因为你传到swap里面的rhs和lhs,是swap函数的内部变量,怎么改变他们的指针,都指示影响到这两个变量的生存期内,也是就是swap函数内。对他们的外部没有影响,注意,这两个地址是用值的方式传进去的。你传的是这两个指针的内容(内存地址),不是指向这两个指针的指针,也不是这两个指针指向的内存内容。你要用这样的swap函数进行交换,就只能交换内容,因为你根本操作不了原来的两个内存引用对象。没有规定swap是交换指针的。
class TestClass{
  public int c;
}

public class testapp {
  //Construct the application
  public testapp() {
  }
  public void swap(TestClass tc1,TestClass tc2)
  {
    TestClass temptc=tc1;
    tc1=tc2;
    tc2=temptc;
    System.out.println("tc1("+tc1+") = "+ tc1.c + "     tc2("+tc2+") = "+tc2.c);
  }
  //Main method
  public static void main(String[] args) {
    TestClass tc1,tc2;
    tc1=new TestClass();
    tc2=new TestClass();
    tc1.c=1;
    tc2.c=2;
    testapp ta=new testapp();
    ta.swap(tc1,tc2);
    System.out.println("tc1("+tc1+") = "+ tc1.c + "     tc2("+tc2+") = "+tc2.c);
  }
自己看看结果如何吧。特别注意一下里面的内存指针,传到swap里面已经变了,只不过其内容是指向同一个内存块而已。

    
 
 

您可能感兴趣的文章:

  • Java中的值传递和引用传递实例介绍
  • 在java网络编程中,传递数据时,如何把二维数组从客户端传递到服务器端?请教大家,谢了
  • java applet和servlet之间是否可以传递对象?
  • java中的值传递和引用传递的区别分析
  • 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 tomcat实现Session对象的持久化原理及配置方法介绍
  • 各位高手知道在JAVA中如何用一个名称创建一个对象实例,并调用其方法,注意:在编写代码时并不知要创建的对象的类名,也并不知方法名
  • java里基本数据类型是什么?对象么?
  • Java中所有东西都是对象吗?
  • 能在JavaScript中访问Jsp页面的Java对象?
  • Java能调用OLE对象吗?怎样利用Java生成Excel报表?
  • 关于java中类和对象的问题.
  • Java 对象哈希映射库 JOhm
  • 通用并发 Java 对象池 Vibur Object Pool
  • Java对象数据库 ObjectDB
  • Java对象转换库 EZMorph
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 操作系统 iis7站长之家
  • java类中的方法就是函数了,函数参数全是传值了,传址参数怎样表示?
  • 各位高手:java是不是不支持缺省参数。为什么我在写一个类的构造函数时,加入缺省参数出现错误。
  • java中函数的缺省参数怎么定义?
  • JAVA里面的方法是怎么样把参数值返回?
  • 运行 java -native BlackBox 说没有-native 这个参数,怎么办?
  • gcc 编译java需要什么参数?
  • 高分请教: 如何用Java调用带多个参数的EXE文件?
  • 在java里是怎么实现一个方法返回多个参数的?
  • Java命令行参数处理类库 Commons CLI
  • Java 中的命令行参数怎么用代码行来表示?
  • 怎么在java中向一个sql语句传参数,就像oracle的proc一样啊?
  • 怎样在一个JAVA应用程序里,向一个SERVLET发出HTTP请求(带参数)???
  • java中方法调用参数的值不能改变吗?
  • 请问如何在java 命令的参数中指定JVM 的最大和最小内存
  • java可变参数使用示例
  • Java命令行参数处理 CLOPS
  • 反编译了一个Java类,但是发现里面由好多同名函数,同时参数一样,返回值不同,然后就编译不回去了!
  • 我想编一个把javac和java连起来用的批处理文件,请批处理文件中的参数怎么表示?
  • 请问java.awt.GridBagConstraints 中的insets(0,0,0,0)的参数具体指的是什么?
  • 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