看完后试着用自己的话复述出来。有问题请指出,有需要帮助理解的或者遇到的真实面试题不知道怎么总结的也请评论中写出来,大家一起解决。
?java基础最常被问到得问题之一,这个也是笔试题中常见到的题型。
面试官:java中得 == 和 equals有什么区别?
回答:
1、==是运算符、equals是Object类中得一个方法。
2、==对于基本数据类型,比较的是值是否相同
? ? ? ? ? 对于引用数据类型,比较的是两个对象的内存地址是否相同
3、equals默认情况下和==是一样的效果。但是像String等其他类都会进行重写equals方法,重写后比较的就是值是否相等。
按照上面的回答基本上就已经可以了。
下面补充一下一些基本原理作为了解:
java中的数据分为两种:
基本类型数据:(byte、short、int、long、char、boolean、float、double)
引用类型数据: 其实就是java类,需要注意的是String也是引用类型
那么我们在使用这些数据的时候也是分为两种。
(值传递、引用传递)
基本类型----值传递:比如我定义了一个int a = 10;然后我调用一个方法把a传进去 checkNum(a); 这时候其实传进去的是10;
引用类型----引用传递:如果我们定义了一个User类? User user = new User("张三","10","男");这时候调用方法checkUser(user);其实传递的是user在内存中的地址。