java没有指针,也就是不能传递地址,一切介对象。

解决方案 »

  1.   

    java中的引用和c++中的指针差不多啊~
    一个是传地址,一个是引用对象啊~
      

  2.   

    小衲认为Java中传的是Refrence,类似于C中的Refrence数组和其他object都是传Refrence,所以当把一个object传入一个方
    法内时要小心,因为在方法内对这个object的修改会”扩散“到
    方法外部。同样,在Return是也要注意,如果把一个类内部的
    field传递了出去,即使是一个private field,也会被”境外的反动
    势力“修改,从而封装性被破坏。
      

  3.   

    在Java中也有当然可以传递对象的地址,这在Java中叫做"句柄".Java中的句柄本质上与C++中的指针一模一样。唯一不同的是Java中的句柄不能够参加运算。
    而C++中的指针可以参加运算.
      

  4.   

    我觉得大家不用去对比java中的引用和c中的指针是不是一样。因为地址只是实现是为了满足java specification的中引用的一种方法,如果引用有另外的属性可以用,而有另外的方法可以更好的实现,那么引用就不会用单纯的传地址的方法来实现了。在学java时只要记住引用的功能就好了(尤其是不会c的朋友),具体怎么实现的理解不易运用在编程中(只能看成是猜想,用于加深对操作系统的理解)。例如:
    void methodA(AAA arg0[]){
    }arg0你认为是传的地址,但它却也是个对象。这单纯用传地址或传对象都难完美的解释。一般的朋友只要记住java specification中的对象的规定就可以了。所以我的建议是,无论学什么语言都要以它的specification为主,不要过多对比两个语言在实现上的异同。更不能把自己对语言实现的猜测用到编程实践上去。当然正确的理解对编程实践是有很大帮助的。例如学了《深度探索C++》后就会发现某某是怎么实现的,为什么怎样实现,在编程中就会避免许多bug.大家以为如何? 
      

  5.   

    JAVA不能传地址,引用本质上也不是地址。但JAVA也不是直接传对象。这么说吧,如果非要往C++上靠的话,JAVA在函数调用中传引用实际上是更类似于指针的,而和C++的引用没有任何相似之处。
    尤其是JAVA中的数组,它是个对象,不是个const指针。这是JAVA和C++比较大的一个区别。
    比如:
    String[] s = new String[3];
    这时s是一个对象,这个对象里面又有三个String对象。现在初始化的是对象s,但它里面的三个String仍然是null。这三个String要一个一个初始化:
    s[0] = new String("I love u");
    ...