个人背景
帝都某码农技校硕士在读,长期在外实习,所以基本上没有什么论文产出,一直做的是Java后台开发的工作…
简历制作
简历制作上我一直用的是乔布简历,选一个干净的简历模板就行,尽量保证篇幅在一页,尤其需要注意的是项目的书写上,我一般会写三个点
1. 这个项目是什么
2. 我负责了什么,遇到了什么难题如何解决的
3. 我从中学到了什么
其他的一些奖项兴趣爱好尽量找突出自己优点的,和工作无关的就尽量不要写上去了,因为HR筛简历时根本没什么时间看
面试的公司
从渠道上来说一般优先内推,有内推一定要走内推确保简历能过,其次是一些部门的散招,可以上Boss直聘,实习僧,拉勾上找找
我主要是面了阿里,百度,新浪,小米,搜狐,爱奇艺等公司,我不会细说每个公司的笔试面试题目因为那样没有意义,通过多次面试需要掌握的是面试的重点,反复思考面试官想考察什么技术点,这个很重要
面试重点
以Java后台为例子,其他的例子我也不清楚
首先会考察Java语言相关的东西(相对高频的考点)
- 集合源码,重点是ArrayList,HashMap,ConcurrentHashMap等
- 并发多线程以及几种常见线程池,线程池的实现原理
- Java锁,volatile关键字,CAS等
- IO相关的内容
- JVM相关,垃圾回收算法和几个垃圾回收器
Web框架相关的
- Spring的IOC和AOP原理
- SpringMVC的执行流程
- MyBatis的执行流程,如何实现分页等
Linux相关的
- 一些常用的shell命令
数据库相关的
- 事务隔离级别,脏读,不可重复度等
- MySQL的引擎
- MySQL的索引类型与索引优化
- 慢查询如何检测和优化
- MySQL的主从
- Redis的特点,数据类型,持久化策略,主从复制
- 缓存的击穿和雪崩如何解决
- 数据库连接池原理,C3P0源码等
消息中间件
- Dubbo实现原理
- Zk的作用
- 实现分布式锁
- Kafka的实现原理和工作机制
数据结构相关
- 以树和链表数组为主,因为考察起来比较方便
- 常用的排序和查找方法必须熟悉
计算机网络
- 网络模型
- TCP UDP区别
- 常见的端口
- HTTP相关内容 请求头字段和状态码
项目相关
因为项目还是因人而异的,需要注意的是要说清楚这个项目是什么,分模块介绍自己完成了什么,遇到了什么问题如何解决的这样会比较有条理,面试官应该更关心你解决问题的能力吧
上面列举的只是后台开发需要知道的冰山一角,还有很多很多东西不可能一一列举
如何准备
有目的性地刷题 LeetCode
有目的性地看书 补基础看书看书看书
推荐书籍
[1] 剑指Offer
[2] 编程之美
[3] 深入理解Java虚拟机
[4] 深入分析Java Web技术内幕
[5] Java并发编程实战
[6] 图解TCP/IP
[7] Redis设计与实现
[8] https://github.com/CyC2018/Interview-Notebook