0x01 基本数据类型的比较
如果有两个int型的变量判断判断是否相等,可以用“==”完成。
-
范例:观察基本数据类型比较
public class StringDemo { public static void main(String[] args) { int x = 10; int y = 10; System.out.println(x == y); } }
此时发现,“==”的结果是true,表示相等的。
0x02 String对象字符串的比较
-
范例:观察String直接使用“==”比较
public class StringDemo { public static void main(String[] args) { String str1 = "hello"; String str2 = new String("hello"); System.out.println(str1 == str2); } }
此时用“==”比较两个字符串的属性,发现是不等的,为了更好的说明原因,下面用内存图分析。
“==”是进行数值比较的,比较的是两个字符串对象在内存中的地址数值,如果要进行字符串内容的比较,比较的应该是字符串的地址内容,在String对象中,提供了对内容比较的方法。
-
示例:进行字符串对象内容比较
public class StringDemo { public static void main(String[] args) { String str1 = "hello"; String str2 = new String("hello"); System.out.println(str1.equals(str2)); } }
0x03 解释String类中“==”和"equals()的区别?【面试题】"
- “==”:进行的是数值比较,比较的是两个字符串对象的内存地址数值;
- “equals()”:可以进行字符串内容的比较;