equal和==的区别,新人小白第一次写博客
equal和==的区别
“==" :在基本数据类型中使用,则直接进行数值比较,如果在Sring类对象上使用 ”= =“那么比较的不再是内容,而是字符串的内存地址。
equal : equal不能用于基本类,equals()是由String提供的一个方法,专门用于数值比较。
代码实现
代码片
.
public class Test{
public static void main(String[] args) {
String str = "abc";//直接赋值定义一个字符串
String str1 = new String("abc");//开辟一个堆栈空间,构造方法定义字符串
System.out.println(str1.equals(str));//字符串内容的比较,输出true
System.out.println(str==str1);//字符串地址的比较,输出false
}
}
总结
创建一个对象的时候开辟了一个新的地址空间,即内存地址。导致地址值不同。用“= =”比较时,比较的是地址值,即使对象的值相等,但是他们的地址不同,所以==的结果为false。但 equal比较的是内容,所以输出true。