整理的一些面试题

一、java基础

1.集合部分

 

 

 

hashmap 底层数据结构

我们知道在Java中最常用的两种结构是数组和模拟指针(引用),几乎所有的数据结构都可以利用这两种来组合实现,HashMap也是如此。实际上HashMap是一个“链表散列”,如下是它数据结构:

 

hashmap 线程不安全

https://www.jianshu.com/p/e2f75c8cce01

treemap

Collections.sort(new ArrayList<T>());

 

二、tcp、Ip、http、https

tcp/ip 协议层浅析

https://www.cnblogs.com/onepixel/p/7092302.html

tcp握手断开机制

https://www.cnblogs.com/zmlctt/p/3690998.html

https 流程机制

http://www.ruanyifeng.com/blog/2014/02/ssl_tls.html

 

三、spring

 

 

三、mysql

索引的数据结构(主要是innodb)

https://www.cnblogs.com/shijingxiang/articles/4743324.html

B+树的子节点存放数据,并且也是有序的。

mysql int(5) 可以存放超过5长度的int值 不够5长度的,在数据库的体现是00123(前面补0)

哪些会导致索引失效?

https://www.cnblogs.com/wuchanming/p/8075840.html

组合索引是否使用索引情况?

https://blog.csdn.net/wdjxxl/article/details/79790421

做索引优化时候explain关注的几个字段

http://www.cnitblog.com/aliyiyi08/archive/2008/09/09/48878.html

为什么主键索引使用uuid不太合适

 

mysql 的事务级别

事务隔离级别

脏读

不可重复读

幻读

读未提交(read-uncommitted)

不可重复读(read-committed)

可重复读(repeatable-read)

串行化(serializable)

mysql默认的事务隔离级别为repeatable-read

 

mysql是如何防止幻读的?mysql的mvcc机制?

https://www.jianshu.com/p/2953c64761aa

mysql的悲观锁和乐观锁?

https://www.cnblogs.com/zhiqian-ali/p/6200874.html

 

select ..... for update 锁表还是锁行?innodb 和 myasim 引擎不同

https://blog.csdn.net/u012888052/article/details/54895704

 

mysql(innodb)的表锁和行锁、还有一些死锁的情况

https://www.aneasystone.com/archives/2017/11/solving-dead-locks-two.html

这篇文中介绍的锁非常详细,要仔细看看。

https://mp.weixin.qq.com/s?__biz=MzI4NTA1MDEwNg==&tempkey=MTAwMF9TdmxPRndsaFlqOHE4ZFc0UThjVGVJQ3FCaWdTM3FhSEpZb3ZxOEg4UFBjLUVRMUs3UFQ0blNhMC1lU1RWTkpMNDRSeGtXRzdSSXFtenJySDVtRFRfYmpuUnRfWU1fT2o5aFUtTFBaZ0U5Z085WHl1T1BpWG1uRUxpdXFQdmY1eXVtcUpUS3N1Y014V045SDlyNGZyNEZ3N2NGX2llLWhWdjZYRG1Bfn4%3D&chksm=73f914b3448e9da57bb174f3400289f69bf503cddb8236184fbab28baab3648d165bdd5961a5&scene=0&xtrack=1&previewkey=8G5860QBS0PEinr3hWtaG8NS9bJajjJKzz%252F0By7ITJA%253D&from=groupmessage&isappinstalled=0#wechat_redirect

这个是亚盟整理的,别人发版的他的

 

mysql的平滑扩容方案

https://blog.csdn.net/kefengwang/article/details/81213050

这其中包含分库分表用的一些东西,比如分布式唯一键生成方法,平滑扩容方案等

雪花算法的原理看看,https://www.lanindex.com/twitter-snowflake%EF%BC%8C64%E4%BD%8D%E8%87%AA%E5%A2%9Eid%E7%AE%97%E6%B3%95%E8%AF%A6%E8%A7%A3/

mysql的灾备 http://bigdata.51cto.com/art/201809/583073.htm

异地双活 知道大概的架构和难点以及解决方案

http://www.360doc.com/content/17/0730/14/44946832_675334210.shtml

 

redis

redis的持久化机制,各自的特点

https://www.cnblogs.com/xingzc/p/5988080.html

redis的数据结构

https://blog.csdn.net/zhaoliang831214/article/details/82051449

redis的 sortset 原理

https://blog.csdn.net/linyu19872008/article/details/72403962

redis 的缓存穿透 雪崩 数据库缓存一致性

https://www.cnblogs.com/wangzhuxing/p/8331765.html

 

MQ、kafka、zk

如何保证消息的可靠性、一致性?

消息的重发、怎么防止重复消费(做幂等处理)

当多个微服务之间有先后调用顺序,彼此依赖时(分布式事务)可以采用广播的形式多个系统同时回滚。

kafka的zab协议,选举过程

zab和rafr的协议 https://niceaz.com/2018/11/03/raft-and-zab/

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值