高德Java后端日常实习一面
1. 实习介绍
2. HashMap底层数据结构
- 链表树化的条件:当链表长度大于8且map容量超过64时,链表会进行树化。
- 这样设计的原因:主要是结合内存开销和性能进行综合考虑。
- 若key一直有冲突该如何处理?
3. 介绍ConcurrentHashMap
4. 说下CAS和synchronized锁的区别?
5. Java的垃圾回收机制?
6. 项目介绍
- 数据存储是否为单表存储?表的数据上限是多少?能否存储一亿条数据?
- 当单表超过5kw行或者容量超过2GB时,需考虑分库分表。
- 订单表数据量较大时,如何选择分库分表键?是否了解分库分表?
- 分库可以解决并发量大的问题,但数据库的连接数量有限,若进行分库,用户如何知晓请求该发送到哪台机器上?
- 分表是将订单、物流、商品、会员等数据分别存放在独立的数据库中。
7. MySQL底层数据结构?为什么采用B+树?为何不使用B树?
8. 了解MySQL聚簇索引吗?有哪些方式可以避免回表操作?
- select id, name from table where name ='ls' -- 不回表
- select * from table where name ='ls' -- 回表
9. 了解MVCC吗?它可以解决哪些问题?在不同隔离级别下,MVCC的处理方式有何差异?
10. Redis在项目中的使用场景
11. Redis除了实现分布式锁,还能有哪些应用?
- 如何利用Redis进行限流?具体如何实现?
2. HashMap底层数据结构
- 链表树化的条件:当链表长度大于8且map容量超过64时,链表会进行树化。
- 这样设计的原因:主要是结合内存开销和性能进行综合考虑。
- 若key一直有冲突该如何处理?
3. 介绍ConcurrentHashMap
4. 说下CAS和synchronized锁的区别?
5. Java的垃圾回收机制?
6. 项目介绍
- 数据存储是否为单表存储?表的数据上限是多少?能否存储一亿条数据?
- 当单表超过5kw行或者容量超过2GB时,需考虑分库分表。
- 订单表数据量较大时,如何选择分库分表键?是否了解分库分表?
- 分库可以解决并发量大的问题,但数据库的连接数量有限,若进行分库,用户如何知晓请求该发送到哪台机器上?
- 分表是将订单、物流、商品、会员等数据分别存放在独立的数据库中。
7. MySQL底层数据结构?为什么采用B+树?为何不使用B树?
8. 了解MySQL聚簇索引吗?有哪些方式可以避免回表操作?
- select id, name from table where name ='ls' -- 不回表
- select * from table where name ='ls' -- 回表
9. 了解MVCC吗?它可以解决哪些问题?在不同隔离级别下,MVCC的处理方式有何差异?
10. Redis在项目中的使用场景
11. Redis除了实现分布式锁,还能有哪些应用?
- 如何利用Redis进行限流?具体如何实现?
全部评论
佬 还没找到梦想的offer吗
相关推荐
12-21 15:20
重庆邮电大学 Java 点赞 评论 收藏
分享