京东(收到offer)
一面 电话面(8.26 34min):
- 八大基本类型,String StringBuffer StringBuilder
- Java是单继承还是多继承?implements和extends的区别,抽象类和接口的区别
- 所有类的基类(Object),有哪些公共方法(clone、hashCode、equals、getClass、wait、notify)
- 为什么重写equals后hashCode也要重写
- JAVA反射的方法,JAVA范型的作用
- 集合了解哪些,ArrayList和LinkedList的区别,ArrayList删除会报异常吗(下标越界)
- HashSet和HashMap的区别,HashMap底层实现(数组加链表)
- TreeSet底层实现,红黑树了解多少,如何实现自平衡,和B+树相比有哪些特性,搜索复杂度(logn)
- 数据库三大范式,四大特性,隔离性是保证什么的,不考虑隔离性出现的问题,MySQL默认隔离级别
- 数据库有哪些索引,复合索引AB,可以查A吗?(可以)可以查BA吗?(可以,查询优化改变顺序)
- 如何实现线程并发,Synchronized底层怎么实现(monitor对象),CAS可以实现线程安全吗,会出现什么问题
- 看过JVM这本书吗?判断一个对象是否存活,为什么不用引用计数法(互相引用问题)
- JVM内存模型,分为哪些块,分别存什么,哪些线程共享哪些线程私有
- GC回收器,CMS怎么操作的,负责的是哪一块的GC,G1怎么操作的
- 介绍项目,你负责什么,过程中的提升
爱奇艺(收到offer)
一面 电话面(8.27 15min):
- Object的基本方法
- sleep()和wait()的区别,start()和run()的区别,notify()和notifyAll()的区别
- 创建线程的方式,callable和runnable的区别,callable怎么返回值
- 重载和重写,两个函数参数一样名字一样返回值不一样调用哪个(不能这么写)
- 排序算法稳定性是什么意思,哪些是稳定的,冒泡怎么改成非稳定
- Linux给文件重命名,linux查看所有tomcat进程(ps)
- 虚拟机-xms了解吗
- 四次挥手time-wait和close-wait是什么意思
二面 现场面(8.29 1h):
- 快速排序
- 实现二叉树蛇形打印
- 数字1对应字母a,2对应字母b…26对应z,我们给你一个字母组成的字符串“abc”,你可以转为“123”。现在是要给你一个数字组成的字符串“123”,让你求出有多少种可转成的字符串
三面 现场面(8.29 1h)
- 实现向量Vector这个类,实现向量相加方法
- 实现稀疏向量Sparkvector这个类,实现稀疏向量相加(用了HashSet)