1. java中==和equals (String比较)
java中字符串双等号比较值(引用的内存地址)是否相同;String类
重写equals方法,比较的是字符串内容是否相同
public class StringJava {
public static void main(String[] args) {
String s1 = new String("abc");
String s2 = new String("abc");
System.out.println(s1 == s2);
System.out.println(s1.equals(s2));
}
}
2. scala中==和equals、eq (String比较)
java中的基本数据类型
,没有equals方法
,如果2个值需要比较,只能采用双等号运算符。
而Scala完全面向对象,因此都采用方法
的方式比较对象,但是scala为了兼容其他语言,仍然保留双等号的功能,但是比较方式发生改变。如果使用双等号进行数据的比较,首先进行非空判断
,然后使用equals方法
比较。如果需要比较对象的内存地址
,使用eq方法
object StringScala {
def main(args: Array[String]): Unit = {
val a = new String("abc")
val b = new String("abc")
println(a == b)
println(a.equals(b))
println(a.eq(b))
}
}
注:
==
运算符编译scala为java代码后,如下所示