一次社招面试经历
•谈谈你对于redis的理解
•你简历上写了你熟悉sql的优化,可以说一说么?
(A:建立合适索引和优化查询语句。)
•那你可以说一下什么是索引吗?
(A:索引是数据库用来便于查找的标记。)
•你说了索引的优点是便于查找,那他有什么缺点或不足呢?
( 我没有回答出来,最后面试官和我说:索引的不足就是效率低,占用的资源多,每次的增删改需要动态的维护导致时间变长)
•谈谈你对于mybatis缓存机制的理解。
( 1.一级缓存:是session级别的的,在使用同一个session进行查询时,会将第一次的结果存到session中,然后之后的查询同一个结果时,就会从session中去获取到结果,而不会再去发送sql语句
2.二级缓存:是sessionFactory级别的,在使用session查询到数据并且提交时,之后查询都会从sessionFactory中读取缓存中的数据)
•说说你对于事务的理解
(在我看来,事务是一个要求多条sql语句同时成功同时失败。)
•如果两台服务器,一台修改了你的数据库中的数据,一台中有缓存,那岂不是另外一台无法去拿到最新的数据,你有没有了解过这种情况
•说一下tcp建立连接的三次握手
•谈谈你对于spring的了解
•为什么要用spring而不用单链模式
(A:因为spring中可以用实现接口。)
•你对于数据结构了解的多吗?
•数组和链表的区别
•你对于hashmap有了解吗,说一说你了解的hashmap
•详细的说一下hashmap的查找
(先将hashmap中的键 hashcode一下,再通过equals去比对hashmap中的各个键的hashcode码,如果没有,就插入,如果有就修改链表中的数据)
•在查找的过程中,你是如何查找的?for循环?那hashmap的时间复杂度就是O(n)了?
(因为数组的时间复杂度是O(1)的)
•你简历上写了你对于机器学习中的算法有一些了解,可以挑一个你用的最好的来说一下么?