金三银四,二月就要准备!
前言
只有光头才能变强。
文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y
大家都知道金三银四这么一个道理,跳槽前都要提前准备,所以二月就应该开始复习啦!
这篇文章主要对我发过的文章进行整理,归纳一些我认为面试可能会考到的知识点,希望对大家有所帮助。
校园春招也陆续开启了,再次提醒:如果是大三的同学,我在这里强烈建议去准备(体验)春招实习生。(大四的当然就不用说啦)
一、Java
1.1Java集合
Java集合是必考的,建议阅读常见集合类的源码(挑重要的方法来看)
1.2Java多线程
Java多线程也是必考的,其实我记录过我曾经真实遇见过的多线程面试题,这里给大家分享一下。
多线程了解多少啊?使用多线程会有什么问题?你是怎么理解“线程安全”的?
如果我现在想要某个操作等待线程结束之后才执行,有什么方法可以实现?为什么要用CountDownLatch?CountDownLatch的底层是什么?(引出AQS)
synchronized关键字来说一下,它的用途是什么?synchronized底层的原理是什么?
线程安全的容器有哪些?(着重于ConcurrentHashMap、CopyWriteOnArrayList与其他非线程安全容器的区别以及它们的具体实现)
ThreadLocal你了解过吗?主要是用来干什么的?具体的源码实现原理来说一下吧
产生死锁的条件是什么?我们可以如何避免死锁?(可延伸到操作系统层面上的死锁)
synchronized锁和ReentrantLock锁有什么区别呀?
线程池你应该也看过吧,来说说为什么要用线程池。JDK默认实现了几个线程池,分别有xxx(自然地ThreadPoolExecutor构造函数的常用几个参数你也得一起说出来)
。。。还有其他等等
对应的博客文章有:
1.3设计模式
设计模式需要理解三个左右,熟悉这三个设计模式的用途、应用、写法,在面试的时候问到就不虚了。
对应的设计模式文章:
1.4JVM和NIO
其他的Java基础知识就不谈了,JVM和NIO都是比较常考的,应该对这有一个了解:
更多的Java文章可以在公众号"Java"菜单栏可以找到。
二、数据库
简单的SQL语句是必要掌握的,在笔试的时候也会常常遇见手写SQL。而面试一般会问数据库的锁和索引,事务隔离级别也常考。
更多的数据库文章可以在公众号"JavaWeb"菜单栏可以找到。
如果在简历技能清单上写了Redis,那最好还是看看以下的三个问题(缓存击穿、缓存雪崩、缓存与数据库双写一致性):
更多的Redis文章可以在公众号"JavaEE"菜单栏可以找到。
三、框架
对于Java框架,比较爱考Spring,其余的 Struts2/Hibernate/Mybatis
其实都不咋考。
我认为常见的Spring面试题:
Spring IOC的概念
(为什么要用IOC、为什么不直接new对象、跟直接new对象有什么区别、工厂模式理解了没有?)
Spring AOP的概念
(AOP是什么意思、AOP能做什么、xxx可以使用AOP来做吗、AOP的底层原理来说一下、代理模式了解多少)
Spring MVC的工作流程(原理)
(如果你说自己接触过Struts2,很可能就问SpringMVC与Struts2的区别)
Spring中是如何管理Bean的(Bean的生命周期)
Spring事务管理知识
对应的Spring文章:
更多的Spring文章可以在公众号"JavaEE"菜单栏可以找到。
四、基础
如果是参加校招的同学, 操作系统、计算机网络、数据结构与算法
是非常非常非常重要的(虽然我学得不咋地..苦逼)。
操作系统:
死锁
进程和线程
CPU/内存/硬盘的工作流程(原理)
select、poll、epoll
简单区别
计算机网络:
http(包括http版本区别,https原理)
TCP粘包,拆包
从浏览器输入地址到响应的整个过程(越详细越好,这个问题可以涵盖整个计算机网络了)
数据结构与算法:
几个常见的排序算法,常见的数据结构必须要会!
刷题为主,leetcode刷起来
《剑指Offer》
对应的文章:
这方面的文章我的公众号确实是写得比较少,后续还得继续加油努力。更多的基础数据结构文章可在公众号"Java"菜单栏下可以找到。
五、其他
上面的四点是比较常考的,如果有时间有兴趣,也不妨看看我之前整理过的关于其他知识点的面试题:
六、关于项目
学生:
如果自己还没撸过一个小项目,建议根据自己的想法撸个小项目(或者跟着视频做一个也行)。
为啥要撸个小项目?
对SSM、SpringBoot等知识点的应用,尽可能了解每个框架的实际用处是什么。
撸完项目,可以写在简历上,面试的时候就依照自己的想法来讲讲当时的项目是怎么做的,期间遇到了什么问题,当时是怎么解决的。(在简历上有个项目,总比没的好!)
如果已经有了小项目了,应当总结一下自己做项目的亮点(在简历和面试的时候就可以有话可说了)
最后
乐于输出干货的Java技术公众号:Java3y。公众号内有200多篇原创技术文章、海量视频资源、精美脑图,不妨来关注一下!