记错时间,迟到了十分钟,万幸面试官跟HR人都很好。
面试时间:一个小时
流程:
自我介绍
之前接触过客户端吗?没接触过。
Java基础:
介绍面向对象的特征。封装,继承,多态
在项目中有具体使用过多态吗?重写方法
接口和抽象类的区别
介绍类加载机制
泛型解决了什么问题,上下界了解吗?没了解过。擦除呢?没了解过。
数据结构的源码了解吗?ArrayList和LinkedList的区别
HashMap的底层实现,为什么要用红黑树,如何解决哈希冲突
LinkedHashMap的底层实现,为什么要使用双向链表
Hashtable了解吗?和ConcurrentHashMap有什么区别?
线程池了解吗?有哪些参数?有没有自己使用过线程池?答的根据任务类型确定核心线程数,追问为什么要这么设置
Synchronized锁了解吗?它是可重入的吗?怎么实现?锁的升级了解吗?
介绍JVM的内存结构
GC了解吗?说了一大堆,包括怎么确定回收对象,垃圾回收算法,垃圾回收器。追问为什么要从引用计数法演变为使用可达性分析算法?不知道。
老年代里采用什么垃圾回收算法?答的是由垃圾回收器决定,后续说了CMS,面试官换了个问题,问标记清除算法和停时复制算法的优缺点;追问哪个的内存效率高一点
OS:
进程和线程的区别
线程间如何通信,答的信号量,面试官说这属于被动同步,有没有什么主动的方法?答了管道,不知道对不对
volatile关键字解决什么问题
操作系统里面怎么保证CAS操作的原子性?没答上来
计网
HTTP的状态码了解吗?
HTTP跟HTTPS有什么区别
TCP、IP分别在哪一层;三次握手和四次挥手能不能少一次?如果不行的话会出现什么问题?
TCP的滑动窗口工作过程。有点忘了
TLS的握手过程,使用了哪些加密算法?只知道一个RSA。能用对称加密算法吗?为什么不行
输入网址到出现网页的过程
八股告一段落,问我最近在看什么书。
手撕:找到数组中右边第一个比他大的数的下标。单调栈。
反问:面试表现怎么样?主要业务?
面试感受:面完感觉很好,答不上来时面试官会给一些提示,如果实在不会才换问题。面完发消息给HR,回复说已通过。许愿二面过
#软件开发笔面经#