public class EqualsTest {
public static void main(String[] args) {
String str = "string";//放入常量池中
String str2 = "string";
String str3 = new String("str");
String str4 = "str";
String str5 = new String("str");
System.out.println(str == str2);//true
System.out.println(str.equals(str2));//true
System.out.println(str3 == str4);//false
System.out.println(str3.equals(str4));//true
System.out.println(str3 == str5); //false
System.out.println(str3.equals(str5));//true
}
}
equals和==的最大区别就是一个是方法,一个是运算符
==:如果比较的对象是基本数据类型;则比较的是值是否相等
如果比较的是引用数据类型,则比较的是对象的地址值是否相等
equals():用来比较方法两个对象的内容是否相等。
注意:equals()方法不能用于基本数据类型的变量,如果没有对equals()方法进行重写,则比较的是引用类型变量所指向的对象的地址。
String类型有两种内存方式:
(1) String str = "string"; //是将变量值存放到常量池
(2) String str2 = new String("string");//是在堆内存中
如果再创建String str3 = "string";//这时常量池中存在变量值"string"
将直接把"string"的引用值传给str3
Equals与==区别
猜你喜欢
转载自blog.csdn.net/fighting_mjtao/article/details/81208535
今日推荐
周排行