Java里面没有地址的概念,你要地址干吗?

解决方案 »

  1.   

    java取消了指针的概念。不能直接对地址操作。
      

  2.   

    我并不需要直接对地址操作,只是想知道java是怎么判断两个对象的引用相等或不等的,如:
    String str1 = new String("123");
    String str2 = new String("123");
    那么它是怎样判断下面两个引用不相等的呢?
    str1==str2
      

  3.   

    这个工作应该是由jvm来做的吧。jvm当然知道给每个对象分配空间的地址了。
    最好还是用equals()方法来判断内容是否相等。
      

  4.   

    你用了两次new,自然就产生了两个对象,对两个引用分别指向两个不同的对象,你说相不相等。
    至于java内部怎么去判断对象是否同一个,jvm应该是根据对象在内存空间分配的地址,这个你大可不必去管。
    再也不用去管难缠的指针,再也不用担心内存溢出。
      

  5.   

    java中的对象其实都是引用,但你最好不要去考虑,否则会有麻烦,
    比如说
    String a = "123";
    String b = "123";
    String c = new String("123");则a==b为true;
    a==c 为false;如果要考虑java中的引用是否相等则要万分的小心!