我的学习笔记-Java服务端开发

从开始进入Java服务端的开发,到目前练习生时长已达三年,在这期间摸爬滚打也走了不少弯路,在此分享一下自己的一个学习历程,希望各位看官在Java服务端学习方面可以少走弯路。ps:不要听信什么年轻人可以多试错涨经验的鬼话,在精力和精神都是饱满状态的学习黄金时期,每一次错误在十年二十年后累积都是昂贵的成本,因此在前期选择一名服务端开发工程师真正所需要的知识进行学习,在这基础之上试错也能得到更快的进步。

我将所有的Java知识按照分为如下十四个模块

Java相关内容

Java基础

在这个模块中面试官的问题有一种特性:广+零碎,它很少像其他模块那样去深入的挖掘,当然基本的一个实现原理还是得知道的,但是它却可以很好的反映出你对Java这门语言的了解和使用程度,并且在这部分的基础之上很容易扩展到其他模块:例如问到反射、代理就容易扩展到它的使用场景、问到final就喜欢与继承多态等联系起来。

集合

集合在面试的时候面试官更喜欢将两个类似的集合进行对比,例如ArrayList与LinkedList的区别,HashMap与ConcurrentHashMap的区别等,当然其中一些点也问的比较详细,例如集合的安全性是怎么保证的、扩容的过程是怎么样的等

并发

并发是学习编程语言的一个难点,在Java中关于并发有以下的一些知识点,并发在面试中也是属于一个难点,关于实现原理、使用场景、具体的特点都需要去深入了解

JVM

个人觉得说这一部分知识是Java知识中的重中之重,JVM可以说是Java平台无关性的基石,与Java的大部分知识都有很大的串联性,当然这部分的知识也相对比较枯燥,所以我在学习的时候我是先建立自己的思维导图,分模块的进行学习。

1-内存区域中关于程序计数器的思维导图

数据库

Mysql中事务是很关键的一块,它基本上是每个面试官都会问到的问题,简单的有事务的特性,比较难的也有事务的实现原理等。另外就是关于Mysql的索引以及存储引擎,有时候会引申到具体的数据结构(b+树),有时也会遇到关于sql语句的书写,例如关于项目中某个表的创建,查询某种条件的sql等

Redis一般是从基础开始问起,例如基本类型、消息队列的实现方式等等,当然如果你掌握掌握的比较好也有可能会涉及到主从复制等、数据一致性、大数据查找等

网络协议

计网中需要学习的知识如下,但是在面试中出现频率比较高的一般是传输层相关的内容:UDP+TCP,HTTP和HTTPS、DNS也是出现频率较高的的知识点,另外就是一些网络基础:七层模型,跨域问题、cookie与session等问题

操作系统

操作系统常见的问题更多的是围绕着进程、线程、协程等知识去展开的,在此基础上加上文件和存储相关知识

数据结构

设计模式

设计模式我将它划分为以下几种类型。一般在面试的时候是会针对性的问你了解哪一种模式然后深入挖掘,并且询问你在项目中或者在哪个框架中使用或者了解到了相关设计模式,单例、工厂、适配器、观察者、代理等几种模式问的比较多

SSM+SpringBoot

框架这一块我主要学习的是Spring+SpringMVC+Mybatis, Spring的话主要就是AOP、IOC、还有bean加载、生命周期等相关知识。SpringMVC的话主要是它的执行流程、拦截器加载等问题,Mybatis了解下它的源码、执行流程即可

分布式

分布式可以说是检验一个后端开发知识深度与广度的时试金石,当然其实答不出来影响也不会很大,一般会先从框架入手,一般都是服务治理、服务发现等问题,另外就是关于分布式的表、锁、事务以及负载均衡等

中间件

在学习期间也只学习了以下三个中间件,了解了相关的使用场景与基本原理

学习笔记到这里就分享完咯,其实是自己对Java后端服务的一个模块思维,刚开始入门Java时感觉到无从下手,很多知识学了又忘,后来没办法下苦功对所学到每一块知识点都进行记录、整理、画出相关的思维导图,才慢慢了解了整个Java的框架,春秋招中经历了大厂的轮番轰炸,在查漏补缺时也对遇到的问题进行归纳总结,面试到最后才能够很平常很有底气的跟面试官交流

如果感兴趣的同学可以扫描下方的二维码或者复制进入闲鱼观看哦!

9.0€Xt5ocGEerRb€~.👉闲鱼或手机淘tao宝👈或點҉击҉链节 https://m.tb.cn/h.4RxaUXm 至浏览er【我在闲鱼发布了【JAVA服务端工程师学习笔记在线文档】】

50

如果只对一个模块感兴趣对话也可哦!

2.0€exupcGEeNSA€~.👉闲鱼或手机淘tao宝👈或點几链节 https://m.tb.cn/h.4iR4ul5 至浏览er【我在闲鱼发布了【JAVA学习笔记在线文档】】