[笔记]-春招复习(预习)材料总结
作者:互联网
此文是我前一段时间准备春招时的预习的一些知识点的总结。岗位是Java开发的后端~~(你问为什么是后端,,因为只有这个最有把握qaq)~~
前言
首先,根据我这一段时间的笔面试经历,一般来说公司的招聘主要分为如下流程:
- 投递简历(这里我主要是通过去对应公司官网的校园招聘页面进行投递,一般来说,大部分公司都提供2个岗位的投递(但实际上第二次机会几乎用不上,一个是如果第一次挂了,有些公司会无视你的第二次投递,另一个是由一些公司会自动将你划到人才库,可能只有实在缺人才会捞你出来)),之后就关注手机、邮件信息吧。
- 行测。有些公司会在投递简历后自动分配行测考试。内容可以百度,都是八九不离十的。
- 笔试。一般来说开发都会进行一个笔试,内容是4-5题左右的编程题。根据我做过的笔试,笔试的前两题比较简单(大部分公司),所以一定要想方设法那满分(即200分),才有可能通过笔试进入下一阶段(因为实际上大部分人的平均平都在2题左右,所以只有大于两题才有希望获得后续面试的机会),,然后剩下两题即使不会做,也要写个暴力啥的骗分,10-20分还是有机会搞到的,,这样的话就有很大的希望排名在前30%。此外有些公司处理算法的编程题,会有一道考验工程编码能力的题目,这个看题目尽量做一下吧。
- 面试。一般来说,校招的面试是分为3轮的技术面+一轮的HR面。
- 技术面中,第一轮主要是一些Java基础、框架基础、计科其他的知识点的问答,以及一道以上的编程题这样子。所以这里的重点也就是Java语言基础、框架基础、计网os数据库算法基础等等内容,就是你在大学学习的那些内容。(俗称八股文)
- 第二轮一般是稍偏向工程,但仍以Java等计科基础知识点为主。(这里可以重点准备简历相关的项目对应的框架基础(一般就是spring系列)、Java的一些高级知识点(如jvm,juc等等)、还有计网等等。
- 第三轮主要就是和项目有关的一些问题,比如考察项目环境的搭建、问题的解决以及给一些开发场景问你的解决方法等的,这里主要就是看你平时学习的积累了吧。(这里问的东西一般很杂,感觉无法总结,,不如直接看对应公司的三面的面经)
- HR面,一般进入hr面可以说是稳了,但是不一定(比如我之前某团hr都面完了以为稳了,,然后拖了半个月发感谢信,,我**人傻了),这里一般就是问一些公司的文化、个人的性格特点、在校做过的事情、个人的期望(薪资啊、工作啊等等)
- offer。如果前面都顺利,一般hr会主动电话联系给你口头offer,,然后会通过邮件发offer,这样就相当于找到一份工作了,当然,如果你通过搞到多个,可以推掉不想去的。
- 三方。一般应届生需要签署三方,注意,一定要确认去这家公司才去签三方,,因为如果你后续找到更好的了但是签了三方,那么要付违约金的,所以要充分考虑确定不会在收到其他更好的offer了在签(虽然一般公司都会催你签)。(比如我上午签了现在这家公司的三方,晚上就收到了某节的offer,,人傻了)
- 劳动合同。签了三方之后就等着和hr定下的报到时间去公司报道,签劳动合同就行(所以一定要尽可能早的搞到hr的微信)。一般需要你在这之前搞定一堆的事情(体检啊、档案啊、工资卡啊、个人信息啊等等)
以下主要是笔面试阶段我预习的材料的总结吧。
Java
首先是Java知识点。Java这部分的知识点比较多,也是面试时重点考察的内容。自认为主要分为Java语言基础、Java应用基础和框架基础这几部分,。
Java语言基础
这里没啥好说的,看别人的面经+自己总结就行了。我的建议是尽量自己总结过一遍,一个是能后续忘了有个记录,另一个这样记得比较牢。
- 最基础的Java语言知识可以看牛客的这个 这个算是比较丰富,,但是可能由一些错误。
- Java语言基础视频这个up的视频都很好,这个Java语言基础的我没看过,,看目录比较全,,但是建议3倍速过一下,,看有没有没曾学过的点就行了。
- 简单多线程 同样建议三倍速看完,主要是了解一下多线程的创建使用方式,因为可能学校中使用到的多线程仅仅是通过 new thread() 或者是 实现 runnable接口实现的,,但其实远不止两个,面试时这个多线程的创建方式是比较高频的问点(因为这个掉分不太划算,因为可能面试官认为你连基础的八股文都没看)。这个是我自己看视频总结的内容
- 注解和反射 这个可能会有一些面试官问,但是不是特别重要的知识点,有时间的话可以用一天的时间看一下(因为这一算是比较重要的基础点,对后续其他知识的理解是有帮助的,比如通过枚举实现的单例模式在安全性上的优点就是因为不能通过反射的方式来搞出多个单例的实现)。同样这是我的学习笔记
Java语言基础其实内容不是特别多,,只要多敲就能基本理解,主要的还是八股文中的以下常考的知识点,比如自动拆装箱、string相关的、hashmap(自动扩容、内部实现、线程不安全,1.7和1.8的区别)、各种集合类、线程的三种方法等等内容。
这里我的建议是除了自学自己总结,就是去翻各种人总结的面经,一条一条的过他们被问道的Java语言基础内容,然后找自己有没有不熟悉的,记录下来,应试的方法是学习八股文知识点比较有效的方式。
以下是我自己总结的以下内容。
1.---------------------…
2.---------------------…
Java较高级知识
这里也是能够在面试中体现自己是一个”合格“的Java开发者的部分。东西都比较多且难,,但是还是要认认真真的学一下,这样在中大厂的面试中至少有一定的机会会排名前一些。
- jucJava并发包 这个主要是Java中JUC包的内容的知识。这里其实是比较重点考察的内容,如果说上面的Java语言基础是面试官准不准备继续问你的前提,这个就是你能不能进入二面的重点。。。JUC的内容主要是线程池模型、并发集合、锁、阻塞队列、CAS和AQS这些。基本上每一个面试官都会问线程池模型,从而会引出锁和CAS,有的会进一步的问AQS内容,至于并发集合,一般会在前面问语言基础重点hashmap中问你是不是线程安全的那里引出concurrentHashmap一起其他并发集合。同样这个是我学习juc的笔记
- JVM jvm一些大厂都会或多或少的问一些,主要是垃圾回收的流程和jvm的模型,这个可以在所有知识点都学习的差不多的时候看一下,内容不是特别多,问的频率也不是特别的高,建议3天时间看完。 同样这是我的学习笔记 学习完后把最后的那两张图记住就差不多了。
这部分主要是这些,其实学完就可以发现,这些内容都是Java基础中的扩展。比如,
- 最常用的锁synchronized,语言基础中只是学习其食用方法,但是他也有很多的不足,于是有了JUC,以及CAS实现的轻量级的各种锁(比如reentrentLock等等)。同时sync也会问你各个Java版本的变化,尤其是新版的锁的升级过程。
- 语言基础中的多线程的管理不是很方便,于是出现了线程池。线程池的三种方法、七个参数、四种拒绝策略等等即说明其内部结构,又是重要的考点。
- 语言基础中的各种集合大部分都不是线程安全的,有也是比较重的使用synchronized实现的,所有就有了JUC中的各种并发集合,其内部实现尤其是concurrentHashmap是重点考察的。
- 以上内容都回答出来了,可能会在并发集合中问你有没有了解过AQS阻塞队列,这时就要把阻塞队列的模型讲一下,还有可能问你CAS是怎么实现的有什么作用等等。
- jvm这里我自己学的比较少,被问得也不多,主要就是模型的结构和gc的过程,,把那个对象进入堆在新生代和老年代的过程讲一下就可以了,可能会继续深入,但是也不多。
以上Java知识就是一二面中经常问到的内容。
后台开发框架基础
这里就看你简历上的项目相关的内容了。一般来说都是通过spring系列开发的项目吧。。这里推荐几个学习的视频,建议至少做一个出来,这样至少在一二面被问到项目相关有个能讲的:
等等。
这里除了问项目,同样会问框架的基础知识点,主要的内容主要有:
- springmvc的解析过程
- 循环依赖的解决方式
- sping中各种bean和工厂
- AOP、DI和IOC的思想
这里还是看被人主要被问到的面经总结一下吧。
计网
计网内容主要就是TCP/IP协议,所以认真的总结一下就行了,主要可能被问的有:
- 三次握手、四次挥手的过程,一般会深入问为什么要四次挥手,TIME_WAIT 的作用等等
- 浏览器输入一个url的整个执行过程
- TCP的实现:拥塞控制、滑动窗口、差错检测等等
- HTTPS的结构、建立通信的过程
os
这里主要就是基础知识,但是不同公司面试官问的深度不一样,有的会仅仅问一些线程进程的内容,有的会问你段页式管理、cache等,据说还有的会问一些死锁和调度过程。(我的建议是可以放最后复习)
数据库
这里的内容算是问的比较多的,,不够大多都集中在MySQL,如:
- 事务
- 锁(注意是数据库的锁,这里有很多,行锁、表锁、间隙锁、读写锁等等)
- 数据库的底层结构(即B+树,结构、与B树相比的优点)
- 索引(这里可能会问的很多)
- MVVC多版本并发控制(这个我没看,,被问到直接说不了解了)
- 可能会问一些sql中的聚合函数,可以去runnoob上过一下
- 范式(被问到一次)
此外设计到存储数据的地方,这里可能会问到一些缓存的中间件,如redis等等内容。
算法题
笔试的算法题建议多刷leetcode以及牛客上各公司往年的笔试题就行了(后者为主,因为lc上的题感觉还是太杂,不适合短时间准备笔试的,可能会出现刷了一堆题笔试还是不会的情况)
至于面试中的笔试题,建议直接刷牛客在线编程中的TOP50 ,,如果是Java岗,,还是建议以Java为主刷题,,不要向我c++刷题,等到面试时面试官对我用c++写题目或多或少展现出鄙夷的表情。。。。。
当然一般来说面试中的题目都是核心模式,所以可以不用管输入输出,,但是笔试中题目一般是要自己写输入输出的,,建议使用这个快读的模板(当然c++写笔试题更爽)
后记
最后贴一下之前我学习过程的记录吧,仅供参考:
标签:知识点,Java,复习,笔试,基础,预习,内容,春招,线程 来源: https://blog.csdn.net/pi31415926535x/article/details/119058324