2024实习记录:德胧集团日常实习面试

八股实在背的太差,所以回答情况也很糟糕,不过都是比较基础的八股,怪我自己没好好准备,这里对问题和答案进行整理

1.项目部署到阿里云上,可以看一下吗?

过期了,只是为了体验部署服务器的过程。

2.HashMap在JDK1.7和1.8的区别有什么?

首先是结构的不同,在1.7中,hashmap是由数组和链表构成,1.8是由数组,链表,红黑树构成。

第二个体现在put()过程的不同,在put的时候,1.7中采用的是头插法,1.8采用的是尾插法;另外是扩容的不同,1.7的时候,只要key寻址的位置上为空,不管元素个数有没有超过阈值,都直接插入当前的位置上,而1.8中,只要超过了阈值,无论有没有元素,都会进行扩容;另外1.8中,只要插入当前位置的链表元素个数超过8,并且数组的容量大于等于64,就会将链表转换成红黑树。

3.对1.8还是1.7的比较熟悉,讲一下插入的过程?

两者的插入过程有相同点和不同点

相同的点:a.首先获得key的hashcode,然后二次哈希,得到地址,b.如果地址上为空,就直接插入,如果不为空,是链表就按照链表的逻辑插入,是红黑树就按照红黑树的逻辑进行插入,在这个过程中会先对比hashcode(),如果不同直接插入,如果相同就再对比equals(),如果相同就覆盖旧的值,如果不同就直接插入,c.之后会判断是否进行扩容,然后对节点进行再迁移

不同的点:a.1.7采用头插法,1.8采用的是尾插法;b.扩容的时候,1.7的时候,只要key寻址的位置上为空,不管元素个数有没有超过阈值,都直接插入当前的位置上,而1.8中,只要超过了阈值,无论有没有元素,都会进行扩容,c.插入当前位置的链表元素个数超过8,并且数组的容量大于等于64,就会将链表转换成红黑树。

4.算法题,直接共享屏幕打开leetcode去做题,打开了五道,因为平时有刷题的习惯,前四道的提交时间都是近期的,所以换了四道题,最后选了leetcode22.括号生成,刚好好久没复习回溯的题,所以没a出来

5.对哪块内容比较熟悉

答redis

6.redis有哪几种基础数据结构

7.set的底层是怎么实现的?

学过又忘记了,这部分需要重新复习

8.了解cluster集群吗,讲一讲怎么分片?

a.cluster主要是解决主从机制中存在的高并发写问题,横向扩充主数据库,可以提高海量数据的存储和高并发写的问题,b.分片集群有多个master,每个master保存不同数据,一个master可以有多个slave节点,master之间通过ping监考彼此的健康状态,客户端可以请求访问集群的任意一个节点,最终会被转发到正确的节点,c.会把每一个master映射到到16384个插槽上,key不是和节点绑定的,而是和插槽绑定,redis会根据key的有效部分计算插槽值

9.为什么是16384个哈希槽?

10.为什么要有哈希槽?

这次面试回答的一塌糊涂,主要还是知识掌握的不够牢固,后续还得继续夯实知识点才行

#我的实习求职记录#
全部评论
很多常规问题,下次面试前先背一下答案
1 回复 分享
发布于 2023-02-19 22:27 河南
面试前八股还是要好好准备准备
点赞 回复 分享
发布于 2023-02-20 09:24 陕西
《1.7的时候,只要key寻址的位置上为空,不管元素个数有没有超过阈值,都直接插入当前的位置》 这个说法正确吗?好像没看到过
点赞 回复 分享
发布于 2023-02-27 15:25 广东
德胧怎么样呢,有大佬知道吗
点赞 回复 分享
发布于 2023-02-27 21:47 浙江

相关推荐

02-05 08:49
已编辑
武汉大学 Web前端
野猪不是猪🐗:36k和36k之间亦有差距,ms的36k和pdd的36k不是一个概念
点赞 评论 收藏
分享
评论
2
26
分享

创作者周榜

更多
牛客网
牛客企业服务