最近换了个公司,从二月中旬开始,面到现在,面了有快二十家公司。我是一个喜欢总结经验的人,每经过一场面试,我在回来的路上都会仔细回想今天哪些问题可以答的更好,或者哪些问题是自己之前没遇到过的,或者是哪个知识点今天又问了等等。三月初的时候,我就在构思要写一篇面经,主要是想着可能对那些跟我相同处境的人有点帮助,再者就是稍微记录下这为期一个月的面试过程。
学习过程:
我自己对此也有清晰的认识,因此从过完年之后,我就开始抓紧空闲时间学习。学习的过程如下:
1.看面试题
正常人第一步肯定都会看面试题,我也不例外,在看的过程中,我发现有些文章写的不错,对我帮助不小值得推荐
2.深入学习
在看面试题的过程,你会遇到一些自己没接触过的或者以前没深入学习过的知识,例如最常问的HashMap内部实现原理,这就促使你得开始去看jdk的源码或者是学习一些新的东西。看源码是很重要的一步,起步很难,但是会让你收益良多,看源码的过程如果碰到无法理解的地方,可以百度看下别人的理解。我学习源码的过程中,看过几个人的关于源码的文章写的很不错
3.熟悉项目
找出自己工作以来开发过的最叼的功能,将整个功能的流程和涉及的东西吃透。项目是面试中必问的环节,一般是以一个功能点为基础展开问,因此你必须对这个功能有很深的认识,不能有模糊的地方。如果有时间,能把涉及到的知识点也搞懂最好。
4.做面试题
有不少公司是有面试的,如果你没有准备过,很容易在各种小地方犯错,建议去一些面试题网站多做些题目,我自己是用的牛客网。
5.学习记录
把自己每天的学习时间和学习内容记录下来,可以让自己更有动力的学习,学习是一个枯燥的过程,你必须让自己时刻保持有动力。
投简历、约面试环节
1.在哪些网站投?
拉勾网、BOSS直聘、猎聘网。
2.是否该海投?
投简历分为两个情况。
1)没有社招面试经验:建议采取海投的方式,只要职位要求跟自己比较匹配都可以投,累计面试经验。这个环节可以把投简历的网站增加两家:智联和无忧。
2)自认为社招面试经验已经足够:投那些职位匹配、公司满意的职位。公司评价可以去看准网、百度、知乎等查询。
3.一天约几家面试合适?
最理想的情况为2家面试,上午一般在10点左右,下午一般在2点左右。建议把理想的公司放下午,因为下午的时间比较充足,可以让公司更充分的了解你。我开始面的时候,每次都是上午面的不好,下午面的不错。
4.投简历经常没下文?
我当初也没想到简历筛选这关有这么难,可能是我的简历确实亮点不多,再者HR很多都不是行内人,因此他们看得最直接的就是你上家的公司和你毕业的学校,如果你不是从牛逼的公司/学校出来,可能会碰到和我一样的情况,应对的办法就是多投。
5.是否该裸辞?
我一开始是边上班边投,然后利用调休时间,或者请假去面试。后来,面试机会越来越多,请假太频繁了,自己都不好意思了,并且自己也已经有足够的信心,这个时候我选择了裸辞。裸辞还有一个原因是,在面试过程中你会发现,有的公司要人要的紧,如果你的辞职流程过长可能会导致你错过这个公司。
6.注意事项
1)面试前一天把路线和时间算好,最好别迟到。
2)背个书包,带好简历、充电宝、纸巾、雨伞。
面试环节
1.笔试常见的问题?
面试常见的问题上面给的面试题链接基本都有。我只提几点:1)写SQL:写SQL很常考察group by、内连接和外连接。2)手写代码:手写代码一般考单例、排序、线程、消费者生产者。我建议排序算法除了冒泡排序,最好还能手写一种其他的排序代码。试想:如果一般面试者都写的冒泡排序,而你写的是快速排序/堆排序,肯定能给面试官留下不错的印象。
2.面试流程?
1)让你自我介绍
2)问Java基础知识
3)问项目
4)情景问题,例如:你的一个功能上了生产环境后,服务器压力骤增,该怎么排查。
5)你有什么想问面试官的
3.面试常问的知识点?
1)集合相关问题(必问):
- HashMap、LinkedHashMap、ConcurrentHashMap、ArrayList、LinkedList的底层实现。
- HashMap和Hashtable的区别。
- ArrayList、LinkedList、Vector的区别。
- HashMap和ConcurrentHashMap的区别。
- HashMap和LinkedHashMap的区别。
- HashMap是线程安全的吗。
- ConcurrentHashMap是怎么实现线程安全的。
2)线程相关问题(必问):
- 创建线程的3种方式。
- 什么是线程安全。
- Runnable接口和Callable接口的区别。
- wait方法和sleep方法的区别。
- synchronized、Lock、ReentrantLock、ReadWriteLock。
- 介绍下CAS(无锁技术)。
- 什么是ThreadLocal。
- 创建线程池的4种方式。
- ThreadPoolExecutor的内部工作原理。
- 分布式环境下,怎么保证线程安全。
3)JVM相关问题:
- 介绍下垃圾收集机制(在什么时候,对什么,做了什么)。
- 垃圾收集有哪些算法,各自的特点。
- 类加载的过程。 双亲委派模型。
- 有哪些类加载器。
- 能不能自己写一个类叫java.lang.String。
4)设计模式相关问题(必问):
- 先问你熟悉哪些设计模式,然后再具体问你某个设计模式具体实现和相关扩展问题。
5)数据库相关问题,针对Mysql(必问):
- 给题目让你手写SQL。
- 有没有SQL优化经验。
- Mysql索引的数据结构。
- SQL怎么进行优化。
- SQL关键字的执行顺序。
- 有哪几种索引。
- 什么时候该(不该)建索引。
- Explain包含哪些列。
- Explain的Type列有哪几种值。
6)框架相关问题:
- Hibernate和Mybatis的区别。
- Spring MVC和Struts2的区别。
- Spring用了哪些设计模式。
- Spring中AOP主要用来做什么。
- Spring注入bean的方式。
- 什么是IOC,什么是依赖注入。
- Spring是单例还是多例,怎么修改。
- Spring事务隔离级别和传播性。
- 介绍下Mybatis/Hibernate的缓存机制。
- Mybatis的mapper文件中#和$的区别。
- Mybatis的mapper文件中resultType和resultMap的区别。
- Mybatis中DAO层接口没有写实现类,Mapper中的方法和DAO接口方法是怎么绑定到一起的,其内部是怎么实现的。
7)其他遇到问题:
- 介绍下栈和队列。
- IO和NIO的区别。
- 接口和抽象类的区别。
- int和Integer的自动拆箱/装箱相关问题。 常量池相关问题。
- ==和equals的区别。
- 重载和重写的区别。
- String和StringBuilder、StringBuffer的区别。
- 静态变量、实例变量、局部变量线程安全吗,为什么。 try、catch、finally都有return语句时执行哪个。
- 介绍下B树、二叉树。
- ajax的4个字母分别是什么意思。
- xml全称是什么。
- 分布式锁的实现。
- 分布式session存储解决方案。
- 常用的linux命令。
最近跳槽面试的人特别多,也是我写这篇文章的初衷,我也整理了一些技术资料和面试题集,供大家提升进阶,不管你是有跳槽打算还是单纯精进自己,都可以免费领取一份。
从面试简历模板到大厂面经汇总,从大厂内部技术资料到互联网高薪必读书单,以及Java面试核心知识点(283页)和Java面试题合集2022年最新版(485页)等等,这些面试资料整理给大家,希望面试踩过的坑不要再踩,遭遇的技术瓶颈一次性消灭。
文末附免费下载方式
一、JVM篇(2022)
(含:JVM类加载机制,JVM内存模型,垃圾收集机制,类字节码实现机制,JVM调优案例,GC日志详解等)
二、Java并发编程(2022)
(含:java内存模型,并发集合,线程池,阻塞队列,CAS与原子操作,无锁并发框架Disruptor等)
三、Spring篇(2022)
(含:spring IOC,spring AOP原理,spring 5,springMVC,事务管理,循环依赖,spring设计模式等)
四、Mysql篇(2022)
(含:SQL执行原理,索引底层机制,SQL执行计划分析,Mysql锁机制,Mysql事务隔离,SQL优化实践等)
五、SpringCloud篇(2022)
(含:服务发现与注册Eureka与Nacos,服务限流熔断降级Hystrix与Sentinel,分布式事务Seata,网关Gateway等)
六、Dubbo篇(2022)
(含:Dubbo基础,架构设计,集群,配置,通信协议,SPI等)
七、Redis篇(2022)
(含:Redis核心数据结构,Redis持久化机制与安全机制,哨兵与集群架构,Redis缓存穿透,缓存失效,缓存雪崩,Redis缓存设计与性能优化等)
八、分布式篇(2022)
(含:分布式架构原理,集群架构原理,分布式锁,分布式事务,分布式协议,分布式配置,海量数据分库分表,分布式调度,等)
九、设计模式篇(2022)
(含:单例模式,工厂模式,抽象工厂模式,建造者模式,原型模式,适配器模式,装饰器模式,代理模式等23种设计模式)
十、数据结构与算法篇(2022)
(含:红黑树,B+树,贪心算法,哈希分治法,七大查找算法,动态规划,一致性算法等)
十一、MQ篇(2022)
(含:消息丢失,消息重复消费,消息乱序,消息积压,延时队列,消息回溯消费,消息刷盘机制,MQ中间件集群架构原理等)
十二、Netty篇(2022)
(含:BIO、NIO及AIO线程模型,Netty线程模型,序列化协议protobuf,粘包拆包问题,Netty心跳机制,直接内存与Netty零拷贝,WebSocket协议等)
十三、Zookeeper篇(2022)
(含:ZooKeeper选举机制,ZooKeeper数据模型,ZooKeeper应用场景等)
十四、ElasticSearch篇(2022)
(含:ElasticSearch数据模型、ElasticSearch分布式架构、ElasticSearch数据读写原理和段合并等)
十五、网络与操作系统篇(2022)
(含:网络协议,TCP/IP系统结构,TCP/IP协议族,常见面试题,等)
由于篇幅有限,这里只展示部分内容,所有的资料大家点击下方名片即可免费领取。