reference不是指针,但是类似于指针。reference根指针一样的地方在于他们都会指向一个实际的对象,通过对reference的操作,实现对对象的操作。但是reference根指针不同在于:指针仅仅是纪录了指向对象的实际位置,并不会纪录这个对象的相关信息,比如指向对象的类型,占用内存大小等信息。但是reference则会纪录这些信息,所以在java中进行类型转换的时候,必须要正确。例如:A类型的对象转换成B类型时,java要检查阿A型的对象是否与reference纪录的对象类型一致,如果不一致,则会抛出异常。而指针则没有这种功能。这样做起来比较安全。

解决方案 »

  1.   

    C/C++的指针---存储某个内存空间首地址的变量,可以修改,可以运算,可以指向任何开放的
    内存区域。Reference---受到限制的指针,不能运算的指针,可以指向其他对象,但是永远只能指向对象
    的内存首地址。Handle---句柄,句柄是WONDOWS用来标识被应用程序所建立或使用的对象的唯一整
    数。是WINDOWS为了实现封装性和安全性,把对象的真实的地址进行转化以后得到的
    一个32位DWORD。是微软包装过的指针。
      

  2.   

    上面几位说的很对,如果只是为了取得对象地址并且传递,那么指针和Reference功能完全相同,不过指针可以进行数学运算,所以容易出错,还是非常严重的错误
      

  3.   

    reference能不能指向基本型别?
      

  4.   

    reference就是java中的指针
    只是他不能进行运算
    而你说得handle是句柄,但在java中没有这个概念
      

  5.   

    reference也可以成为对象的引址,也可称为句柄,也可叫指针!
    你不要用他和别的比较来理解,这样容易混,你只需当前理解就可!
    现在我来给你讲一讲reference!
    他是对象的引址,他指向你当前的对象,如果把对象比喻成电视的话,他就是遥控器,他操纵对象的行为与属性!
    我不赞成hogcheng(老驴) 的看法,他说的是与早先的C来比较,可能有些不同,但与C++来比较,
    reference就可叫指针。C++也是面向对象的!!!
      

  6.   

    恩programer23(亮子 说的不错,他说的也已经够详细的了,相信你也应该明白了吧
      

  7.   

    reference就是 類似c++中的指針,一樓說的很明白了
      

  8.   

    可以參照<<java編程思想>>這本書裏面有介紹 reference是什麽,而且很詳細