代码解释“==”与“.equals()”的区别
我们先来看一道题:
public class test {
public static void main (String args[]){
String s1=new String("hello");
String s2=new String("hello");
System.out.println(s1==s2);
System.out.println(s1.equals(s2));
}
}
运行结果:
false
true
为什么“==”和“equals”不同?区别到底在哪里?
请看下面的代码
public class ceshi {
public static void main (String args[]) {
int s1=1,s2=1; //定义赋值类整型
String a1="qwe",a2="qwe"; //定义赋值类字符串型
String b1=new String("hello"); //定义引用类字符串
String b2=new String("hello");
System.out.println("s1==s2 :"+(s1==s2)); //测试赋值类整型
System.out.println("a1==a2 :"+(a1==a2)); //测试赋值类字符串型
System.out.println("b1==b2 :"+(b1==b2)); //测试引用类字符串
// System.out.println(s1.equals(s2)); int作为基本类型,不是对象,不可以用equals哦~
System.out.println("a1.equals(a2) :"+a1.equals(a2));
System.out.println("b1.equals(b2) :"+b1.equals(b2));
}
}
/*
作者:秃头少女刘小花
日期:2019.7.24
转载请注明原作者。
*/
显而易见,对于基本数据类型,equals和没有区别。
但是对于 引用类型 ,只能使用equals来比较两者内容是否相同。如果在引用类型中,使用比较,那么,比较的其实是两者的引用地址是否相同。
作者:秃头少女刘小花
日期:2019.7.24
转载请注明原作者。