关于“==” && equals()&&hashcode
在面试的时候很多时候会问到“==”和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,那么在使用“==”做比较的时候结果是对的呢