一、“==”运算符
1、“==”运算符的意思就是判断两个变量是否相等,但是这里的相等是内存地址的相等。java中在new一个新的对象时,会开辟新的内存空间,所以每一个对象之间的内存地址是不相同的,有些同学在不清楚其根本原理的时候就会与.equals()方法混淆。
比如说:
String a = new String("abc");
String b = new String("abc");
if (a==b){
System.out.println("y");
}else{
System.out.println("n");
}
可以看出虽然两个对象的值时一样的,但是他们却不相同,这就说明了“==”运算符在判断的时候比较的其实是两个对象的地址,所以在比较两个对象的值的时候大家就不要使用“==”运算符。
2、但是平时对于比较变量的时候,其实在赋值的时候变量赋给的不是值,而是内存地址,所以是相等的
int a = 1;
int b = 1;
if(a==b){
System.out.println("y");
}else{
System.out.println("n");
}
这里其实是把数值“1”的内存地址赋给了a,然后同样又将地址赋给了b,所以两者在比较的时候比较的内存地址,所以是相同的
二、.quals()方法
1、这个方法一般是针对于String()字符串或者是对象之间的比较,比较的一般都是字符串值内容
比如说:
String s1 = new String("abc");
String s2 = new String("abc");
if(s1.equals(s2)){
System.out.println("y");
}else{
System.out.println("n");
}
虽然s1和s2的内存地址不同,但是他们的字符串值是相同的,所以输出“y”,由此可以说明这个方法是比较的其中的字符串值。
三、总结
“==”运算符是比较内存地址;
.equals()使用的前提条件是两者必须是字符串,而且比较的是其内容;