相同点:都是返回两种单词 true或 false
不同点:“==”是用于比较两个变量本身的值,内存中的地址
“equals()”函数只是暴力的比较字符串是否一致
ps:
equals()函数的用法
String a1,a2;
比较a1,a2
(a1.equals(a2)) 输入这个内容即可 输出 true或者 false
举个栗子
public class equals1 {
int a=1;
}
class equlas2{
public static void main(String[] args){
equals1 one=new equals1();
equals1 two=new equals1();
String a1,a2,a3="abc",a4="abc";
a1=new String("abc");
a2=new String("abc");
System.out.println("a1.equals(a2)是"+ (a1.equals(a2)));
System.out.println("a1==a2是 "+ (a1==a2));
System.out.println("a1.equals(a3)是"+ (a1.equals(a3)));
System.out.println("a1==a2是 "+ (a1==a2));
System.out.println("a3.equals(a4)是"+ (a3.equals(a4)));
System.out.println("a3==a4是 "+ (a3==a4));
System.out.println("one.equals(two)是"+ (one.equals(two)));
System.out.println("one==two是 "+ (one==two));
one=two; //赋值
System.out.println("赋值后one.equals(two)是"+ (one.equals(two)));
System.out.println("赋值后one==two是 "+ (one==two));
}
}
运行结果:
明显的可以得出:
1.赋值之后无论哪个比较的方法 都会是true
但是没有赋值之前 两个值的内容是随机分配的
无法预料
相等的概率极小
所以无论哪个比较的方法 都会是false
2.一般来说只要值相同 ==结果为:false
函数结果为:true
3特殊情况下 函数的比较结果会是true
例如 a3 a4 因为这两个字符串是由字符串常量生成的变量,其所存放的内存地址是相同的。