好像Java中的引用和C++中的指针是相似的。
但是和C++中的引用就有些不一样了,呵呵~~

解决方案 »

  1.   

    其实Java中都是按值传递的。
    对于对象的传递,从写法上看像是按引用传递,但实际
    和C++中的指针值传递没有什么区别。
    在IBM的developerworks的Java区中有过一篇文章阐述过这个问题。
    你可以去看看。
      

  2.   

    我认为JAVA中的传值更多是象指针引用,是地址拷贝而不是值拷贝
      

  3.   

    C++中的指针可能移动或进行相关的指针操作
    char* p = new char[4];
    ++p = 'a';而java中的所谓的指针是不可以的,只能重新赋值。
    Object o1 = new Object();
    Object o2 = new Object();
    o1 = o2;而o1++ 或++o1类似的操作是绝对不允许的。
      

  4.   

    所以说Java的对象参数也是按值传递的。
    传递的是对象的地址值。
    不像C++的按引用传递。
    举个例子:
    Java程序
    Class A{
      void change(A o){
        o = null;
      }
      public static void main(String[] args){
        A a = new A();
        A b = new A();
        a.change(b);//这里执行后b!=null
      }
    }C++程序
    class A{
      public:
        void change(A &o);
    }
    void A::change(A &o){
      o = NULL;
    }void main(int argc,char** argv)
    {
       A a();
       A b();
       a.change(b);//这里b==NULL;
    }
      

  5.   

    java用引用而不是指针,完全是为了安全。
    多看看书你就会明白,我是从c++转java的,也有过迷茫阶段。
    共同学习了!