猫眼一面二面 面经 (Java后端)
猫眼
猫眼一面:
(面试官超好!!)
详细介绍项目? 像项目中如何用Redis,用到Redis哪些数据类型这种? 项目中遇到哪些问题,怎么解决的
Java有什么数据类型,占了多少字节
Java中String为什么是不可变的? 不可变的原因?Java 9 对 String有什么优化吗?
ArrayList 和 LinkedList
ArrayList 的扩容
Spring的IOC
动态代理, 实现动态代理的方式?
线程和进程?
TCP和UDP
什么是对称加密和非对称加密? 在HTTPS中哪些地方用到了对称加密,哪些用到了非对称加密?
单例模式 有哪些?
Linux常见的命令? 稍微复杂一些的
Git有用过吗? 常用的命令
MySQL有哪几种存储引擎
MyISAM 和 InnoDB 的区别
MyISAM支持可重复读这种隔离级别的吗? (MyISAM 不支持事务,可重复读是隔离级别的一种概念,所以 MyISAM不支持可重复读)
聚簇索引和非聚簇索引
索引失效的场景
为什么不使用最左前缀索引会失效? (从B+树上进行分析)
有一张表,有一个主键 id, 两个非主键 a, b。 a, b 上都有普通索引, 查询语句 where a = 1 and b = 1 会用到什么索引? b的索引会不会用到
MVCC的技术底层原理?
redo log 和 undo log 的区别?
MVCC 有没有解决幻读的问题? 完全解决了吗? 快照读下面可以解决幻读吗? 一致性读,快照读,next key lock ?
bin log ?
bin log 的日志格式有了解吗?
Redis的内存淘汰机制? 是什么,怎么实现?
LRU怎么实现? Redis的 LRU 底层是怎么实现的?
Redis 的持久化机制
AOF的日志量过大,怎么解决?
AOF的重写
算法题: 给定一个有序的数组,和一个值, 找到第一个等于或小于的该值的元素 (二分)
项目中遇到一些不太合理的需求,怎么做?
学东西怎么学东西? 对于一个工程师来说,最重要的是什么东西? 有发现专栏有错误的地方吗?
博客多长时间会更新?
面试的观点,还是主动说的(吹爆面试官!)为什么要学底层: 两个人在开发项目的时候,大家都会CRUD,但是如果你能够了解底层更多,在CRUD的时候就会有一个敬畏心,知道哪些东西可以做,哪些东西不可以做。 在做业务的时候,大家都是CRUD,但是你能预想的风险是别人预想不到的,这就是人与人的差距。 可以尝试在团队中做分享,你在做分享的时候,很多东西你得理解透才能说出来,不然到时候你就懵了。
猫眼二面
项目介绍?
限流用的是令牌桶的方式,令牌桶是怎么实现的?
令牌桶所能承受的性能瓶颈?
实习经验的时间为什么是一个月?
实习期间的工作?实现什么样的收益吗?这个功能对外推广,是可行的还是需要再优化?
实习期间最大的收获
网络的7层模型
HTTP常见的错误码
AOP 实现AOP的方式, 场景。 AOP的主要类型
数组和链表的区别,什么情况下会发生数组下标越界
使用线程池的方式 和 常见的参数
常用的设计模式,在开发有用到的设计模式
MySQL的索引,如果使用索引和索引的区别
如何避免SQL注入? SQL注入的原理是什么? "; delete "
redis的数据结构和场景。
非关系数据库 和 数据库的区别 和使用场景? 为什么很多使用要使用 非关系型数据库 减轻 关系型数据 的压力
Redis 常用的内存淘汰机制
你在哪个城市? 以后希望去哪些城市?