淘天-中小企业技术部-面经
一面:
- 实习做的任务深挖(涉及到了登录相关的问题)
- 如何判断当前用户是否登录?(cookie中的user_id字段)
- 用户处于登录态如何防止登录信息的泄露?(cookie泄露)
- 是不是意味着如果为用户生成的token泄露了,就可以伪装用户?
- 还有些记不清楚了...
- 在开源的缓存系统里,使用Redis作为缓存为什么这么受欢迎?
- Redis单线程为什么快?
- Redis为什么采用单线程?(答了Redis瓶颈在于IO而不是CPU,单线程收益高)
- Redis为什么使用哈希槽的方式进行数据分片?为什么不适用一致性哈希的方式?
- 在高并发的情况下,Redis单线程如何应对请求的竞争,提高处理请求的速度?
- ThreadLocal原理
- 了解哪些平衡树?
- 为什么要有这么多种平衡树?应用场景都是什么?
- Java中的阻塞队列是如何实现线程阻塞的?
- Java中的线程池是如何保证核心线程不被销毁的(保活机制)
- 设计模式
- 单例双检
- 还有些问题,但不太记得住了...
二面:
- 单点登录:
- 使用token进行了登录,并使用Redis缓存了token,如何从多个域名(前端跨域名)的访问请求中识别出token?
- 单点登录深挖... 原理、实现方案、优缺点、你该咋实现单点登录
- 线程池的参数介绍
- 线程池的核心线程数和最大线程数该如何选择
- 如何实现线程池中的任务队列(实现阻塞队列)
- 生产环境中出现了频繁的full gc,该如何排查呢
- 使用Redis作为分布式缓存,比其他分布式缓存的优势在哪里
- Redis中两种持久化机制的区别,各有什么优缺点
- 使用Redis作为缓存需要注意的问题,结合你的项目分析分析,并给出你的解决方案
- 使用MySQL作为数据库时,该关注哪些性能指标?如果性能慢,该怎么提高性能
- MySQL中的联合索引在底层数据结构中是如何存储的?了解过吗?
- 一般在什么场景下需要使用到消息队列,使用时要考虑什么问题?
- 那如何保证消息队列,消息消费成功?消息不重复消费呢?
- 使用ThreadLocal需要注意什么问题
- 让你实现缓存淘汰,你怎么实现(口述了LRU)
- ES中有什么索引
- 倒排索引原理是啥,分词后怎么存的词,从而可以快速检索
- 研究生的课程都是干啥的?结合对你影响最大的课程讲讲
- 了解过chatgpt吗,怎么看待chatgpt
三面:
没有什么有营养的问题,二十分钟的kpi闲聊罢了...