帆软后台开发暑期实习
5.27面试,总面试时长1个半小时,麻了,还是太菜了。。。
1、自我介绍
2、大创项目,自我介绍里提到了(这里问了怎么去分配任务,协调成员进度的)
3、科研项目(机器学习方向的项目,详细介绍了下,还问了下为什么不继续机器学习,有没有读博想法啥的)
4、java(忘了问了啥了)
5、登录的过程,怎么实现的
6、验证码是怎么存的
7、cookie和session区别
8、redis数据结构、除了用作缓存还可以用来干什么
String、List、Set、Hash、ZSet。
9、缓存击穿、缓存穿透分别是什么?怎么解决?
缓存击穿:缓存中没有但数据库中有的数据,并发用户特别多,去读缓存读不到,就同时去读数据,给数据库造成巨大压力。解决方案:1、设置热点数据永不过期;2、接口限流与熔断;还说了个加锁(但面试官说不行)
缓存穿透:缓存和数据库中都没有的数据,用户不断发起请求。数据库查不到,也就不会更新到缓存了,缓存也就失去了意义。解决方案:1、设置一个key-null对;2、布隆过滤器;3、设置接口校验,直接拦截非法查询(不需要查的方法)
10、数据库建的表、头像怎么存、有没有建立索引
11、密码加密MD5为什么要加盐(密码表碰撞)
12、数据库索引的功能,怎么通过索引找到数据的,B+数索引,为什么要用B+树而不用其他树呢
13、TCP三次握手和为什么要用三次,用一次握手可以么,UDP怎么实现可靠传输(QUIC协议)。视频会议的过程(这个不会,扯了DNS啥的。。。希望大佬教一下)
14、常用什么java集合类,HashSet是怎么去重的,HashMap的数据结构,链表和红黑树查找过程。红黑树有什么特点。
15、hashmap线程线程安全么,不安全用什么?ConcurrentHashMap的数据结构?怎么做到线程安全的。CAS是什么?用在了哪里?
答得不好,这里要仔细去看源码
16、动态规划和贪心算法区别。无数根1、5、11的树枝,现在要用最少的树枝接成15的树枝,求两种方法的结果和过程。贪心比较简单,动归要说出每一步的流程和意义。
17、JVM内存结构、堆分为了什么?什么时候发生GC?
18、看过哪些开源项目源码
19、就业兴趣、方向、遇到的困难
20、反问
#暑期实习##实习#