面试职位:Java后端开发工程师。
在面试前三面真的有点急促,一周内就面完了三次面试,接着就开始无尽的等待,整整等了三周左右,终于完成了四面和HR面。整个过程还是比较曲折的,技术面试还是挺考察技术深度的。现在已拿到offer。
面试问题如下:
一面(主要看基础):
- 先自我介绍,讲讲自己基础掌握情况,以及项目经历
- 平时会用到哪些数据结构?
- 链表和数组的优缺点?
- 解决hash冲突的方法有哪些?
- 讲讲自己对HashMap的理解,以及和Weakhashmap的区别?
- 你刚才讲的是JDK1.7版本的实现,知道JDK1.8做了哪些改动么?
- 你们在微服务中用RPC通信还是REST?
- RPo c 7 6 * + ~ [ |C和HO # 1 + 3 5 v !TTP的关系是什么?
- 谈谈什么是HTTP的长连接和短连接?
- TCP的三次握手和四次挥手,以及为什么要三次握手,而不是二次?
- TCP 有哪些状态,} + l k K相应状态的含义?
- 并发包中锁的实现底层(对AQS的理解)?
- 乐观锁和悲观锁的理解及如何实现,有哪些实现方式?
- SynchronizedMap和ConcurrentHashMap有什么区别?/ , ) 4 } _ 3 p
- 如何使用阻塞队列实现一个生产者和消费者模型?
- 简述一下Java 垃圾回收机制?
- 如何判断一个对象是否存活?
- 什么是tomcat类加载机制?
- 类加( V -载器双亲委派模型机制?
- 让, ^ & L A 7 f 9 /你评价一下你自己?
二面(主要问了底层和算法):
- 扯了下项目、讲一下项目经历
- redisR ` g H 5 + N 5 W的底层数据结构了解多少?
- 知道动态字符串sds的优缺点么(redis底层数据结构之一)?
- redis的单线程特性有什么优缺点?0 k K + ! F ) | +
- 用过 Redis 的哪些数据结构, 分别用在什么场景?
- 怎么解决缓存击穿问题的?
- Hytrix的隔离机制有哪些?Hytrix常见配置是哪些?
- 做过哪些调优?JVM调优、数据库调优都行!
- 给了个场景,问你怎么调?
三面U . U 3 ~ +(数据库):
- 依然是介绍自己
- 数据库的高可用架构是怎么样的P S ` | q G F ` q?
- 如何保证数据库主从一致性?
- 知道mysql的索引算法吗?
- 为什么mongoD x k } F K t o 9db的索引用了B树,9 g | 8 Z & F而mysql用B+树?
- 用mysql过程中,有遇到什么Q o ( + ` c }问题么?
- 生产用的是哪种事z [ J O务隔离级别,为什么?
- 谈一谈你对微服务架构的I M f , 7 6 O c理解x * K p j t?
- 用过哪些RPC框架,讲讲他们优缺点?i Z ; % q {
- 用过dockeQ & 0r吗,对容器了解多少?
四面(偏架构方面):
- 介绍一下自己,讲讲项目经历
- 项目中微服务是怎么划分的,划分粒度怎么确定?
- 在实践微服务架构中,有遇到什么问题?
- 在关于微服务间数据一致性问题,是如何解决的?
- 为什么不用其他的MQ,最终选择了Rok; ; { & i 5 & p xcetMQ?
- 为什么RocketMQ没有选择ZooKeeper,而是自己实现了一个NameServer集群?
- Zookeeper在选举的过程中,还能对外提供服务么?
- 对PaxN 4 Y : I T 0 1 5os算法了解多少?
- 如果让你来 f a + 5设计一个春晚抢红包架构,你会怎么设计?
- 有什么想问我的?
五面(HR面):
聊人生^ m x Q [ t Q ; #谈理想,HR很ncie,主要交流为什么选择来阿里,未来的打算职业规划以及待遇等,交流挺愉快。
面试小结:r 1 `
技术基础必须扎实:算法、数据结构、操作系统等,蚂蚁金服面z | S d a 4 = 7 A试对技术的基础非常重视,基础扎实的同学有利于在前两轮突出重围。
技术宽度:主要集中在高并发、多线程、分布式架构,大以及常用中间件(缓存等)的选型和比较。
技术原理深入:重点还是提前准备好JVM、多线程高并发这块。
参与的项目总结:你需要清楚你所做项目的关键u 0 7 v细节、优化、特点、原理。
很多所用第三方库&中间件等的原理,即使你不知道,也要有自己的想法能够说出如何代替实% 9 s :现,比如单点登录的替代方案。
最后,千万不要倒在HR面试环节,避重就轻是重点,特别是优点和缺点,如果问到你的规划是什么,请记Z A . E 2 * ; - O得一定告诉H! ! { aR你想成为一名优秀的技术专家!
资料获取方式:转发和评论这篇文章,然后关注小编,后台私K ` 5 ?信【面试资料】即可打包带走所有资料~
分享一些我个人的学习文; h @ f V档,有需要的朋友自行选择获取:
一本Java核心面试知识宝Y j P L |典把每个知识点解析的很深,对大家应该很有c J S F D V Q _ X帮助,它把大部分的JavQ f s = p O & ~a知识集结在一起深入的解Q T ( g { `析出来(非常建议大伙看一看)
- JVM
- JAVA集合
- JAVA多线程并发
- JAVA基础
- Spring原理
- 微服务
- Hetty与PC
- 网络
- 日志
- Zookeeper
- Kafks} * @ Z T $
- Rabbi tMQ
- Hbase
- MongoDB( T 4 N k
- Cassandrar Y A 6 x b ! % *
- 设计模式
- 负载均衡
- 数据库
- 一致性算法
- JAVA算法
- 数据结构
- 加d ~ ) B $ d l密算法
- 分布式缓存
- Hadoop
- Spark
- Storm
- YARIN
- 机器学习
- 云计算
2019年一线互联网企业350道面试答案整理
- 性能优化面试0 k ( L z = j g专栏
- 微服务架构面试专栏
- 并发编程高级面试专栏
- 开源框架面试题专栏
- 分布式面试专栏
大4 / n H = 9 X , 8厂的面试场景
1、面试文s W p @档专题整理
既然是要面试,那么就少不了刷题,实际上春节回家后,哪儿也去不了,我自己是刷了不少面试题的,所以在面试过程中才能够做到心中有数,基本上会清楚面试过程中会问到哪些知识点,高频题又有哪些,所以n I 8 K f |刷题是面试前期准备过程中非常重要的一点。
根据自身面S O A ; K H w k k试经历整理以及不断收集的(珍藏版)
相关的电子书、底层源码
阿里巴巴必备学习知识点
最后
很多人感叹“学而无用”,实际上之所以产生无用论,是因为自己想要的与自己所学的匹配不上,这也就意味着自己学得远远不够。无论是学习还是工作,都应该有主动性,所以如果拥有大厂梦,那么就要自己努力去实现它。
以上学习资料均免费放送,最后祝愿各位身体健康,顺利拿到心仪的offer!
资料获取方式:转发和评论这篇文章,然后关注小编,后台私信【面试资料】即可打包带走所有资料~