StringBuffer temp = new StringBuffer("房屋/房地产");
        String test1 = temp.toString();
        if (test1 == "房屋/房地产") {
            System.out.print("dd");
        }上面一段代码不能打印,下面可以打印,
        String test2 = "房屋/房地产";
        if (test2 == "房屋/房地产") {
            System.out.print("dd");
        }帮小弟一把

解决方案 »

  1.   

    这太正常了
    test1、test2只是引用
    test1是指向一个新建的String对象,当然不等于"房屋/房地产"
    test2指向"房屋/房地产"
    用test1.equals("房屋/房地产")就能打印了
      

  2.   

    在java中对字符串型的变量作比较,请用xxx.equals(xxx)原因楼上已经说了
      

  3.   

    == 比较的是两个字符串的引用是否相同,
    equals() 比较的是两个字符串的内容是否相同,当然,引用相同的话,内容自然就相同了
      

  4.   

    怎么会“很久了”还不知道呢 我在《JAVA核心》里看到过专门讲解这部分内容的章节
    小弟初学 向各位高手致敬
      

  5.   

    比较字符串是否相同,最好用equals()方法,==比较的是对象的引用