精通Java 面试 03题 == 和 equals 的区别

问题:

== 和 equals 的区别?


学习内容:

== :对比的是栈中的值,基本数据类型是变量,引用数据类型是堆中内存对象地址。
equals: 对比的是具体的内容(字符串中的内容);


测试题:

String str1 =“hello”; // 放在 堆中 常量池里
String str2 = new String(“hello”); // new 一个新地址
String str3 = str2; // 指向 new 的新地址

以上
str1== str2 // ?
str1== str3 // ?
str2== str3 // ?
str1.equals(str2); // ?
str1.equals(str3); // ?
str2.equals(str3); // ?


答案:
str1== str2 // false
str1== str3 // false
str2== str3 // true
str1.equals(str2); // true
str1.equals(str3); // true
str2.equals(str3); // true


总结一句话:

== :对比的是栈中的值,基本数据类型是变量,引用数据类型是堆中内存对象地址。
equals: 对比的是具体的内容(字符串中的内容)。

你可能感兴趣的:(精通Java面试题,java,面试,开发语言)