38 岁的中年失业者怎么活下去,Java 中级工程师面试题及答案
阶段一:筑基
Java 基础掌握不牢,对于一个开发人员来说无疑是非常致命的。学习任何一个技术知识无疑不是从基础开始;在面试的时候,面试官无疑不是从基础开始拷问。
内容包括:Java 概述、Java 基本语法、Java 执行控制流程、面向对象、访问控制权限、接口和抽象类、异常、内部类、集合、泛形、反射、枚举、I/O、关于 null 的几种处理方式、思维导图。
1、Java 概述
![](https://static001.geekbang.org/infoq/bb/bb78e2e1aa95b6d5bbaec6a1358335d3.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
2、Java 基本语法
![](https://static001.geekbang.org/infoq/73/73f17a4abaa27706b949af23b6a67826.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
3、Java 执行控制流程
![](https://static001.geekbang.org/infoq/d0/d0e58f1eb7c9d9a676d4f1ecd93c74a0.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
4、面向对象
![](https://static001.geekbang.org/infoq/78/784e48330be17170b1534459a139800f.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
5、访问控制权限
![](https://static001.geekbang.org/infoq/ea/ead0edbfca07198538cedc4c29c826fd.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
由于文章内容比较多,篇幅不允许,部分未展示内容以截图方式展示 。
![](https://static001.geekbang.org/infoq/c4/c49780eb62dd0ce14e80011afb035741.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
![](https://static001.geekbang.org/infoq/9e/9ec8729d8b1028a42a77f603c6b801c5.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
阶段二:搞定核心知识点
熟悉了 Java 基础知识后,我们需要进阶一下,开始抓原理。
深呼吸,我们来吃透源码,有的同学看到源码就懵逼,其实看源码只是刚开始痛苦,摸清其门道后,其实你会发现并没有很难,而且受用终生。(极大提高自己的学习能力)
内容:集合、、锁、多线程、数据库原理、JVM 基础、常用中间件(Dubbo、Kafka、Redis、Zookeeper)核心原理和框架(Spring、Mybatis、SpringBoot、SpringCloud)核心原理等。
1、集合
![](https://static001.geekbang.org/infoq/19/19bd9c5f7b6e256ebf20014576ac5beb.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
2、锁
![](https://static001.geekbang.org/infoq/f4/f4ac46cc87792e71df6f77b219e782e8.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
![](https://static001.geekbang.org/infoq/1a/1a0c4156af23d051064e4e99bd00deb0.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
3、数据库原理
![](https://static001.geekbang.org/infoq/51/51fd03366045031dd0dc7feae50cbe39.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
4、JVM(Java 虚拟机,一个虚构出来的计算机)
![](https://static001.geekbang.org/infoq/45/45bceb1419611be35acafbca6bf10ae5.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
5、中间件——Zookeeper
由于篇幅限制,中间件以 ZK 为例,框架以 SpringBoot 原理为例
![](https://static001.geekbang.org/infoq/11/1165d1101d8ffdf562eadba859691cef.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
6、框架——SpringBoot 原理
![](https://static001.geekbang.org/infoq/3f/3fca253bff7dc9498f250894120ec86b.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
阶段三:进阶“功法”
![](https://static001.geekbang.org/infoq/e2/e261ac850a103b0c9d05b69f362e74a1.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
这个阶段,你应该提升自己各方面的知识深度,让自己有亮点,自己在面试的时候有装 B 的资本。(好心提醒:切莫过度装 B)
**亮点:**如果你有高并发的、大数据量的经验,你可以从这几个方向找:
1、比较复杂的场景方案设计
2、线上问题的排查和解决:死锁、宕机、Full GC 频繁等
3、系统稳定性保障方面的设计:限流、熔断、降级等
**深度:**挑选 1-2 个中间件或者框架的源码来深入学习,JDK 源码直接肉眼看的话问题不大,但是如果你直接肉眼看中间件和框架源码的话,你会知道什么叫做残忍。
Spring+Cloud+Eureka 源码分析:
![](https://static001.geekbang.org/infoq/e1/e186788cbc01ca3556499acf833accea.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
![](https://static001.geekbang.org/infoq/d7/d75eb2cbdfbc1655b696d5790495257d.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
阶段四:查漏补缺:面试题安排!
面试题包含:Java、MyBatis、ZooKeeper、Dubbo、Memcached、Redis、MySQL、Spring、Spring Boot、Spring Cloud、Kafka、Linux 等技术栈。
1、MyBatis 面试题
![](https://static001.geekbang.org/infoq/9e/9e76d3843a60630e7ac82671e8abf33d.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
![](https://static001.geekbang.org/infoq/10/101afb39f8a140dc208e8d83070b97c5.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
2、Redis 面试题
![](https://static001.geekbang.org/infoq/05/05b5a4b44267d8c1b0d61233c3105b0e.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
![](https://static001.geekbang.org/infoq/62/62efadb83860a5b4eaae325bddcd97ce.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
3、Java 并发编程面试题
![](https://static001.geekbang.org/infoq/4e/4e83ba8b13f87e4c339552f0026c31ae.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
![](https://static001.geekbang.org/infoq/2e/2e7c624c9d9cb7d29dc8cdf7d24c2db1.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
写在最后
可能有人会问我为什么愿意去花时间帮助大家实现求职梦想,因为我一直坚信时间是可以复制的。我牺牲了自己的大概十个小时写了这片文章,换来的是成千上万的求职者节约几天甚至几周时间浪费在无用的资源上。
![](https://static001.geekbang.org/infoq/91/91b1f8ea28fafb83de4a2848bbaf010d.png)
![](https://static001.geekbang.org/infoq/64/64e35c8773d95773b6bf979fa2895289.png)
上面的这些(算法与数据结构)+(Java 多线程学习手册)+(计算机网络顶级教程)等学习资源
评论