1.==用于比较引用数据类型和比较基本数据类型时具有不同的功能:
比较基本数据类型,如果两个值相同,则结果为true。
eg:
package demo;
public class Demo {
public static void main(String[] args){
Demo demo =new Demo();
int a = 1;
int b = 2;
System.out.println(demo.compare(a,b));
}
boolean compare(int x ,int y){
if(x==y){
return true;
}else return false;
}
}
这段代码返回false。
而在比较引用数据类型时,如果引用指向内存中的同一对象,结果为true
eg:
package demo;
public class Demo {
public Demo(){
}
public Demo(int x){
}
public static void main(String[] args){
Demo demo = new Demo();
Demo a = new Demo(123);
Demo b = new Demo(123);
System.out.println(demo.compare(a,b));
}
boolean compare(Demo x ,Demo y){
if(x==y){
return true;
}else return false;
}
}
这段代码返回false,因为a,b虽然内容一致,却指向不同的对象。
2.equals 方法(是String类从它的超类Object中继承的)被用来检测两个对象是否相等,即两个对象的内容是否相等,区分大小写。
eg:
package demo;
public class Demo {
public static void main(String[] args){
Demo demo = new Demo();
String a = "123";
String b = "123";
System.out.println(demo.compare(a,b));
}
boolean compare( String x ,String y){
if(x.equals(y)){
return true;
}else return false;
}
}
返回true,因为两个对象的内容一样。
总结:
(1)比较基本数据类型的数据是否相等,如int,long,floar,double等数据类型,用“== ”比较。
(2)比较String等引用数据类型数据是否相等,用equals()来比较。