前言
本内容来源于我16年毕业的学长,先在58,后阿里,如今准备跳槽了,以下内容为他的最近面试经历(以及每次面试前后总结的学习资料分享):
我最近从大厂离职之后在合肥呆了个把月,之前已经准备了半个多月,从7月底开始投简历面试,目前是java高级职位,到现在为止已经面了24+公司了,手上也有一些意向offer。现在把跟面试官对垒的面试问题总体记录一下。希望能对正在准备面试的朋友以及面试有过失败经历的朋友有点帮助。需要完整版高清PDF文件的小伙伴可以点击此处来获取就可以了!
手撕代码连环炮
单例模式了解吗?有哪几种?
写个单例模式?这个单例模式有什么问题?
sychronized怎么用的?
volatile呢?
写个冒泡算法?
假如有个数组[1,2,3,3,4,4,5,6,6,7],相对递增有序,给定一个值假如3,打印这个值在数组中出现的第一个索引下标?分析一下你写的这个程序的时间复杂度。
写个快速排序?非递归怎么实现?
写个二叉树的前序遍历?二叉树的非递归中序遍历?
假如有个数组[3,2,2,3,3,4,4,5,6,6,7,4,4,4],有重复数据,现在要去重,要求去重后的数组元素与原来数据的索引顺序一致。分析一下时间复杂度和空间复杂度?有没有更好的解法?思路是什么?
假如有个数组[1,3,7,3,8,4,9,6],现在要求数组中存在最大差值的两个数的索引下标。条件是要索引下标大的减索引下标小的才可以。分析一下时间复杂度和空间复杂度?有没有更好的解法?思路是什么?
手写一个LRU Cache,保障get/put api都是O(1)的时间复杂度?
编写一个程序实现最小栈?
网络协议连环炮
网络协议了解吗?
说一下7层网络协议有哪些层?
说一下我从浏览器输入一个url访问天猫网站整个过程经历了什么?
DNS是干嘛的?
CDN了解吗?干嘛的?
假如我访问12306,发现很慢,怎么排查?
说一下http协议的请求头有哪些?
说一下https与http的区别?
说一下http的状态码有哪些,代表什么意思?
说一下HTTP中session和cookie的区别?
说一下HTTP建立链接的过程?
RPC框架用过吗?是基于TCP协议的吗?
说一下TCP协议的握手和挥手过程?为什么是三次握手,四次挥手呢?
TCP滑动窗口了解吗?解决了什么问题?
假如我的RPC服务出现了大量Timewait和closewait的链接应该怎么排查?
TCP长链接和短链接了解吗?有什么区别?分别适用于什么场景?
- 趣谈网络协议
- 内容一览:
- 视频精讲:
设计模式连环炮
你用过哪些策略模式?举几个例子?
mybatis或者spring源码阅读过吗?了解里面有哪些设计模式吗?
java类加载机制了解吗?用的是什么设计模式?
单例模式用过吗?写个单例模式?还有其他实现方案吗?有什么区别?
说一下什么是策略模式?有什么优缺点?说一下代理模式在哪些地方会用到?
假如我要对接第三方的系统,但是我自己的业务服务协议不支持,如果支持的话有一定改造成本,用哪种设计模式会减少对系统的侵入性?
说一下适配器模式和桥接模式的区别?
- 23种设计模式PDF
- 内容一览:
- 视频资源精讲:
业务系统架构连环炮
你好,我是xx公司的面试官我叫xx,你先做个自我介绍吧?
说说你比较擅长哪方面?java后端?更详细的呢?
说说你怎么用这些技术的?
说一下你比较熟悉的项目?
说一下哪些系统或者大型模块是你独立作为owner开发的?有什么挑战?
画一下业务架构图?里面有哪些核心业务模型?
业务领域有哪些?
是微服务架构的话你这么多工程是通过什么分工的?为什么这么做?
你觉得这个系统的架构模型有什么缺点?
DDD了解吗?如果是你你怎么梳理领域模型?
不依赖任何具体框架你怎么设计工程架构和业务功能模块?说说这么做的好处是什么?
说几个你熟悉的业务流程,在纸上/白板上画一下?
- 架构修炼之道
- 内容一览
hr连环炮
你好,请问你对我们的面试流程有什么想法?
觉得我们的面试官怎么样?
我们公司的办公环境怎么样?
你在上家公司主要是做哪方面的内容?有什么成长?
你离开上家公司的原因是什么?
说说你对上家公司的印象?工作氛围怎么样?
请问你对下一份工作有什么要求吗?想从事哪方面的工作呢?
工作中遇到哪些令你印象深刻的问题?你是怎么解决的?
说说你最近有没有其他需要学习的地方?你平时是怎么学习的?
你觉得你有什么优缺点?
有女朋友吗?
我们公司目前会有加班,你可以接受吗?
你期望的最低薪资是多少?
你现在面试了多长时间呢?
手头上有几个offer?如果给你offer你大概最快什么时候可以入职呢?
性能优化连环炮
做过java程序性能优化吗?
假如我有一个RPC服务出现了FGC怎么排查?
假如我有很多服务在不同的机器上,其中某个服务超时比较严重该怎么做?
假如我通过监控发现CPU飚的比较高怎么看?
一条sql执行的比较慢你会怎么排查?
RPC原理了解吗?说说RPC的调用过程?
假如你去设计一个RPC框架你会从哪些方面去考虑这个框架的性能和高可用?
说说为什么要进行服务治理?
微服务中引入docker/k8s有什么优缺点?
你平时部署系统的时候用的持续集成系统是什么?有什么特色功能提高开发效率?
做过性能测试吗?如何评估一个接口的性能指标?
假如我某个上游系统调用我的接口并发很高,我该怎么做?
如果上游系统对时延比较敏感你该怎么做?
如果上游系统是比较核心的应用不能限流怎么办?
- Java性能优化
- 性能调优实战
反问面试官连环炮
HR:
请问你们公司一般上下班是大概几点呢?
请问你负责的这个部门目前技术团队大概有多少人呢?
请问你们公司未来准备招多少人?
是不是处于业务上升期呢?
听说你们公司最近风评不太好,是真的吗?
现在手头上还有其他offer,假如能给offer的话,你这边能开出什么更有吸引力的条件吗?
目前公司的福利啥的能简单介绍一下吗?
面试官:
我现在没有什么问题了,你有什么要问我的吗?
我问一下你现在负责的大概是哪方面的内容?
你们部门目前在公司是怎么样的定位?
你们部门团队目前有多少人?
请问你最近有没有遇到过比较有挑战的问题?
你们部门做的这个系统有没有考虑商业化呢?
存储系统怎么做的,Mysql?
你能说一下你负责的这个业务的大体内容和流程吗?
我问一下刚刚面试的问题你有什么思路吗?
最后来看看互联网大厂面试真题解析(含答案)
- 目录一览
由于文章在这里篇幅就很长了,只能粗略的为大家这样展示出来了
写在最后
现在很多还没入行的包括一些的初级程序员都可能会被一些网上的一些言论误导,就比如下面这些:
这些其实这些困境出现的原因就是因为自身能力还没有达到一个高度 ,当你提高自身能力,登上更高的层级之后,无论薪资还是发展都会有很大的提升。现在技术更新的速度越来越快,我们程序员这一个群体停止学习就会被淘汰,这是一个很现实的问题。如果你是正在准备面试或者想学习提升一下自己,那么这份文档一定会对你点帮助。需要完整版高清PDF文件的小伙伴可以点击此处来获取就可以了!