日期:2014-05-20  浏览次数:20563 次

请教两个String对比的内存问题
“beijing”==“beijing”;
“beijing”.equalsIgnoreCase(new String(“beijing”))

这两句话在内存中分别是怎么比对String型值的?
返回结果分别是神马?

------解决方案--------------------
引用:

引用:
引用:“beijing”==“beijing”;
因为就一个 字符串,又不是new出来的,所以 默认指向同一个地址,所以 为true

.equalsIgnoreCase
和.equals 一样, 这个就是不区分大小写,比较的内容

String比较似乎没有比较地址一说,虽然String 是对象!


String的【==】操作也是比较地址的,只是相同的字符常量指向同一个地址罢了。(见下面代码,返回false)
而String.equal(),就不用多说了,这个大家都知道,比较字符串内容。

        String a = new String("a");
        String b = new String("a");
        System.out.println(a == b);