你好,我是 Guide。分享一位学弟热乎的面经。这位学弟本 211 硕 985,秋招大大小小拿了十几个 offer,三方签了荣耀 15b,两方签了科大讯飞(薪资等同 15a),京东实习转正。
这份面经非常详细,希望对你有帮助!
下面是正文。
个人情况
本 211 硕 985,半科班,一段研究所 C 实习,一段京东 Java 实习。几个专利,几个小比赛。秋招主要面向中小厂拿了十几个 OFFER,终签约科大讯飞(SSP,40W 左右)。
时间路线表
下面是我从开始学习直到现在的时间路线表。
- 2020 年十月到 2021 年五月学习 C ,后续转为学习 Java 后端。
- 2021 年暑期研究所实习 C 。
- 2021 年七月开始学习力扣,至 2022 年 3 月初,300 余道;截止目前近 500 道。学习力扣先看了 B 站 UP 主爱学习的是饲养员的入门课程,另外就是左程云的课程。其他基本是依靠力扣官网的解答。开了一个季度的力扣会员。
- 2021 年七月开始学习 Java 基础,集合,多线程,JavaWeb,SSM,SpringBoot。这些我基本是学习的尚硅谷的课程。当然也有一些是黑马程序员(例如 JUC、Java 集合)的。十月,开始了第一个项目:尚融宝。学习尚融宝我大致明白了 SpringBoot 怎么用,SSM 的一些基础知识,会一些 ElementUI 、Vue,NodeJs,EasyExcel 组件。以及对中间件 MySQL,Redis,单点登录有一定的了解。但尚融宝项目较大,其实我做了一半就面临找实习压力中途终止了。
- 2022 年三月一日,开始了我秋招第一场面试,阿里云一面。我初生牛犊不怕虎,有很多没答上,我依照自己的想法试着猜测底层实现方式,面试官最后给我过了,并且对我进行了一个比较高了评价。然而,阿里云二面,没有这么幸运,由于八股根本没准备过,二十分钟草草结束了。
- 2022 年三月,我开始学习八股文。我找实习期间的资料主要来自公众号代码界的小白、公众号 JavaGuide、美团技术博客、掘金和 CSDN 文章、UP 主跟着 Mic 学架构,以及牛客面经,知识星球 的 《Java 面试指北》。八股文的背诵主要通过面试加深印象,往往被面试官问住的八股你后续记忆是最清楚的。也许你这个时候还没准备好,那么试试面面小公司吧,面试小公司你可以大致了解到 Java 后端面试的重点集中在哪些地方。
- 2022 年三月十日左右,面了一个西安的小公司,外企风格,一场面试手写了四个题,写出了三个半(最后一个是字典树)。我拿到了第一个 OFFER,但规模确实很小,或许并不是我想要的,我就拒了。不过给我找实习路上增加了信心。
- 2022 年四月,我开始了第二个项目:牛客论坛。我选择牛客论坛的原因很简单:论坛具有一定的实用性,论坛包含的技术栈 MQ、ES 我还没了解过,以及 Spring 框架使用我不熟练。于是花了一个多月把牛客论坛做完了。同期,深入学习了 Redis 和 Mysql。
- 2022 年四月,京东一面,面试官上来就是一道回溯题,四个场景,说能写几个场景写几个场景,但写题时间只有半小时。我写了第一个,第二个一直有问题,我同面试官讲“我可能做不完,我讲一下我的思路”。面试官安慰我“我还是希望你把第二个写出来,你可以 debug,多打印一下中间变量”。于是我找到了 arraylist 拷贝的时候我只拷贝了地址,后面改为了构造函数拷贝就对了。总共写了 2 个场景的代码,顺利地,一面过了,二面也过了。五月,HR OC。
- 2022 年暑期,去京东实习了。在京东学习了很多,编码规范,部门的技术文章,组内系统的设计方案,每周的质量周会,跳点分析,以及实习导师对我严格的要求。实习期间主要负责做了一个并发场景下的组件,自己得到了锻炼。很幸运呆在一个氛围很不错的组,实习转正成功。同期,深入学习了 ES,独自开发过程中踩了 Spring 一些常见的坑。
- 2022 年 7 月初,开始了我的秋招。我的意向工作地点是成都。秋招我主要是通过官网投递简历,部分意向一般的企业是通过牛客一键投递的,国企大多是用前程无忧投递,意向度较高的企业是通过官网投递保证能进招聘的系统里。秋招的过程中,系统学习了小林 Codeing 的 Http 协议、TCP/IP 协议、操作系统相关知识,一个名为“Java 全栈知识体系”的网站中的基础知识,也学习了一个叫做“老齐谈架构”UP 主的一些视频,受益匪浅。提升了面试过程中场景题的应对能力。写了半个 Redis,跟着 B 站诸葛老师写了一个仅包含 IOC 和 AOP 功能的 Mini-Spring。同期,深入学习了 Kafka,了解了 SpringCloud 中的部分组件。
- 秋招我给自己定的是循序渐进的目标,初期希望薪资 15w,拿到 15w offer 再找 20w,再 25w,30w。其实我没想到秋招能找个 40w 左右的,主要原因是今年寒气逼人,Java 很卷,成都岗位数量少,大厂难进。后面讯飞打来电话,薪资我很满意,就签约上岸了。
实习面试
小厂实习面试
Java 基础
HashMap
的底层实现- 快排有没有了解,归并和快排的区别,快排要递归吗
- 抽象类和接口区别
- Java 线程状态如何变迁
- 线程怎么进入等待
- 用 put get lock unlock notiy 设计阻塞队列
- 什么是协程
- 什么是观察者模式
- 讲一下堆插入元素的详细过程以及堆的应用
JVM
- 讲一下 JVM 内存回收机制
- 讲一下 Stop-The-World
网络与操作系统
- TCP/IP
- TCP 与 UDP 对比
- TCP 哪些机制保证可靠传输
- HTTP 协议
中间件部分
- mybatis 分页插件
- springboot 注解
- springboot 线程池创建
- 微服务和分布式谈一下理解
- 对象存储存什么,OSS 权限管理怎么保证用户隐私
- 微服务远程调用
- 消息队列
- 单点登录
- 说一下事务
- 说一下 redis
- Mybatis 缓存了解吗
- 了解 JPA 吗
- 自定义配置文件的读取方式有哪些
中大厂实习面试面经
实习主要是通过 boss 直聘投递简历,简历单薄,导致投递反馈率比较低。好在东哥给了个机会,不然找实习大概率要灰溜溜收场了。
阿里云实习二面
- Mysql 查询(出生日期,性别)在表(id,性别,年龄,出生日期)中怎么设置索引
- springboot 怎么实现自动装配?用到 springboot 哪些功能
- 进程与线程的区别
- 线程间的通信
- redis 设置过期时间的命令
- 你的使用场景 redis 宕机了怎么办
- 你的数据字典存放有优化方案吗
- 你的 redis 的使用场景
- arraylist 扩容机制?具体怎么扩容
- 如何让 hash 表里的数据 value 排序输出
- treemap 是对 key 还是对 value 进行排序
- 讲一下 TCP 的滑动窗口
蚂蚁支付宝实习一面
- 面向对象的三大特性,讲一下封装
- mysql 索引怎么选择?索引的优缺点?还有什么缺点
- mysql 事务的特性?什么是持久性
- 业务里 redis 的过期策略设置
- hashmap 的扩容机制?为什么扩容选择 2 倍。conhashmap 是线程安全的吗?怎么保证是线程安全的
- 线程的创建方式
- 进程间的通信方式讲一下
- 讲一下 tcp 和 udp 区别
- tcp 建立连接后怎么保证可靠传输的
- 说一下快排,快排是稳定的吗?归并的稳定的吗?哪些排序算法是稳定哪些是不稳定的
- jvm 垃圾回收机制,怎么找到垃圾、怎么回收垃圾
- redis 的缓存击穿、穿透、雪崩各是什么情况
- 乐观锁、悲观锁、讲一下 cas,典型场景
- 读过开源项目源码吗?当项目领导你会怎么安排前后端人员工作
- 业务中的对象存储隐私问题怎么解决
字节暑期实习一面
- 讲一下索引的你的理解
- 事务的特性
- 讲一下存储引擎,各有什么区别
- MyISAM 与 InnoDB 的区别
- 数据库隔离级别
- 讲一下三次握手、四次分手具体
- 如何保证可靠传输
- 点击一个 url 如何处理
- http 状态码讲一下
- 进程和线程的区别
- 进程间的通信,具体应用场景
- 写 sql,查出总成绩排名 3-10 名的 id
- 行升序二维数组的 top k
- 最长不重复子字符串
京东实习一面
- 一道回溯题
- String 是不是基本类型、与 StringBuffer、与 StringBuilder 区别
- 索引失效的场景、场景题的索引设计
- oss 数据库与 mysql 数据库不一致怎么解决
- hashmap 原理、数组和链表的区别
- redis 使用场景
- 异常和错误的区别
京东实习二面
- 个人爱好
- 你觉得好的商业模式
秋招面试
秋招面试概况
秋招部分面试题
以下是我秋招过程中出现的部分面试八股,大多是经过回忆简单记录下,若有八股问题不全请海涵。
Java 基础
- HashMap
- 讲一下 TreeMap、HashMap、HashTable 的区别
- 排序稳定性
- 抽象类和接口的区别
- 继承和重写
- 敏捷开发模型
JVM
- 垃圾回收算法
- GCroot 有哪些
- 垃圾回收器选择原则
- 运行时数据区包含哪些
并发多线程
- 进程和线程的区别
- 什么是死锁,死锁怎么解决
- 线程池参数
- 线程间的同步
- 并发编程包里有哪些常用 API
- 讲一下线程的同步
网络与操作系统
- 网络模型的分层,网络模型为什么要分层
- 讲 https 是否安全
- tcp 为什么是三次握手,而不是两次或者四次握手
- tcp 和 udp 的区别
- udp 的特点
- AWK grep 了解吗
- 是否用过管道
- 多进程编程
- 讲一下进程间的通信
- 并发的锁机制
- 用户态和内核态的区别
- 虚拟内存和管道的选用
- 讲一下 gdb
- 虚拟内存的作用
- 多线程会用到虚拟内存吗
- 虚拟地址
- 软中断了解吗
- 零拷贝拷贝几次
数据库
- 索引是什么,讲下索引类型
- 数据库的隔离级别
- mySQL 怎么用游标
- 慢 sql 优化
- mySQL 死锁怎么解决?mySQL 不能解决死锁的原因
- sql 执行计划 range index 等
- 同一条 sql,不同规模数据会走同一条索引吗
- mysql 删除一列 SQL 语句
SSM
- 如何解决容器初始化 bean A 前初始化 bean B
- 讲一下 SpringCloud
- 微服务的远程调用有哪些可以实现
中间件
- redis 的应用场景
- redis 的淘汰策略
- redis 的过期策略
- kafka 丢失消息和重发消息怎么解决
- Kafka 消息丢失
- Kafka 能否保证幂等性
- 了解 rabbitMQ 吗
- es 为什么快,技术选型为什么不用 mongdb 或者 mysql
场景题
- 上传多个 zip 文件到 oss,设计一个方案,需要前端展示上传进度
- 项目怎么分工的,有几个人,如何安排的方案
- 配置连接的账号密码怎么保证安全性
- 讲一下提交登录信息需要用到哪些注解
- 服务器开发,问安全性如何保证,接口安全性
综合问题
- 你的性格
- 兴趣爱好
- 实习的收获
- 描述最有意义的一件事
- 最自豪的事儿
- 讲下代码的最佳实践
- 操作系统怎么学
- Java 怎么学的,为什么不学其他语言
- 说下金庸或者金庸武侠里的人物,说下最近了解的实事
- 源于创新性的体现,一分钟内说下报纸的用途
手写代码
- 反转每对括号间的子串
- 最长不重复字符串
- 两数之和
- 复原 IP 地址
- 找出最长的对称的字符串
- 二叉搜索树的判定
- 树的层序遍历
最后
我所信奉的秋招原则:永远没有准备好的时候,尽可能早的投递公司;算法题需要多做,大一点的公司(非国企)都会考算法;选择就业方向并充满信心,坚持下去;不要孤军作战,与同学做到互通有无。
我的秋招面试经验:对于某些不会的知识点,你可以用你的猜想去表达而不是不说话。面试官考验的不仅仅是你的知识储备,求职者跟面试官的沟通也同等重要。
·········· END ··············