2020年,面试就靠它们了,现在每天刷题,看源码文档,最近看的这些题目还是有些难度,有一部分我都要好好想一想才能回答出来,或者回答不出来,总的来说知识宽度够了深度还跟不上。所以要重点突破下底层的东西。这篇文章我总结了很久,希望对正在准备面试的同仁们有点帮助。没错我就是传说中的面霸!!
一. 面试准备
首先,是笔试题,这点是初级程序员绕不过去的坎。
笔试题一般的公司都会出的,除非你是大牛,可以选择不做。所以,还是老老实实的准备吧。
这里列举下一些比较常见出现的问题
JAVA
5个常用的java-api包。
String类中常用的5个方法。
API接口开发的注意事项。
TCP/IP、HTTP协议。
集合相关的问题(重点)
HashMap、TreeMap、Hashtable、LinkedHashMap、ConcurrentHashMap、ArrayList、LinkedList的实现和区别之类的。
上述集合中的那些是线程安全的,那些不是。
在那些场景使用这些集合。
List、Map、Set三个接口,存取元素时,各有什么特点。
线程相关问题(重点)
创建线程的几种方式。
线程同步的方法。
wait和sleep区别。
Runnable接口和Callable接口的区别。
如何实现线程安全。
框架相关知识(这块反而不多)
Mybatis#和$的区别.
Hibernate和Mybatis的区别。
Spring MVC和Struts2的区别.
Hibernate的缓存机制。
什么是Hibernate延迟加载.
为什么要用spring。
SQL(主要考察Group by和Order by相关知识)
查询每个班级成绩最高的学生。
查找出每个班级成绩第二的学生。
按照班级查询每个班上总分前三的学生。
查找入职员工时间排名倒数第三的员工所有信息。
薪水排序后薪水排名在第2--8的员工。
按工资进行排名,排名从1开始,工资相同排名相同(如果两人并列第一则没有第二名,从第三名继续排)。
用一条sql语句取出所有姓名有重复的学员姓名和重复的记录数。
JavaScript/JSP/Servet (这些一般是基础题)
JSP的内置对象以及作用。
JSTL的常用标签。
Servlet的生命周期。
URL和URI的区别。
Ajax同步和异步的区别。
使用ajax发送异步请求的流程。
其它
&和&&的区别。
==和equals的区别。
int和Integer的自动拆箱/装箱相关问题。
IO和NIO的区别。
final、finally、finalize的区别。
重载(Overload)和重写(Override)的区别。
String、StringBuffer和StringBuilder的区别。
如何实现浅克隆和深克隆。
单例模式的实现以及最优。
排序的实现(冒泡、选择、快速等)。
去除重复的元素(实际是重写equals和hashcode)。
二.面试流程
现在有不少公司先是人事面试,然后技术面试。所以在人事这块谈论工资的时候,最好不要说死,或者先不谈,留着技术面试过了之后再谈。有点因为在工资待遇这块没谈好,就直接走人了。毕竟面试双方都要花费不少时间,所以这块需注意!
在相谈的时候,要注意礼貌,无论是否成功,都应该注意言行和态度。
在面试结束之后,理应说声感谢!毕竟面试其实也是成长的一种。
三.面试技巧
个人能力这方面无非两个方面,广度和深度。
技巧很简单,就是说自己擅长的。技术掌握广,但是不深,就可以将自己的技术广度多说点,顺便可以提下自己的优点例如:学习新技术很快;技术掌握深,但是不广,就可以将掌握的深度多说点,可以提下自己在学习这块的专研度。如果在这两点都没有太明显的优点的,可以尝试从项目业务说,最好将项目吃透。与面试官相谈的切记要诚实,不要弄虚作假。碰到不会的或者了解不深的,直接跳过,最好将面试官引导到自己擅长的领域。
粉丝福利
最近我也根据上述的技术体系图搜集了几十套阿里、头条、蚂蚁金服等公司19年的面试题,把技术点整理成了视频(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。相信它会给大家带来很多收获。(更全的内容和资料,在文末获取)
一.热门框架源码
二、分布式
三、微服务架构
四、性能优化
五、多线程并发编程
六、工程化
7、电商项目实战
技术的突破需要依赖业务场景的需求和自身刻意的规划学习,二者缺一不可。但前者是机会,往往不是自己能完全把控的,如果在工作中没有实践场景,最好的办法就是系统的学习与梳理,待机会来临时才能一展身手。
如何获取:
私信我回复 【架构】 即可获取
閱讀更多 Java高級架構 的文章