第一次面试
①说下java类的加载
②说一下zookeeper的原理
③说一下你对dubbo的理解
④说一下nio和io的区别
⑤说一下并发锁
第二次面试
①网络的七层协议从底层往上说一下
②什么是sql注入
③你平时怎么预防的sql注入(答使用PreparedStatement,预编译之后,使用占位符,而不是直接把参数写入sql中)
④为什么使用占位符就可以防止sql注入
⑤springmvc是线程安全的吗
⑥synchronized关键字修饰静态方法和非静态方法有什么区别
⑦你是平时是怎么维护索引的
⑧你对dubbo的理解
⑨zookeeper是怎么实现分布式锁的,他的原理是什么
⑩dubbo的序列化用的是哪些,说一下你对他的理解
第三次面试
①说一下索引用到的结构
②说一下B+树
③说一下使用springmvc需要配置那些文件,都配置了什么,是什么作用
④如果让你使用redis维护session你会怎么做
⑤说一下你对java.util下面比较熟悉的类,他的实现方法、结构和复杂度(答HashMap 问:他的内部实现,复杂度是多少,答Arraylist和linkList,问:内部实现是什么,复杂度是什么)
⑥面试官给画了一个目录,里面有文件和文件夹,让我手写代码进行遍历,输出所有文件的文件名
⑦写一个sql,问having和where的区别,join和不用join的多表查询有什么不同
未完待续。。。。。。。。。。。。。。
小小总结一下
不面试你都不知道你有多菜,面试了三家可以说问的侧重面都不一样,第一家问的是jvm的相关问题,类的加载机制,zookeeper的原理等,说实话,第一次面试吓到我了,我以为工作一年是不会问这些东西的,可事实却是,面试就是问的这些,答不出来的话就是“回去等通知吧”。第二家面试就开始侧重网络通信和安全了,什么网络协议,报文格式,sql注入,第三家居然开始问起来算法和数据结构。
其实想一下,网络协议和数据结构确实是基础,大学都是学过的,可是万丈高楼平地起,基础的东西太多了,每次面试面试官的侧重点又不同,我们唯一能做的就是复习基础,拔高水平,做一个德智体美劳全面发展的四有青年。面完试很有挫败感,对接下来的学习也有了很大的帮助,就算这次不能找到一个好工作,但是我也有了一个大致的学习方向,有准备面试的看一下,大家也算是学习共勉吧。