==

关于“==” && equals()&&hashcode

喜你入骨 提交于 2019-12-05 12:43:45
在面试的时候很多时候会问到“==”和equals()对于很多人来说都已经很了解了,对于我来说似乎和新的知识点一样。下面就来分析一下: “==”是干什么的呢? 答案:是比较两个变量的值是否相等,在java中有8中基本类型:byte,short,int,long,chart,boolean,float,double;对于基本类型的数据使用“==”的时候就会比较的是他们本身的值。此处不再举例便很容易明白。 有人会很奇怪String类型,它不是基本数据类型,在使用“==”的时候为什么有时候返回的是true有时候返回的是false呢?接下来进行说明一下: String str1 = "test"; String str2 = "test"; System.out.println(str1==str2); 这个时候的结果是true;为什么呢?这个时候可以肯定的时候比较的时候依然比较的是内存地址,说明此刻str1和str2指向的是同一对象所以此处相等。 String str3 = new String("test"); String str4 = new String("test"); System.out.println(str3==str4); 这个时候的结果是false;这个时候str3和str4比较内存地址的时候不同所以返回的是false,那么在使用“==”做比较的时候结果是对的呢

Scala学习之字符串篇(一):字符串的比较

对着背影说爱祢 提交于 2019-12-03 08:34:31
在Scala中你只需要使用==就可以判断字符串相等,而不需要像Java一样需要使用的equals方法来判断。 scala> val s1 = "hello" s1: String = hello scala> val s2 = "hello" s2: String = hello scala> val s3 = "h" + "ello" s3: String = hello scala> s1 == s2 res4: Boolean = true scala> s1 == s3 res5: Boolean = true 使用==判断字符串相等的好处是,可以避免空指针异常。即==左边的字符串是空,也可以正常判断。 scala> val s4 = null s4: Null = null scala> s4 == s3 res6: Boolean = false scala> s3 == s4 res7: Boolean = false 忽略大小写来比较两个字符串是否一致,有两个方法:一个是把两个字符串都转化为大写或者小写再比较,另一个是直接使用 equalsIgnoreCase 方法。 scala> val s1 = "hello" s1: String = hello scala> val s2 = "Hello" s2: String = Hello scala> s1