历时一个月整理2021金三银四Java面试题汇总,蚂蚁金服拼多多字节跳动的面试总结(干货献上)
Posted Java_宇宁
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了历时一个月整理2021金三银四Java面试题汇总,蚂蚁金服拼多多字节跳动的面试总结(干货献上)相关的知识,希望对你有一定的参考价值。
文章内容略长,不过看完对你是有帮助的。本文主要分为四部分给大家分享,请耐心看完!
- 准备过程
- 蚂蚁金服面试分享
- 拼多多面试分享
- 字节跳动面试分享
- 总结
准备过程
8个核心要点,轻松应对面试
投递简历前
1、简历深度优化,HR每天翻阅上千份简历,平均3-10秒看一篇简历,怎么让自己的简历突出?合理的排版可以大幅增加成功率。除了排版,还要用关键词引导Hr看到你的优势和强项,例如“负责”、“操盘”、“数据”等等…
2、自我介绍话术,说简单点,就是200-300字的小作文。当公司hr给你打电话时,怎么在两分钟内快速介绍自己并吸引hr?私信问我
简历投递中
3、梳理投递岗位的工作内容,你真的知道你投的岗位是干啥事情吗?我辅导的80%求职者对岗位工作是没有概念的。建议你去脉脉、领英、赤兔等职场app,去私信该公司的从业者,询问目前遇到的问题或项目方向,这样你就能在面试中过程中“不经意”的透露自己的想法和强项,让负责人两眼发光。
4、了解行业大概信息,你是否对所投职能大概了解?互联网产品、信息流广告、算法数据、短视频内容等多职能部门,你了解多少?有哪些看法?
5、公司架构及所处部门等级,在全国有多少分公司?分别负责产品开发?客服?审核?内容?商业化?KA/LA/SMB,你知道自己即将去哪吗?发展前景和部门重要级是多少?
面试时
6、基础话术及注意事项,哪些话不能说?“我不懂但我愿意学”,哪些话说出来加分?“我认为最好的解决办法是…因为…”哪些话说了等于不说?“我觉得字节是互联网大厂,我想进来学习提升自己”
7、弄清四轮面试的负责人,第一轮是Hr电话面试,第二轮视频或线下面试,第三轮该小组负责人及Hr面试,第四轮部门或城市负责人面试。
8、压力面试怎么应对?问到你不懂的问题应该怎么回答?有哪些万能口水话?怎样高效通过第四轮面试?
言归正传,准备过程其实很早开始了(当然这不是说我工作时老想着跳槽,因为我明白现在并不是终点,我还需要不断提升),具体可追溯到从蚂蚁离职的时候,当时出来也面了很多公司,没啥大公司,面了大概5家公司,都拿到offer了。
工作之余常常会去额外研究自己感兴趣的技术以及工作用到的技术,力求把原理搞明白,并且会自己实践一把。此外,买了N多书,基本有时间就会去看,补补基础,什么操作系统、数据结构与算法、mysql、JDK之类的源码,基本都好好温习了(文末会列一下自己看过的书和一些好的资料)。我深知基础就像“木桶效应”的短板,决定了能装多少水。
此外,在正式决定看机会之前,我给自己列了一个提纲,主要包括Java要掌握的核心要点,有不懂的就查资料搞懂。我给自己定位还是Java工程师,所以Java体系是一定要做到心中有数的,很多东西没有常年的积累面试的时候很容易露馅,学习要对得起自己,不要骗人。
剩下的就是找平台和内推了,除了蚂蚁,字节和拼多多都是找人内推的,感谢蚂蚁面试官对我的欣赏,以后说不定会去蚂蚁咯。
平台:脉脉、GitHub、v2、领英、赤兔
说了这么多,言归正传。
蚂蚁金服
蚂蚁金服Java岗一面:
1 HashMap&ConcurrentHashMap
2. 再谈谈一致hash算法?
3. 乐观锁&悲观锁?
4. 可重入锁&Synchronize?
5. 事务四大特性?
6. 事务的二段提交机制?
7. 聚簇索引&非聚簇索引?
8. 用自己的实践经历说一下索引的使用场景(说一个就要举一个例子)?
9. 当前读&快照读?
10. 类加载过程?
11. 双亲委派机制及使用原因?
12. 说说GC算法?
13. Http&Https的区别
14. Https的加密方式
15. 线程池的核心参数和基本原理
16. 线程池的调优策略
17. 你有什么职业规划
蚂蚁金服Java岗二面(从项目入手):
1 说说自己参与的项目,技术难度在哪里
2. Collections.sort底层排序方式?
3. 排序稳定性?
4. 具体场景的排序策略?
5. Http请求过程,DNS解析过程
6. 三次握手四次挥手
7. 简述线程池和并发工具的使用?
8. 数据库索引原理
9. 频繁老年代回收怎么分析解决
10. Spring IOC、AOP?
11. 讲讲SpringBoot/SpringCloud的一些应用?
12. 阻塞队列不用java提供的自己怎么实现,condition和wait不能用
13. 拥塞窗口讲一讲,为什么要用慢启动算法
14. 负载均衡的原理?
15. Redis的数据一致性问题(分布式多节点环境 & 单机环境)?
16. 讲讲docker容器?
17. 如何实现何高并发下的削峰,限流?
18. 你有什么职业规划(每个面试官都要问这个问题,三面也是)
三轮技术面(150分钟)
1.ConcurrentHashMap底层原理?
2.手写一个LRU(用LinkedHashMap)
3.HashMap底层数据结构?
4.JDK1.8中的HashMap为什么用红黑树不用普通的AVL树?
5.为什么在8的时候链表变成树?
6.为什么在6的时候从树退回链表?
7.线程池7个参数,该怎么配置最好?
8.说一下volatile
9.volatile的可见性和禁止指令重排序怎么实现的?
10.CAS是什么?PriorityQueue底层是什么,初始容量是多少,扩容方式呢?
11.若原始大小<64,则扩容为原来的2倍+2,不然就扩容为原来的1.5倍
12.HashMap的容量为什么要设置为2的次幂?
13.你知道跳表吗,什么场景会用到?
14.CopyOnWriteArrayList知道吗,迭代器支持fail-fast吗?
15.innodb的底层数据结构?
16.为什么用B+树不用B树?
17.为什么用B+树不用红黑树?
18.coding:无序数组怎么寻找第k大的数,写一个二叉树层次遍历
19.不知道大小的数据流取其中100个数,怎样的取法能最随机
20.n个物品每个物品都有一定价值,分给2个人,怎么分两个人的价值差最小
四轮技术面(120分钟)
1.项目中的权限管理
2.登录状态如何储存
3.session和cookie的区别,session如何管理
4.HashMap底层结构
5.synchronized关键字的用法
6.synchronized修饰类方法和普通方法的锁区别,获取类锁之后还能获取对象锁吗
7.类加载器的双亲委派模型的作用,能重复加载某个类吗
8.类加载器的类的缓存,key是什么
9.介绍Redis
10.如何将数据分布在不同的Redis
11.有了解过取余算法?
12.spring的apo实现
13.字节码结构
14.浏览器输入网址过程,结合springmvc
五轮技术面(120分钟)
1.HashMap在大量哈希冲突该怎么处理
2.红黑树比BST优点
3.MySQL为什么使用B+树
4.多个索引会有多份数据吗
5.数据库的隔离级别和解决的问题
6.数据库默认隔离级别,一定会产生幻读吗,怎么解决
7.输入网址到展示的整个过程,结合springmvc来讲
8.负载均衡的算法
9.哈弗曼编码,如何解决译码问题
10.实习会对工作有影响吗
11.用英文介绍一个项目
12.如何查看系统负载
13.描述一个解决问题的过程
14.如何把文件从服务器复制到本地,用什么命令
六轮技术面(90分钟)
1.讲讲你所了解的JVM垃圾收集算法
2.项目中用的哪些技术
3.项目如何设计流程流转,如果是你的话该怎么设计
4.MySQL使用的索引结构,查找效率
5.MySQL查询优化
6.MySQL慢查询开启,语句分析
7.HashMap查找效率
8.JVM内存模型
9.设计模式,策略模式的使用场景
10.如何确保单例线程安全
11.Spring的bean的默认范围
12.对Netty的了解
13.未来发展规划
七面(HR):
1.非技术问题
2. 为什么要用你,你与其他竞争者比较优势是什么
3. 你有什么想问我的
4. 如果公司需要你加班你有问题吗
5. 其次聊人生谈理想,HR很ncie,主要交流为什么选择来阿里,未来的打算等,交流挺愉快。
整体的面试感受,面试官都很专业,要求基础知识很熟悉,面试之前一定要准备后再去面试。LeetCode题目也要刷。
切记面试前一定要刷题和准备,简历上的项目不熟悉的千万不要写上去,写上去的项目备好2-3个技术方案。
以上这些内容答案均免费分享给大家,需要完整版的朋友,点击 【这里~】 进群找管理员获取。
拼多多
面试前
面完蚂蚁后,早就听闻拼多多这个独角兽,决定也去面一把。首先我在脉脉找了一个拼多多的HR,加了微信聊了下,发了简历便开始我的拼多多面试之旅。这里要非常感谢拼多多HR小姐姐,从面试内推到offer确认一直都在帮我,人真的很nice。
一笔试
题目具体不记得了,参加的是第一批。难度比第二批高一点,但是主要考察的点都差不多。题目包括了3道sql题目、1道概率题题目和1道业务分析。
sql考查了下面的知识点:
1.timestamp和datetime之间转换
2.date_sub/date_add 日期的前后推移数天计算
3.left join/join/where 等合理的筛选
4.窗口函数rank/dense_rank 等(当次考试没有遇到,但是往年习题有遇到)
5.嵌套关系的熟练度
二面
- 自我介绍下
- 手上还有其他offer么?(拿了蚂蚁的offer)
- 部门组织结构是怎样的?(这轮不是技术面么,不过还是老老实实说了)
- 系统有哪些模块,每个模块用了哪些技术,数据怎么流转的?(面试官有点秃顶,一看级别就很高)给了我一张纸,我在上面简单画了下系统之间的流转情况
- 链路追踪的信息是怎么传递的?(RpcContext的attachment,说了Span的结构:parentSpanId + curSpanId)
- SpanId怎么保证唯一性?(UUID,说了下内部的定制改动)
- RpcContext是在什么维度传递的?(线程)
- Dubbo的远程调用怎么实现的?(讲了读取配置、拼装url、创建Invoker、服务导出、服务注册以及消费者通过动态代理、filter、获取Invoker列表、负载均衡等过程(哗啦啦讲了10多分钟),我可以喝口水么)
- Spring的单例是怎么实现的?(单例注册表)
- 为什么要单独实现一个服务治理框架?(说了下内部刚搞微服务不久,主要对服务进行一些监控和性能优化)
- 谁主导的?内部还在使用么?
- 逆向有想过怎么做成通用么?
- 有什么想问的么?
三面
HR主要问了些职业发展、是否有其他offer、以及入职意向等问题,顺便说了下公司的福利待遇等,都比较常规啦。不过要说的是手上有其他offer或者大厂经历会有一定加分。
小结
拼多多的面试流程就简单许多,毕竟是一个成立三年多的公司。面试难度中规中矩,只要基础扎实应该不是问题。但不得不说工作强度很大,开始面试前HR就提前和我确认能否接受这样强度的工作,想来的老铁还是要做好准备
字节跳动
3 轮技术面 + 1 轮 HR 面
第一轮主要考察 Java 基础,二、三轮注重对应技术的掌握,以及对过往项目的业务理解。之所以令他印象深刻,是因为每轮都聊了一个半小时以上,确实让他受益匪浅。
字节跳动面试流程
今天我把通过一年多内推总结下来的字节求职流程写一遍!不论你是求职老司机,还是小白萌新,期望你有所了解更有底气。
字节的整体流程:简历筛选=>简历评估=>评估通过=>笔试中(非必须)=> 面试中=>面试已完成=>待入职=>已入职
每个流程都是hr手工处理的,任意一流程挂了都会变成已结束。
一面
1 自我介绍,项目经历,项目上的优化项以及原因
2、如何向盲人描述颜色?
️5、你用什么社交产品?选一个说说你的感受。
️6、如何理解产品经理这个岗位?
️7、你用什么字节系的产品吗?选一个说说你的感受。
8、抖音有什么值得改进的地方?
️9、快手这类apρ的流行,请从产品功能出发,说说哪些方法能提升一个短视频app日活。
10、为2-10岁的儿童设计一款视频APP,写出设计思路和推广方式
11、如果你的产品方案不被研发理解,不能如期进行开发,你会怎么做?
12.时间差不多了,先到这吧。你有什么想问我的?
二面
1.ThreadLocal
2.volatile的作用和原理
3.J.U.C中的锁
4.atomic包里的一些问题
5.HashMap的扩容
6.Semaphore信号量用来做什么?
7.Java内存模型
8.Java内存空间是怎么分配的?
9.新生代和老年代可以转换吗?
10.怎么判断是垃圾?GCRoot可以为哪些?
11.G1收集器
12.IO与NIO
13.NIO
14.Class.forName()怎么执行的?
15.守护线程是什么?守护线程是怎么退出的?
16.Stack与ArrayList的区别
18.hashcode和equals的区别
小结
字节的面试确实很专业,每次面试官会提前给你发一个视频链接,然后准点开始面试,而且考察的点都比较全。
面试官都有一个特点,会抓住一个值得深入的点或者你没说清楚的点深入下去直到你把这个点讲清楚,不然面试官会觉得你并没有真正理解。二面面试官给了我一点建议,研究技术的时候一定要去研究产生的背景,弄明白在什么场景解决什么特定的问题,其实很多技术内部都是相通的。很诚恳,还是很感谢这位面试官大大。
总结
最后拿到了拼多多、蚂蚁的offer,还是蛮幸运的。
这里要说的是面试前要做好两件事:简历和自我介绍,简历要好好回顾下自己做的一些项目,然后挑几个亮点项目。自我介绍基本每轮面试都有,所以最好提前自己练习下,想好要讲哪些东西,分别怎么讲。此外,简历提到的技术一定是自己深入研究过的,没有深入研究也最好找点资料预热下,不打无准备的仗。
这些年看过的书:
《Effective Java》、《现代操作系统》、《TCP/IP详解:卷一》、《代码整洁之道》、《重构》、《Java程序性能优化》、《Spring实战》、《Zookeeper》、《高性能MySQL》、《亿级网站架构核心技术》、《可伸缩服务架构》、《Java编程思想》
说实话这些书很多只看了一部分,我通常会带着问题看书,不然看着看着就睡着了,简直是催眠良药。
以上这些内容均免费分享给大家,需要完整版的朋友,点击 【这里即可获取完整版~】 进群找管理员获取
还有更多架构资源,以及面试专题。
需要更多资源以及面试专题的一键三连支持下博主,免费获取资料!
以上是关于历时一个月整理2021金三银四Java面试题汇总,蚂蚁金服拼多多字节跳动的面试总结(干货献上)的主要内容,如果未能解决你的问题,请参考以下文章
金三银四已过,为大家整理一批高频java面试题,花点耐心看完,offer拿到手软!