关于“对比”类型的面试题,建议回答时包括:
多个对比项有什么相同/相似之处
多个对比项的区别
在应用中应该如何选取
可能的话,加入一些扩展。
变量与对象是2个不同的概念
Object a = new Object();
以上代码中的a就是变量,在内存中实际存在的数据就是对象。
所有引用类型的变量值都是引用地址。
假设某对象在内存中的地址是0x6528,则变量的值就是0x6528。
==与equals()的相同/相似之处
这两者都是用于比较2个变量是否“相同”。
==与equals()的区别
==是基本运算符,适用于所有类型的变量与变量的对比。
equals()是Object类定义的方法,由于Object是Java的基类(所有类的父类),所以,任何对象都可以调用equals()方法实现对比,但是,基本数据类型并不是对象,无法调