例如
String str = “hello”;
String str1 = “hello”’
str == str1; 内存地址相同
而
String str = “hello”;
String str1 = new String(“hello”);
str != str1;
再然后
String str = “hello”;
String str1 = new String(“hello”);
str.equals == str1;
则
str.equals == str1;
返回true
但是今天遇到一个恶心的问题
for (int i = 0 ; i < arr.length; i++){
if (arr[i].equals(str) == true){
System.out.println(str + "在数组的第"+ (i + 1) +"个位置");
}
}
这个代码我的目的是判断这个【数组】与字符串【str】是否相等,如果为【true】,则继续输出
问题在于我写了
arr[i].equals(str) == true;
然后在eclipse里正常运行
在头歌里if语句根本无法执行,最后改为
arr[i].equals(str) //因为它的默认判断就是true
只能得出结论,因为每个编译器的内核不同,遇到的问题可能也不相同