面试连环炮(上)

我最近从大厂离职之后在合肥呆了个把月,之前已经准备了半个多月,从7月底开始投简历面试,目前是java高级职位,到现在为止已经面了24+公司了,手上也有一些意向offer。现在把跟面试官对垒的面试问题总体记录一下。请注意这里只有问题,没有答案,答案在我的思维导图里。本系列会分为三个系列博客去讲我面过的一些公司出的一些题,以某个知识点或者框架出发扩展深入。来,看你能撑多少炮!

一、 redis连环炮

redis数据结构

redis有哪几种数据结构?zset用过吗,底层数据结构是什么?为什么使用跳表?跟B+树怎么比?查找的时间复杂度是多少?GEO是干嘛的?举个场景?HyperLogLog是干嘛的?Redis可以做消息队列吗?有什么缺点?

redis持久化

redis持久化了解吗?有哪些方式?RDB和AOF的区别&各自的优缺点?说一下redis持久化的过程?redis持久化方式你们是怎么选型的?了解过redis混合持久化吗?是一个文件还是多个文件?redis进行持久化的时候会阻塞主线程吗?如果数据量比较多持久化时间较长会出现什么情况?

redis 实现分布式锁

redis分布式锁了解吗?假如我的业务代码执行时间不是很稳定?使用redis做分布式锁会有什么问题呢?你怎么解决锁超时的问题?有什么方案吗?跟zk的分布式锁有什么区别?

redis集群部署

redis集群部署模式有哪些,介绍一下?介绍一下cluster模式和sentinel模式的区别?介绍一下sentinel模式如何感知sever节点上下线的?redis-server的ping/pong协议了解吗?怎么用的?
讲一下redis主从复制的过程?主从模式下假如主节点挂了之后?数据如何同步?redis cluster模式下通过key插入/查找value的过程了解吗?

redis高可用

有哪些可能导致redis存在性能问题的因素?redis cluster模式下如何扩容和缩容的?redis在使用过程中明明内存充足但是插入数据失败怎么排查?如何解决redis的内存碎片问题?产生的原因是什么?redis的内存达到机器内存极限值之后有哪些策略可以避免?redis数据删除的策略有哪些?缓存击穿/缓存雪崩/缓存穿透了解吗?介绍一下产生这种问题的原因?你有什么解决思路吗?redis-mysql缓存一致性了解吗?缓存一致性方案有哪些?

二、MySQL连环炮

MySQL 锁

MySQL锁了解吗?悲观锁怎么实现的?乐观锁了解吗?各自适用的场景能介绍一下吗?间隙锁是什么意思?解决了什么问题?如何确定间隙锁锁记录的范围?MVCC了解吗?解决了什么问题?

MySQL 索引

Mysql索引了解吗,有哪些索引类型?innodb索引结构是怎么样的?为什么使用B+树呢?为什么不使用B树呢?有什么优势?B树这种结构一般还有什么场景下会用到呢?假如有a,b联合索引,where a=? 会走索引吗? where b=?会走索引吗, where a>? and b<?会走索引吗,为什么?这种联合索引在B+树的数据结构里怎么存的?

MySQL 性能优化

MySQL性能优化做过吗?你做过SQL的性能优化吗?举个例子?Mysql引起的CPU消耗过大怎么排查? 假如一条sql执行的很慢你怎么排查?假如我要查的字段长度相对固定,但是没走索引你会怎么建索引呢?你执行explain的话会看哪些指标?这些指标分别代表什么含义呢?如果查询的字段确实有加索引但是实际上走了全表扫描你该怎么排查呢?假如我数据库某张表数据特别大,但是要分页查,翻页越来越慢怎么解决,比如select a from table limit 1000000,100这个sql怎么提高查询效率。

MySQL 存储引擎

MySQL存储引擎有哪些?innodb和MyIsam有什么区别?mysql存储引擎是基于表的还是基于数据库的?为什么?讲一下一条sql从client端到mysql server端到返回结果中经历了什么?

MySQL 持久化理论

Mysql事务用过吗?了解ACID吗?解释一下什么意思?mysql事务的隔离性原理是什么?其他几个的原理呢?MySQL事务的隔离级别了解?分别解决了什么问题?可重复读是什么意思?幻读是怎么产生的?MySQL脏读是怎么产生的?读已提交相对于读未提交解决了什么问题?Mysql支持了这几个隔离级别的原理知道吗?

MySQL分库分表

分库分表用过吗?有哪些框架?TDDL了解吗?TDDL的分层架构组件讲一下?假如我要查100条,如何聚合结果?在server端做还是在client端做呢?数据量这么大client端做会不会有问题?假如我有一张表用户-订单表,你怎么设计分表规则?以用户id做分片分表的话,但是我想通过订单id查最近10条订单怎么查?有什么方案?分库分表的跨库事务你怎么解决的?有哪些方案或者思路?

MySQL 架构&高可用

假如让你去设计一个项目你怎么去考虑这个项目在mysql层的高可用?有哪些架构模式?一主多从的方式如何做数据同步的?主从延迟怎么解决?假如我的写并发量比较大,数据库突然down机了,怎么保证数据一致性。mysql->redis的数据同步怎么做的?解析binlog吗?

三、消息队列连环炮

消息队列技术选型

说说你用过哪些消息队列?各自有什么优缺点?各自的适用场景?现在企业一般都是建立一个集群支持不同的业务线,你有没有想到这么做的优缺点?

消息队列产品-kafka

kafka接收消息和转发消息的流程画一下?发送一条消息到kafka集群中,kafka是怎么保证消息不丢失的?在消息队列场景中有消息重复的问题,kafka是怎么解决的?kafka中消息发送到消费者端是不是每个机器都会消费?假如消费者集群有些宕机了,如何保障重新消费消息?假如消息太多,我的消费者集群已经加了200台,仍然消费不了怎么解决?

消息队列产品-rocketmq

rocketmq用过吗?有哪些特性?源码有阅读过吗?事务消息的原理是什么?来画图说一下事务消息生产消费的过程?rocketmq如何保障消息的顺序的?rocketmq如何保证消息不丢失的?底层做了哪些优化?

消息队列高可用

如果是你去做一个消息队列你会考虑哪些方面保障消息队列的高可用?

四、java基础&高级连环炮

java锁

java 锁了解吗?java中有哪些锁呢?说一下sychronized的原理?说一下sychronized和Lock的区别?说一下java中多线程情况下竞争锁比较激烈导致锁升级的过程?产生死锁的条件是什么?怎么避免?volatile怎么用?有什么特性?重排序了解吗?volatile怎么解决的?还有什么方式可以解决重排序的问题?基于volatile的单例模式解决了什么问题?sychronized和volatile的区别讲一下?讲一下懒汉式的单例模式怎么写?

java多线程

java多线程用过吗?怎么用的?有什么缺点?线程池的原理了解吗?有哪些线程池?构造线程池的参数有哪些?线程池的拒绝策略有哪些?什么时候会触发拒绝策略?阻塞队列有哪几种?,线程池的线程工厂参数你是怎么设置的?为什么呢?假如我假如有台机器每秒产生50个任务,每个任务执行1秒,CPU是2核的你怎么设置这些参数呢?线程池执行任务的时候出现异常没抛出异常你怎么解决?有哪些方案?线程池执行任务结束调用shutdown和调用shutdownNow方法的区别?假如我想获取线程执行任务之后返回的结果怎么做?Future.get()会阻塞主线程吗?那如果任务执行时间太长调用Future.get()会怎么样?

java类加载

java类加载了解吗?有哪些类加载器?rt.jar是谁加载的?什么是双亲委派模型?假如我要注册JDBC驱动去操作数据库,这个注册的过程你了解吗?打破双亲委派模型的例子有哪些?java中有些使用了代理模式去创建类,大量创建的类存在哪里?如果类不用了怎么卸载?有哪些方式?
java热加载做过吗?原理是什么?Tomcat的热部署用过吗?原理是什么?

java并发容器

java concurrent包里的并发容器了解吗?concurrentHashMap在1.7和1.8的实现区别?为什么使用红黑树而不用平衡树?说一下插入kv的过程?blockingQueue用过吗?怎么用的?CopyOnWriteArrayList知道吗?怎么用的?concurrentHashMap什么时候会扩容?HashMap有什么问题?

java数据类型

假如3*0.01=0.03吗?为什么?怎么解决?有哪些方案?BigDecimal大数计算的原理是什么?Integer a= 1000 Integer b=1000 ,a=b? a=100,b=100,a=b?为什么?

五、jvm连环炮

jvm垃圾回收算法

java引用有哪些?怎么判断引用的对象是否需要被回收?JVM中有哪些可以作为GCROOTS?JVM垃圾回收算法有哪些?各自有什么优势和使用场景?你们部署服务的时候JVM配置的什么回收器?参数配的是啥?年轻代用什么垃圾回收器?老年代呢?说一下CMS垃圾回收的过程?在哪些阶段会产生STW?CMS会产生内存碎片吗?为什么?怎么解决?CMS压缩内存的时候会STW吗?为什么?G1回收器了解吗?有什么特性?

jvm调优

JVM调优做过吗?怎么调的?使用的什么命令?分析过GC日志吗?线程栈dump文件中有哪些信息?线程状态有哪些?CPU load飙高怎么排查?分析过dump文件吗?怎么判断有内存泄漏的?怎么解决的?产生FGC的原因有哪些?如果频繁FGC你有什么思路?如果FGC基本正常,YGC时间逐渐增大导致服务抖动怎么排查?
JVM 编译模式了解吗?C1,C2各自怎么进行字节码编译的?有什么优缺点?如何解决代码冷启动问题?

jvm内存模型

java内存模型了解吗?常量池在哪?元数据区存的是啥?哪些是线程共享的?栈溢出的场景有哪些?新建一个对象的过程说一下?有哪些场景下会用非堆内存?一般用非堆存什么东西?非堆中的对象会GC吗?为什么?

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,612评论 5 471
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,345评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,625评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,022评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,974评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,227评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,688评论 3 392
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,358评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,490评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,402评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,446评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,126评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,721评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,802评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,013评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,504评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,080评论 2 341