首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

请问两个String对比的内存有关问题

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

请教两个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);


热点排行
Bad Request.