java字符串比较 有两种:
String str1 = "abc";
String str2 = "abc";
1) str1 == str2
2) str1.equals( str2 )
两者的区别在于 == 比较 两个字符串 的 地址空间 是否相同。 因为 对于 java 字符串常量 在内存中有共享的机制, 比如 str1 与 str2 实际上是指向 同一地址空间,故 str1==str2 为true。但是 str1=="abcd".subString(0,3) 为 false .
例如:
结果为:
而 str1.equals( str2 ) 始终比较两个变量的值。例如:
结果为:
两种比较的机制不同。
因此 , 如果比较两个字符串的值是否相同 ,千万不要用 ==
很神奇。。。