阿里控股爱橙科技啥啥治理中心 Java一面 50分钟

  1. 自我介绍。
  2. Java集合。所有的集合都说一遍,包括一些细节,比如ArrayList的扩容机制,LinkedHashMap的原理,ConcurrentHashMap原理。
  3. Java GC。介绍一下GC,想到啥说啥。
  4. SpringBoot。IOC,AOP,自动装配。都介绍一下。@Autowired @Resources 的区别。
  5. Mysql。介绍一下两种引擎,包括一些底层。介绍一下范式。
  6. TCP。TCP的头大概有哪些信息。
  7. 项目中有什么比较难的地方?放开来说说。
  8. 反问环节。做啥的?主要在做infra。

总结:问得很简单,基本也能答上来,全程基本上都是我在说,一直说,说了好多,而且答了也没啥反馈,很像KPI。可能是觉得我的Java经历不够多,而且四月底确实也没什么hc了,估计要挂。明天还有美团的前端复活赛,还有华为云的一面,华子是我最后的希望了

5.10 二面

  1. 没有自我介绍,直接撕题。两个线程轮流打印1到100。一个打印奇数,一个打印偶数。我本人的java多线程实战经验为0,只会背背八股。之前看过别人的解法,凭着印象硬写,最后面试官好像没看出啥问题,算我过了。这里我很虚,写的伪代码,而且写没写对我是完全不知道的。好在面试官看起来也不太会🤣,那就当我写对了吧。
  2. 追问:为什么多线程中要用到锁?多线程安全为什么需要去用锁保证?举个线程不安全的场景作为例子说明。
  3. 追问:假设一个线程,只会读某个变量;另一个线程只会写这个变量,而且写操作是原子性的。这个场景需不需要对变量加锁?我觉得变量要加volatile修饰,但volatile应该不算是锁,所以我说不需要。
  4. 拷打rpc项目。自定义rpc包的头部,这个头部大概会有什么东西,为什么你会说这个头部是比较精简的?我直接拿http作为对比说明。负载均衡算法,一致性哈希的原理及优点,对比普通哈希。客户端是先确认服务节点再执行具体的函数调用,还是先选择具体的函数调用再选择服务节点?我说偏向于第一种,数据迁移量会少一些。
  5. 布隆过滤器,原理,机制。为什么布隆过滤器能够有效缓解缓存穿透?我说了布隆过滤器能够在redis之前对大量非法请求进行过滤,避免过多重复的非法请求同时刻到达数据库。面试官说正常的流程就是redis里找不到,无论是布隆过滤器里找不到,还是redis里找不到,最终都要到数据库里找,这不是很合理的流程吗,那布隆过滤器跟redis到底有啥区别,为啥还要使用布隆过滤器呢。我说布隆过滤器是bitmap性能很高,虽然有假阳性,而且大量请求穿透会击垮数据库。其实我已经把具体的场景给说出来了:大量重复非法请求。但面试官说他还是不明白,我也不知道该说啥了。
  6. 怎么保证布隆过滤器和redis的数据一致性。布隆过滤器不是redis内置的吗,redis单线程,redis缓存完kv值顺手也把布隆过滤器给填了不就好了,哪会有一致性问题。这问题我还真没考虑过。然后我说了我会考虑redis跟mysql数据一致性相似的解决方案,虽然布隆过滤器并不能删除😅我搁这瞎说,自己都有点绷不住了。
  7. 网页输入url后的一系列流程。陈年老八股,三年前第一次找实习时就背过了。
  8. 反问,啥部门?啥啥啥部门下的什么什么部门,这名字好像一面听过,名字又绕又模糊,似乎跟业务不沾边,能记住部门名字的估计只有他们自己人了,我是听了很多遍都还是记不得的。做啥的?这块我没太听懂,反正就是做基建,做infra。第二天约技术三面。
全部评论
我22号答的不错,最后问我会不会大数据,我说不会然后秒挂
点赞
送花
回复
分享
发布于 04-28 10:19 湖北

相关推荐

5 15 评论
分享
牛客网
牛客企业服务