这些面试题是我准备换工作的时候整理,没有重点。包括java基础,数据结构,网络,Android相关等等。
适合中高级工程师。由于内容过多,将会分为上下两部分。
希望能够帮到一些朋友,如果帮助到你,希望能够点个赞,需要整个文档的朋友私信我【58】即可。
没有单独分出来,面试题目都是穿插的。因为有些事外面试过程中遇到的,我就又加上去了。总之你弄懂了这些,基本是没有问题了。如果是bat那些企业,你还得准备算法,jvm这些知识。好了,废话不多说了。
1、java中==和equals和hashCode的区别
基本数据类型的==比较的值相等.
类的==比较的内存的地址,即是否是同一个对象,在不覆盖equals的情况下,同比较内存地址,原实现也为 == ,如String等重写了equals方法.
hashCode也是Object类的一个方法。返回一个离散的int型整数。在集合类操作中使用,为了提高查询速度。(HashMap,HashSet等比较是否为同一个)
如果两个对象equals,Java运行时环境会认为他们的hashcode一定相等。
如果两个对象不equals,他们的hashcode有可能相等。
如果两个对象hashcode相等,他们不一定equals。
如果两个对象hashcode不相等,他们一定不equals。
2、int与integer的区别
int 基本类型
integer 对象 int的封装类
3、String、StringBuffer、StringBuilder区别
String:字符串常量 不适用于经常要改变值得情况,每次改变相当于生成一个新的对象
StringBuffer:字符串变量 (线程安全)
StringBuilder:字符串变量(线程不安全) 确保单线程下可用,效率略高于String