2022广深Java中小厂面试记录

顺丰-1面:

  1. 项目中有什么难点?
  2. Redis用来做了些什么?
  3. Redis的做布隆过滤器是怎么玩的?
  4. 使用Redis时,怎么考虑用哪种类型?
  5. Redis为什么快?
  6. Redis内部实现的大致原理是什么?
  7. Redis的高可用怎么保证?
  8. 怎么保证MQ消费幂等性?
  9. 怎么实现消息的有序性?
  10. 怎么保证MQ的可靠性投递?
  11. 怎么解决MQ的积压问题? (在消费者不扩容的前提下怎么解决?)
  12. A系统同时给B系统分别发送2个请求(先insert请求后update请求),B有部署两个节点,你怎么保证在B系统的两个节点上执行是有序的?
  13. 讲讲Java中的集合,并发,Queue队列相关的东西。
  14. Spring中的生命周期?
  15. SPring中是怎么实现事务的?
  16. 如果要对线上某个表的一个字段长度扩容,你会考虑什么?
  17. QPS1万+的查询接口你怎么设计?
  18. QPS1万+的有状态接口你怎么设计?

顺丰-2面:

  1. 介绍项目业务?
  2. 怎么保证上下游系统间数据的一致性?
  3. 怎么保证数据的幂等性? 如何利用tokenID来实现幂等?
  4. 你们用Redis干些什么?
  5. 如果Redis挂了,怎么办?(从降级,限流,快速恢复角度去答)
  6. Redis脑裂咋办?
  7. 如果Redis集群中一个节点挂了,怎么保证高可用? (问题有点模糊)
  8. Redis的分配一致性哈希算法?怎么解决的数据倾斜问题?
  9. JDK里面有哪些引用关系?(强,软,弱引用,以及使用场景上回答)
  10. FullGC和OOM溢出有啥关系?
  11. 有遇到过OOM嘛?怎么解决的?
  12. 讲讲JVM哪些区域里会发生OOM,在代码中应该如何避免?
  13. 高并发下对MySQL的表结构设计,好操作时,要注意些什么?
  14. (我主要是从事务粒度,锁粒度,扫描行数,是否走索引来回答)

顺丰HR-3面:

反正就是一些常见没有意义的题

问期望工资

优缺点

沟通情况等等

YY直播-1面:

  1. Netty 的粘包拆包方法有哪些?
  2. Kafak的 broker是什么?
  3. Redis分布式锁,怎么实现可重入锁?
  4. Redis,Hash,List,Set分别对应的底层数据结构?
  5. 了解意向锁嘛?
  6. 什么是覆盖索引,什么是索引下推?
  7. 什么是redoLog日志?
  8. 说说RedoLog日志和Binlog日志的怎么使用?
  9. 什么是MVCC机制?
  10. 讲讲红黑二叉树?
  11. 怎么排查线上实例CPU飙高的问题?
  12. JVM参数配置需要注意一些什么?
  13. 为什么堆大堆小内存要设置一样?

YY直播-2面:

1.你们布隆过滤器怎么实现的?

2.怎么在BitMap上解决哈希冲突问题的?

3.为什么不直接用Order作为Key,直接以KV形式存储在Redis里面?(占内存)

4.Redis用的什么集群?Redis有做读写分离吗?

5.怎么利用Redis做的MQ幂等性?

6.怎么利用Redis来设计每日热搜排行榜?

7.Redis分布式锁有几种实现方式?

8.Redission底层是怎么实现分布式锁的?

9.Java中Syncroinze锁和ReenTrantLock有什么区别,底层怎么实现的?

10.问几个Linux命令:(都没答上来)

怎么查询IO磁盘占用了多少?

怎么查询内存占用多少?

怎么查询CPU占用?

怎么查询网络连接占用多少?

11.怎么利用MySQL实现分布式锁?

12.MySQL建表的时候,你要考虑一些什么?

(字段类型,长度,索引设计,null值,编码等去聊)

13.设计题:有20个群,大概每个群1万人,需要在15-16点的时候,会在群里的右下角展示一个图片,图片中投票按钮,和显示 “已投人数”,投完票后显示本群已投票的人名榜,按住投票先后排序。 这个你怎么设计?

。。。。二面后挂了:面试评价:Java基础较好,但是Linux知识比较差,因此知识面不广。

\

\

富途-1面:

  1. 浏览器发起请求后经历了哪些过程?
  2. HTTP由哪些部分组成?
  3. 三次握手四次挥手分别传递了什么信息?
  4. HTTPS协议的区别? 对称加密先做了非对称加密?
  5. 一个SQL查询题?
  6. 一个SQL表设计题?
  7. 一个场景提?
  8. 一个字符串解析题,需要用到递归去实现。
  9. 一个级联关系的JSON,怎么解析,据说在什么加密算法里有使用到?

。。。其他的忘了,反正前前后后面了一个小时

富途-2面:

1.有AB两个数组,判断B是否为A的子集。(编码题)

2.一副扑克牌,没有大小王一共52张,从里面随机抽2张,问抽到颜色相等的概率是多少。(算术,思维题)

3.一堆桃子分给一群猴子,如果每个猴子分3个,还剩59个;如果每个猴子分5个,那么最后一个猴子分得的桃子不够3个,你能求出有几只猴子,几个桃子吗?(思维题)

4.事务的四个特性?分别解释一下四个特性

5.事务怎么实现的?Spring里面又是怎么实现的?

6.TCP协议的三次握手

7.TCP以及握手中发送了什么信息

8.如果利用第三次握手后如果没有返回服务端,会发生什么?

。。。面完后挂了:算法写出来了,数学题没做出来。

朴朴买菜-1面:

  1. 熟悉线程、线程池的参数使用以及原生线程池的一些问题
  2. 了解synchronized,了解锁优化,了解voliate,lock的底层原理
  3. 了解jvm的原理,对jvm做的调优,比如导致数据场景,调大新生代,避免对象今早进入老年代
  4. 使用过工具分析过dump文件
  5. 了解数据库索引结构、知道聚集索引,非聚集索引,了解索引下推,b+树结构等
  6. 会使用explain分析慢sql,遇到过隐式转换导致索引失效
  7. redis这块用过分布式锁,用过sortedset(主要拿来排序,场景是延时队列,不是常见的redis延时队列方案),使用过bitmap,配合lua脚本实现限流
  8. mq使用简单了解,知道消费不丢,了解顺序消费,了解幂等消费方案

朴朴买菜-2面:

  1. 如何解决系统调用时数据的一致性问题。
  2. 刷数据问题:要求使用time_update更新,避免漏数据。刚好在分页节点,多条记录time_update 一样的时候,使用id排序做游标, 包括深分页的优化。
  3. 上述业务有无其他方案,能想到消息的方式,但是觉得过度设计,宁愿这种耦合。
  4. 对DDD、领域事件有基本了解
  5. 接口优化,线程池、事物粒度等角度讲。
  6. 有个特别的设计:开票二维码的code,有自定义的规则判断是否有效,避免无效请求。
  7. 按照场景提前加载缓存。穿透问题有考虑,方案只是使用了单机线程池,流控方面比较缺少
  8. 固定窗口、滑动窗口等方案了解,面试过程能细的讲滑动窗口的自定义实现(数据结构不优)
  9. 压测方案怎么指定?解读和场景方面缺少。

\

朴朴买菜-HR面:

问为啥离职,介绍深圳计算团队,是做供应链的,人数就几十个人,然后直接

谈工资,谈期权。(社保低,公积金高)

\

玄武科技-1面:

  1. 聊聊JVM虚拟机
  2. 聊聊JVM内存模型,GC,对象回收算法。
  3. 聊聊Java中的多线程要考虑的问题?(原子性,隔离性,有序性,从这三方面去切入)
  4. 聊聊java中为了解决线程安全的东西,锁,队列,volatile,安全容器,原子变量等等。
  5. 聊聊Jvm的类加载,对象创建,Javac,类加载器,双亲委派,JavaAgent动态代理,cglib动态代理从这些去聊)
  6. 聊聊Java中的IO模型,AIO,BIO,NIO。这些。
  7. 了解Netty底层的实现吗?聊聊多路复用,React模型,select,poll,epoll模型。
  8. 聊聊Spring中的东西,IOC,DI,AOP这些。
  9. 聊聊SpringBoot里面是怎么设计的,SPI机制,start怎么实现的,那一堆吧。
  10. 聊聊SpringBoot中内嵌的Tomcat,和Jetty有什么区别?
  11. 聊聊Innodb中的索引结构。
  12. 聊聊SQL优化时,和建表时需要注意哪些。(建表时,select查询时,修改插入时, 从这几方面切入)
  13. CodeReview时,你会注意哪些方面?(可读性,拓展性,性能 从这三面去总结)
  14. 聊聊你知道哪些设计原则,开发时是怎么体现的?:(单一,开闭,里氏替换原则)
  15. 聊聊TCP为啥时可靠性传输?
  16. 为啥TCP连接时要三次握手,断开时需要四次握手?

玄武科技-2面:

  1. 问了一下项目业务?
  2. 有哪些难点?
  3. 介绍一下分库分表过程是怎么实现的?
  4. 讲讲你做了哪些技术方案?
  5. 讲讲GetWay的原理?
  6. 如何设计一个高并发的系统?
  7. RocketMQ的底层实现?
  8. 。。。反正正常是面过了,但是面试官的结论,基础好,深度意识可以,就是缺少高并发的场景。

玄武科技HR-3面

期望薪资?

为什么想来深圳?

自己擅长什么?

基本上就是闲聊?

奇虎360-1面:

  1. synchronized的底层原理
  2. 什么是内存逃逸分析?
  3. volatile的底层原理
  4. AQS底层原理
  5. 用了哪些NoSQL数据库,为啥要用Mongodb不用MySQL。
  6. 你们CodeReview会注意哪些?
  7. 你们采用敏捷开发模式,是怎么去推动?
  8. 有没有遇到过那种迭代穿插进行的时候?
  9. 你们Excel导入是怎么优化的?
  10. Redis怎么实现的项目重启保证幂等性问题?
  11. 有哪些JVM调优的经历?
  12. JVM调优有哪些参考指标?
  13. G1和CMS回收器有什么不同?
  14. 你们那边网络安全是怎么保证的?
  15. 你知道哪些网络安全漏洞?
  16. 对下一个公司有什么期盼?
  17. 有干了哪些开源的事情?

。。。面过了,后面问我现在的工资和期盼,我拒绝,没告诉他,感觉他不是leader,只是处于好奇问的。

奇虎360-2面:

上次Log4J的安全问题有了解吗?是怎么实现的线程不安全?

还有个什么场景题?我给忘了?

介绍了一下项目

怎么保证请求的有序性?

其他:

据说第一面评价说技术OK,所以就没多问技术方面的问题了,介绍了他们公司的情况。

据说这个他们项目组是去年被360收购的公司,组织架构现在是360集团,行政福利都一样,只是现在还没搬到广州总部一起办公,属于游离状态。

奇虎360-3面:

目前还没约面,Boss特意给我打了个电话,因为Boss在深圳被隔离起来,无法现场面对面交流。

Boss说后面有时间再约我,感觉他们也不着急的样子。而且他们技术团队只有二十多人,是去年新收购的,目前还没有和360总部的在一起办公,目前是属于自己管自己,但是组织架构和福利待遇和360总部保持一致。

\

致景科技-1面:

  1. SQL调优有哪些?
  2. 讲讲并发线程安全?(多节点线程安全&单系统中的线程安全)
  3. 讲讲负责的系统业务?
  4. 讲讲分布式锁的实现?如果获取锁失败怎么办?
  5. 讲讲Redis限流怎么实现的?(固定窗口+弊端)
  6. 分库分表你们是怎么做的?(调研+方案+上线+数据迁移+测试)
  7. 对未来的规划?

致景科技-2面:

要我去线下面试,放他鸽子了。。

三七互娱-1面:

问了一下大数据相关的东西,什么数据建模之类的。

基本上是问的一些开发思想,规约,建设,感觉面试官不是做Java开发的

三七互娱-2面:

  1. 你们的迭代是怎么跑的?
  2. 怎么JVM调优?
  3. OOM问题,你们是怎么解决的,有考虑过这个NIO框架里为啥会OOM嘛?
  4. File文件压缩工具怎么做优化?用到了NIO中的哪个特性?
  5. 什么是零拷贝?
  6. 你们为什么要重构?怎么做重构的?怎么保证重构后的新老服务无缝对接?
  7. 针对一些C端APP,不改变接口的情况下,如何切换新老服务?(反向代理,网关,IP切换等)
  8. 如何实现重构后的AB(灰度发布)发布?
  9. 你们是如何管理开发,测试,线上不同环境的?
  10. 如何管理代码分分支的?(Gitflow?)
  11. 系统部署环境是你们整的嘛? (用的Jenkins,脚本是运维写的)
  12. 为何要自己搭一套FastDFS?
  13. 讲讲线上SQL事故,为啥要弄Soar工具,有啥好处,比Expain分析工具好在哪里?
  14. 最近做的一次技术分享是什么?
  15. 为啥要用ES替代ADS? (成本,场景)
  16. 有做过大数据或者用户画像方面的系统吗?
  17. 你们一般有哪些技术OKR?
  18. 对加班有什么看法?

三七互娱HR-3面:

给了定级P5,年包34万左右,HR说1,2,4加班到九点

做的是斗罗大陆,等游戏后台的营销,支付,等一个游戏平台部门,

工作内容:对接和开发占比 3:7, 平时可能回写写SDK之类的

听做游戏开发的朋友说,三七互娱很卷,劝退。

格力电器-1面:

  1. 说说HashMap的底层数据结构?
  2. HashMap的扩容实现?
  3. HashMap出现线程不安全的原因?
  4. 讲讲 并发包里熟悉哪些类?
  5. 知道ReentrantLock底层是怎么实现的嘛?介绍一下里面的CHL队列?
  6. 讲讲NIO,BIO,AIO的区别?
  7. 讲讲BIO是在哪个阶段发生了阻塞? 用户空间-内核空间的哪个阶段阻塞?
  8. 讲讲NIO的多路复用模型?
  9. Poll,epoll的区别? (轮询,通知,水平触发,边缘触发)
  10. 讲讲Redis和Nginx中的NIO实现嘛?(equeue,Event事件驱动等,多路复用模型等)
  11. 你们Redis用的是什么集群?
  12. Redis Cluster集群部署时,Redis多主节点,是把Key落到Hash槽位中前,这个Hash值是在客户端算出来的还是在服务端算出来的?
  13. Redis多节点要扩容时,是怎么实现的?
  14. 讲讲Hash一致性算法?
  15. 一个API接口出现卡顿,你如何排查问题? (监控判断瓶颈位置,如网关,第三方接口调用,慢SQL,锁超时等。JVM进程层面:判断是否发生了FullGC,是否有线程池配置不够等。Linux层面查看CPU占用,内存占用,网络阻塞情况等。)
  16. 讲讲为啥用来Nginx还要用Getway网关,有啥区别?
  17. GetWay出现了断言清空问题?你怎么排查? (GetWay的自身Bug,他们遇到过)
  18. Nginx怎么实现高可用? (LVS前置负载均衡,SLB ,Nginx层层代理,但是有20%的性能损耗等)
  19. 为啥要使用Nginx,为啥不直接挂Tomcat,这样就课没损耗了?
  20. 讲讲设计一个API接口,要注意哪些问题?
  21. 怎么保证前端表单不会出现重复提交? (表单不会被抓包抓到重复发送数据请求过去?)
  22. 你们有哪些场景案例提升了接口的QPS?

格力电器-2面:

  1. 讲讲JVM?
  2. 你们JVM参数有哪些?为啥要这么设置?
  3. 讲讲有哪些GC回收器?分别怎么用的?
  4. 有哪些垃圾回收算法?
  5. JVM参数模板上可以指定用哪种算法吗?
  6. 做过哪些JVM调优?
  7. 用过哪些OOM排查工具,怎么排查的?
  8. 用的阿里那套微服务框架嘛? 对那个东西熟?
  9. 了解GetWay网关吗?
  10. 做过哪些QPS提升的东西?
  11. 做过压力测试吗?
  12. 了解多少Redis?用的什么集群?
  13. 知道Proxy集群模式吗?实现Redis代理的?
  14. MySQL的行级锁是怎么实现的?
  15. MySQL的事务是怎么实现的?
  16. BinLog日志有哪几种模式?statement模式,rows, statement+row结合
  17. Cancel有了解吗? 他是用的哪种模式做的数据采集?

。。。挂了,面试官是公司同事的朋友,不配来应聘他们的高级,他们要的能解决问题的能力,线上排查问题的能力,而不是单纯写业务,背八股文的。

格力电器-HR面:

  1. 为什么离职?
  2. 对下个公司有什么期盼?
  3. 你在当前公司的职责是什么?
  4. 你的身高体重,是否结婚?
  5. 期望薪资
  6. 格力 电子商务公司 数字化互联网 转型,
  7. 深圳:150人左右,开发事,电商,物流,仓储。
  8. 非深户 2档 , 1万技术的10%公积金,合同主题 深圳艾维普公司,9-6点下半年

小鹏汽车-1面:

  1. 没问啥技术、
  2. 基本上问你对项目的了解?
  3. 部门的一些职责,规约,比较一些技术难点,和技术方案。

小鹏汽车-2面:

  1. 和一面问的差不多,简单问了几个技术点,和算法设计
  2. 什么是BitMap的假阳性?
  3. 通用的导入导出方案是怎么玩的?
  4. 有哪些不错的方案设计?对产品的熟悉度?
  5. 怎么划分迭代的?未来的规划?
  6. 平时怎么学习?
  7. 在技术方面有什么优势?

小鹏汽车HR-3面:

  1. 为啥离职?
  2. 上一家公司为啥要回深圳?
  3. 个人兴趣爱好等?
  4. 个人学习情况等?
  5. 讲解公司的待遇情况:
  6. 做小鹏飞行汽车的业务,小鹏汽车一样的薪酬结构,就是业务有点区别
  7. 去年融资了5亿美元

\

欢聚集团-1面:

  1. Java基础?
  2. Lua脚本使用固定窗口限流的算法?
  3. 令牌桶算法,漏桶算法,滑动窗口算法?
  4. @Transiational事务注解的实现?
  5. JVM垃圾回收机制,线上排查经验?
  6. 系统复杂度情况,有无异常应对场景?
  7. 分布式ID生成方案,但对雪花算法的时间回拨问题没有解决方案

。。。缺少电商,物流,等复杂系统的开发经验。面试的供应链部门

欢聚ShopLine-1面:

  1. 没有自我介绍,直接先介绍项目?(感觉面试官一天面了很多人,部门专场面试)
  2. 项目里面怎么保证数据的一致性?
  3. 怎么保证订单消费的幂等性?
  4. Redis里用BitMap做订单存储,可以修改吗?
  5. 怎么保证Redis里面的数据和MySQL里面的一致性?
  6. 利用每晚定时任务去维护BitMap里Order信息的完整性,如果在维护之前就有操作怎么办?
  7. 如果Redis挂了,还会不会去重新维护一个BitMap结构?
  8. Redis+Lua脚本限流是怎么实现的?为啥要用这个实现? (固定窗口算法)
  9. Excel数据导入导出工具优化怎么实现的?
  10. 兑换码是怎么生成的? (海明码,增加逻辑校验,减少无效请求)
  11. 项目里面还有用到什么技术难点?
  12. 为什么采用双写的数据迁移?不用Canal去监控BinLog日志去迁移?
  13. 如果双写时,遇到有老数据的修改你们是怎么解决的?
  14. 新老库双写时,有没有遇到事务问题?
  15. 会记录错误日志,存储在哪里?
  16. 还有什么想问的吗?

。。。。基本上抓着项目上,和简历上的东西问,所以对简历上写的东西一定要准备好。

部门专场招聘,感觉面试官一天面了不少人,自我介绍,客套话都省略了。

欢聚ShopeLine-2面:

1.自我介绍

2.介绍项目,

3.分析系统的分层,架构、

4.系统之间是怎么调用的?

5.你们系统之间的边界

6.为啥要把B端C端的流量放一个系统上?有什么好办法把它区分开?

7.如果分开部署,那怎么保证系统的公共业务是通用的呢?

8.为啥不建议一个应用挂两个数据源?

10.什么是中台?什么是平台?

基本没问技术八卦文,就是讨论系统设计的知识,相互讨论,相互互怼,有时候我反问他,问他们是怎么做的,他说他们也不是这样干的,只是为了讨论而已。。。。MMP。

\

网易OA-1面:

  1. 线程池配置的参数?(CPU密集,IO密集,不同配置)
  2. 线程池内部创建线程的原理,以及引发OOM问题?
  3. G1的垃圾回收的特征? 用的什么回收算法? (复制,说成了标记整理,答错了)
  4. Map为啥要用红黑二叉树的特征?
  5. Spring框架中有用了哪些设计模式?用在哪个地方?
  6. 怎么解决Bean的循环依赖问题的?
  7. AOP切面的底层实现原理?
  8. 在一个Bean内调用添加事务的方法,事务是否会生效?
  9. Redis有哪些数据类型?
  10. Redis有哪几种日志持久化方式?
  11. Redis底层有哪些数据结构?
  12. SortSet底层什么时候是压缩列表,什么时候用跳表?
  13. 什么是跳表?数据结构是怎么样的?
  14. Redis有哪些集群模式?
  15. Redis的分布式锁是怎么实现的?
  16. 还有哪些分布式锁实现的方式?
  17. ZK的高可用机制是怎么保证的? (paxos算法?不知道)
  18. ZK实现分布式锁是怎么实现的?
  19. SpringCloud中的Eureka是多点集群的吗?
  20. 内部高可用的机制是怎么实现的? (不知道)
  21. 如果Eureka挂了,客户端之间还能调用吗?
  22. Nginx有哪些负载均衡算法? (随机,轮询,Hash,权重)
  23. 如果请求采用Hash算法?但是后面新添加了节点,怎么解决扩容问题? (转移到 一致性Hash算法上?)
  24. 一致性Hash算法是怎么实现的?
  25. 你用项目里面用了哪些设计模式?怎么用的?
  26. 单例模式有哪几种?
  27. 怎么解决并发时的单例情况?(双重锁?序列化反序列对象创建bean)
  28. 项目中是怎么用工厂模式去做对三方请求的? (我描述的可能不太清楚)
  29. Kafka了解吗? (不太了解)
  30. 和传统MQ的区别?
  31. Borken,Topic,Patiion..(分区) 之间的关系?
  32. 一个Topic是单节点还是多节点的? 忘了,不了解 。。
  33. 慢SQL怎么排查? (Explian)
  34. Like 会使用索引吗?
  35. 等于号两边使用函数,会用索引吗?

。。。。挂了。。。

\

唯品会-1面:

  1. 自我介绍,讲讲项目?
  2. Redis存一些什么?
  3. Redis做分布式锁遇到过哪些坑? (死锁,锁占用?)
  4. Redis缓存失效,有大量请求怼在MySQL上有什么问题? (其实就是缓存雪崩的场景)
  5. Redis的RDB文件过大,怎么解决?
  6. Redis分布式集群最大支持多少实例?
  7. Redis主节点挂了,如何快速恢复?
  8. 影响Redis恢复速度的情况可能有哪些?
  9. MySQL什么时候会使用间隙锁?
  10. 你们的表最大数据量有多少? (4000W+)
  11. 你们大表做了哪些优化? (索引,业务上表分层,ShardJdbc分库分表)
  12. 分库分表情况下有哪些汇总计算的方式?(异步汇总缓存,查询内存汇总,Hive和MapReduce)
  13. 新应用上线,JVM参数模板怎么配置?(默认模板,压测,GC日志,堆占用,调节)
  14. JVM频繁发生YGC和FullGC,你怎么去定位问题和解决? (GC日志,动态规划,担保机制)
  15. 你们用了有大数据的Hadoop,Hive这些东西吗? (说没有用到,但自己学过,就没下文了)
  16. 问到这里没了,有什么想问的嘛?

反问面试官:

Redis你们遇到过节点挂了的情况吗? 你们怎么快速恢复的? (结果就TM的主从切换,他们数据迁移的时候有考虑过)

前端后端大数据都要会点?(且大量操作Redis)

唯品会-2面:

(面试时录音了,所以把每一个问题都记录了下来。面了50分钟左右)

  1. 介绍一下自己项目?(数据走向分析)你们的系统分层?为什么要这么分层?
  2. 你了解什么是DDD驱动领域模型吗? 了解DDD有哪几种模型?(充血,贫血)
  3. 为什么要在系统中用MQ? (解耦,异步,削峰)讲讲MQ中的解耦,和异步有什么区别?
  4. 下单的时候扣库存有什么问题? 下完单后扣减库存又有什么问题?
  5. 下单同步扣减库存和下单异步扣减库存有什么区别?会出现什么问题?
  6. 怎么解决库存多卖问题吗? (分布式锁,Redis原子Incr命令)
  7. 分布式锁保证扣库存,会存在什么问题? (串行,效率低)
  8. Redis扣减库存后怎么最终会持久化到MySQL中? (相等与缓存一致性的解决方案)

\

  1. RocketMQ的技术架构你了解过吗? (下面几个直接说不了解)
  2. RocketMQ的Topic是怎么管理的?
  3. RocketMQ的服务器(节点)是怎么管理的?)
  4. RocketMQ的日志文件是怎么管理的?
  5. RocketMQ的推拉模式是怎么实现的?
  6. RocketMQ支持什么样的事务?

\

  1. RocketMQ发消息存在哪些不可靠的点?
  2. MQ发送失败怎么 办?
  3. 本地消息表记录发送状态,那么如果这个状态如果没有修改成功,那么判断是否发送成功的点哪?他有没有发送成功的可能性?
  4. 发送的消息有个唯一标识,唯一标识是选择自己生成的还是用MQ系统的生成的?
  5. 如果第一次发送成功了,第二次又发了,在MQ服务端收到两条相同消息,MQ会怎么处理?
  6. RocketMQ是从哪些方面解决性能问题的?
  7. RocketMQ是在哪一块用的零拷贝?
  8. MQ客户端什么情况下需要做幂等?
  9. 消费者端做幂等的话,需不需要做Try/Catch ?
  10. 你们会用MQ的重试功能嘛?
  11. MQ如果没有消费成功会重复消费吗?

\

  1. Redis底层有哪几种数据结构?(跳表,压缩列表,SDS,数组)
  2. Redis除了上面这些还有什么数据结构吗? (BitMap? RedisObject可自定义类型?)
  3. SDS为什么交动态字符串? 那SDS会动态换吗?
  4. Hash和List底层数据结构是哪几种? 怎么选择的?

\

  1. Redis集群之间的通信协议原理你知道吗? (二进制Gossip)
  2. 为什么Redis官方说建议最多1000台部署?
  3. Redis的热Key怎么解决?

(我说没理解啥是热Key,他问的意思是高频使用的Key,有可能在集群中有部分节点出现了CPU飙高的问题,你怎么去解决怎么去查? 我从 数据倾斜,BigKey两方面去定位分析 )

  1. 为啥大Key会打满CPU? (fork持久化线程时,和遍历时间复杂度 去分析的)
  2. Redis的布隆过滤器去重的范围是多大? (没有固定,需要根据BitMap长度和hash函数个数去分析)
  3. HIVE本身的原理是什么?他是怎么工作的? (HDFS,MySQL存元数据,底层MapReduce)
  4. Hive和MapReduce有什么关系? (底层计算是用的MR)
  5. 什么是Map什么是Reduce?
  6. MapReduce会存在数据亲些的问题吗? 怎么解决? (不知道)

\

  1. CopyOnWriteArrayList 什么情况下使用它会合适?
  2. Synchronized 和 volatile 有什么区别? 也可以讲讲底层实现怎么实现的?
  3. 单处理器(单核)存在并发问题吗?

反问面试官:

你们做什么业务的?运营中台,MPD,活动提报系统 图文系统,用户画像系统,超微系统? 反正他们组是和用户相关的,面试官是做超微系统的,进去之后也不一定是做超微系统。

你们Redis有多少实例? (300台,大促下会有600台 )

唯品会-3面:

(录音了,所以问题记录的比较多,面了1个小时多点。)

  1. 为什么想离职?
  2. 你在项目组里面是什么角色?
  3. 重点讲一下系统中遇到了些什么问题?有什么难点?用了什么方案去解决的? (BitMap去重,海明码)
  4. 你的项目质量是怎么保证的? (我从三个维度分析:代码质量,系统稳定质量,数据准确性质量)
  5. 讲一下你们怎么做CodeReview的?

(从两个维度去分析:

方案设计维度上: 体现API接口,和表设计和字段选型;

代码维度上:需要从时间,空间复杂度,池化配置,SQL效率,工具选型,代码可读性上去Review)

  1. 开发完后你们的单元测试怎么做的? (没做,不了解)
  2. 项目开发完后发版,你们怎么保证系统的稳定? (灰度,回滚机制,DDL语句)
  3. 你们用Redis除了做布隆过滤器还做了啥? (延时队列,固定窗口限流,缓存)
  4. 讲一下Redis的Hash底层实现是怎么样的?

(我讲了 压缩列表,跳表 的特征,以及内部怎么抉择的使用哪种数据结构的)

  1. Redis或DB的连接池怎么选择去配置的? (我从两方面:Java客户端业务场景,DB服务端的瓶颈)
  2. 本地缓存有用吗? (反问是不是说的是Ecache那种缓存?)
  3. 堆内和堆外的缓存有什么不一样?
  4. 堆外和堆内内存是否对GC有影响?
  5. Linux的内核有没有研究过? 有没有做Linux内核方面的调优? (没有)
  6. 你一般怎么去分析GC日志的? (jstact -gc 1000 1000 )
  7. JVM参数中的GC参数你怎么配的?有什么依据? (从GC间隔时间,存活率,GC时长去分析)

\

  1. 你怎么设计一个秒杀系统? (从 持久层,交互,系统稳定性三方面去考虑)
  2. 在秒杀系统中 你用Redis是做持久层还是缓存?
  3. 怎么把Redis上的库存信息同步到MySQL?
  4. 如果你服务发版,把过期时间为15天的缓存给删了,你怎么把缓存恢复到Redis?(有点像预热的场景)
  5. Redis节点挂了怎么恢复?
  6. Redis主节点为什么不能开启持久化方式?

(主从快速恢复,fork拷贝内存耗时,利用丛丛去级联同步日志)

  1. Redis主不开启持久化,从开启持久化机制,如果主节点挂了从当选为新的主节点来使用,此时从是配置了持久化的,那岂不是性能有影响? (没办法,异常情况只能快速恢复)
  2. 怎么监控系统? (我从三方面回答,系统日志层面,服务器实例监控,分布式链路监控)

\

  1. 问我对新公司的期盼? (对技术有追求,有学习成长)
  2. 问我们现在公司上班的情况,加不加班(我说七八点下班,2周一个迭代的那种)
  3. 你了解那些互联网电商公司的加班情况吗?

介绍他们组,做的是VIP用户下的交易系统,QPS上万,几十万的那种,要实时响应变化,经常需要发版。

所以需求多,加班多,一般是晚上10点左右才能下班,项目比较具有挑战性

项目紧偶尔也会周六加班,面试官意思是如果能力好做的快,9点干完了,为了考虑整体团队情况也得10点下班的那种。比我现在的工作强度大很多,但是互联网电商项目比较具有挑战性,适合我们这种小年轻。

反问面试官:

你们Redis的主节点开启了了持久化机制吗?(不开启)

你们Redis的节点能到多少QPS?

(比我说的理论值10万QPS远远要小,只有6万左右的,让我感兴趣自己去试试。)

记不太清楚的公司:

SHEIN,金蝶信科,明源云,中国平安,万物云 ,用友,亚信

\

这几个公司, 都不考算法,难度中等偏下,基本上都是八股文+开发经验的问题。

  • JUC的并发包下的Automic类,已经底层的实现
  • CAS问题
  • 多线程下实现代码的顺序执行
  • List 的两种线程安全模式?
  • HashMap的Put过程,以及扩容过程
  • Mybatis的插件式编程
  • MySQL的Join过程,
  • 如何设计5000千万个用户发放6位数(字母+数字)的兑换码?
  • Redis 什么时候用Set,List
  • 缓存一致性?
  • 数据一致性?
  • 分库分表?
  • 分布式锁等?
  • 自增主键等?
  • CodeReview等等
  • 线程池原理等?
  • Bean的生命周期等,
  • IOC,AOP底层实现等。
  • MQ保证消息不丢失,保证幂等性,保证可靠性消息投递,保证消费顺序问题等等。
  • 基本上,redoLog, undoLog, MySQL常见的优化,B+数据结构,索引优化,回表,聚簇索引,线程池,以及配置池子的时候需要注意的问题


感谢阅读,更多的java课程学习路线,笔记,面试等架构资料,需要的同学可以私信我(面试)即可免费获取!

2022广深Java中小厂面试记录_第1张图片

 

你可能感兴趣的:(java,面试,开发语言)