java里string是一个对象,使用==比较时是比较两个string对象的地址,而equals是比较两个string字符串的值,所以用equals和==进行比较会得到不同的结果,具体的可以参看java的一些书

解决方案 »

  1.   

    1句话,你如果想比较两个字符串是否相同,就用equals(),用==就会出错。
      

  2.   

    ==是判断对象的地址是否相同
    equals是比较对象的真实值
    “”肯定没有真实的值,或者说就不是对象 用==
      

  3.   

    String str; 
    str == null表示str这个reference不"指向"任何对象
    str.equal("")表示的是str"所指的"对象的值为字符串"",这个字符串里没有任何字符罢了
      

  4.   

    如果真的象各位所说的那样,那么下面的代码执行时候为什么会出现两个对话框
    String aaa = " ";
          if (aaa == " ")
          {
            javax.swing.JOptionPane.showMessageDialog(null, "1");
          }      if (aaa.equals(" "))
          {
            javax.swing.JOptionPane.showMessageDialog(null, "2");
          }
      

  5.   

    http://java.sun.com/developer/JDCTechTips/2004/tt0504.html#2
      

  6.   

    String aaa = " " ; 时,会在内存中生成一个String 对象,并赋值为“ ”,然后,用aaa指向它。
    当第二次出现了常量“ ”时,发现,在内存中已有了这种常量,于是,不重新生成,直接拿来使用。
    这样,导致 aaa==" "的结果为true;object1.equals(object2)并不总是比较两个对象的值,对于自己创建的对象,这种比较方式,也是比较两个引用所指的物理对象。
    如:class a
    {
      int kk;
      public a(int m)
    {
     kk=m;
    }
    }class test001
    {
     static public void main(String [] arg)
    {
       a  one=new a(12);
       a  two=new a(12);
       if(one.equals(two))
       System.out.println("true");
       else 
       System.out.println("false");
       
    }
    }
    结果为false.
     
      

  7.   

    to  icystone(石冰)String aaa = " ";这里aaa等于的是一个String常量,常量本来就只有一份,所以第一个if中比较他们的地址当然是相同的拉后面一个if不用解释了吧
      

  8.   

    最近见三、四次这样的问题了 建议楼主要看看基本的JAVA书本
      

  9.   

    回复人: kongkongye(飘在空中的汽水瓶) ( ) 信誉:100 关于>String aaa = " " ; 时,会在内存中生成一个String 对象,并赋值为“ ”,然后,用aaa指向它。
    当第二次出现了常量“ ”时,发现,在内存中已有了这种常量,于是,不重新生成,直接拿来使用。
    这样,导致 aaa==" "的结果为true;这个提法是完全错误的,之所以发生aaa==" "那样的情况,是因为“编译期”的优化,而不是“运行期”的检查。
    具体的,我楼上的那个超链接里面有官方详尽的解释(英文)
      

  10.   

    这样基础的问题到处都是,已经讨论N次了,楼主还是看看JAVA基础概念先!
      

  11.   

    判断字符串相等还是用str.equal("")
      

  12.   

    ==是比较两个所指的是不是一个地方的对象
    equal对于String类来说是比较两个对象的内容是不是一样,对于其他类默认是调用==
      

  13.   

    学习到了~~~vb.cuizm(射天狼) 也在这。呵呵
      

  14.   

    java里string是一个对象,使用==比较时是比较两个string对象的地址,而equals是比较两个string字符串的值,所以用equals和==进行比较会得到不同的结果,