java求解答!字符串!
A:“beijing”==“beijing”;B:“beijing”.equalsIgnoreCase(newString(“beijing”));两者都是true吗?要...
A:“beijing”==“beijing”;
B:“beijing”.equalsIgnoreCase(new String(“beijing”));
两者都是true吗?要详细过程 展开
B:“beijing”.equalsIgnoreCase(new String(“beijing”));
两者都是true吗?要详细过程 展开
展开全部
两者确实都是true
A java里string常量会自动缓存起来。比如"beijing"实际上是"beijing".intern()
如果你写"beijing" == new String("beijing")这个就是false
但是如果调用缓存内的:"beijing" == new String("beijing").intern()这个就又是true了
也就是说,“beijing"=="beijing"会是true,是因为JVM内部一个优化步骤的副产品,写程序的时候是不应该依赖这个现象的。需要对string内容进行比较时应该使用String.equals(String)。
B equalsIgnoreCase是对内容不区分大小写进行比较。在这个方法里,A和a是一样的。
A java里string常量会自动缓存起来。比如"beijing"实际上是"beijing".intern()
如果你写"beijing" == new String("beijing")这个就是false
但是如果调用缓存内的:"beijing" == new String("beijing").intern()这个就又是true了
也就是说,“beijing"=="beijing"会是true,是因为JVM内部一个优化步骤的副产品,写程序的时候是不应该依赖这个现象的。需要对string内容进行比较时应该使用String.equals(String)。
B equalsIgnoreCase是对内容不区分大小写进行比较。在这个方法里,A和a是一样的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
A:
不能算错误,但一般不这么写,用equals比较有意义,例如equals是判断的两个字符串是否相 等,而"=="是比较他们的首地址(就是判断是否是同一个字符串)
B:
"beijing".equalsIgnoreCase(new String ("beijing")),后面的括号可以加数据类型? 语法是:
字符串1.equalsIgnoreCase(字符串2);而且equalsIgnoreCase是表示不区分大小的意思,也就是说"beijing"与"BEIJING"比较的结果也会是true的。
不能算错误,但一般不这么写,用equals比较有意义,例如equals是判断的两个字符串是否相 等,而"=="是比较他们的首地址(就是判断是否是同一个字符串)
B:
"beijing".equalsIgnoreCase(new String ("beijing")),后面的括号可以加数据类型? 语法是:
字符串1.equalsIgnoreCase(字符串2);而且equalsIgnoreCase是表示不区分大小的意思,也就是说"beijing"与"BEIJING"比较的结果也会是true的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
都是true
对于A没有定义变量 “beijing”都是在常量池中 ==是比较地址 故相同
对于B equalsIgnoreCase值比较内容 所以一定正确了
对于A没有定义变量 “beijing”都是在常量池中 ==是比较地址 故相同
对于B equalsIgnoreCase值比较内容 所以一定正确了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
哈哈,这个我之前也是很迷糊的,不过得到高手的指点也算是略懂,在这跟您交流一下,看是否对您也有所帮助
A所表达的意思是直接比较"=="左右两边的字符串的内存指针是否指向同一地址
B是比较的实体内容,作为一个字符串去逐个判断的
A所表达的意思是直接比较"=="左右两边的字符串的内存指针是否指向同一地址
B是比较的实体内容,作为一个字符串去逐个判断的
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询