没有自我介绍环节,没有算法环节,直接开始提问。
提问环节
一:介绍做过的项目,技术栈,角色
二:熟悉的编程语言,自己的技术栈
前面的两个问题应该属于面试官通过提问来了解你的情况,来想后面要问哪些问题。
三:Java是面向对象语言,特点是什么 √
深挖三:为什么Java要引入这些特点?当时面试官问的比较模糊,我回答的有点过于简单。
复盘的时候发现,当时面试官后面提示了与面向过程语言相比,应该回答面向对象编程解决了面向过程语言的哪些痛点。
四:Java集合类,介绍ArrayList和LinkedList √
五:介绍HashMap √
深挖五:为什么要引入链表,而不是引入数组? 为什么要引入红黑树,而不是AVL树或普通二叉树?√
深挖五:HashMap扩容机制?√ HashMap扩容操作?×(寄,不知道)
六:介绍用过的SpringBoot的特性 √
深挖六:IOC控制反转怎么实现的?有什么效果?√
深挖深挖六:如何添加一个配置类,使SpringBoot能扫描到并放到Bean容器里。还有没有第二种方法?当时只回答了一种。
深挖六:AOP面向切面编程怎么实现的?用过哪些相关注解?√
深挖深挖六:这些注解是怎么实现的?×(寄,不知道)当时猜测是跟反射和代理有关,也算是沾了一点点边。
七:介绍一下TCP三次握手 √
深挖七:为什么一定要第三次握手?×(寄,不知道)
八:有没有用过网络抓包工具?没有。
九:如何体现你简历中的比较热爱钻研互联网技术。(开放性问题)
反问环节:
我问了面试官认为自己还有哪些地方需要加强学习?面试官说规定不能回答。
面试官最后说:要保持热情,用一个东西的时候可以多去钻研下其深层一些的原理。
总结:
被深挖挖晕了,自己对很多技术的底层实现原理还是不够了解,还需沉淀。