前言
先说一下自己的个人情况,大专生,18年通过校招进入湖南金蝶软件公司,干了接近3年的CRUD,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了三年的CRUD,已经让我变得不思进取,谈了2年的女朋友也因为我的心态和工资和我分手了。于是,我决定要改变现状,放眼于今年的金三银四!
刚开始准备时,自己都蒙了,3年的CRUD让我的技术没有一丝的进步,提升的只有我的年龄...
没办法,我找到了我的导师,作为他的得力弟子,在他了解了我的情况后(几乎就是Java基础开始),直接甩给我一份学习笔记说到:“去吧,这里有你需要的所有东西,不要来找我了,我都嫌丢人!”。
下面我们就来了解一下这份笔记有多厉害!(刚开始还以为导师在吹牛逼,结果学完直接给我导师给跪了...)
《Java中高级核心知识全面解析》这份文档总页数:524页。分为八个部分每个部分详细地讲解了核心知识点。
第一部分 扎实的Java基础 (Java基础+容器+并发+JVM)
第二部分 网络知识(计算机网络技术+HTTPS中的TLS)
第三部分 Linux
第四部分 数据结构与算法
第五部分 数据库(MySQL+Redis)
第六部分 系统设计(RestFul API+常用框架+认证授权+分布式+大型网站架构+微服务)
第七部分 必会工具(Git+Docker)
第八部分 面试指南(简历应该如何写+如何准备面试+我的学习方法)
由于整个笔记比较全面,内容相当的多 ,这里仅展示资料的一些截图,如有需要获取文中提到的 “Java中高级核心知识全面解析” 的朋友关注公主号:JavaAC,即可获取
第一部分 Java
(一). 基础
1. Java 基本功
Java 入门(基础概念与常识)
Java 语法
基本数据类型
方法(函数)
![](https://i-blog.csdnimg.cn/blog_migrate/c2c40b30ada321f6857c2ebd3c8cd37c.png)
2. Java 面向对象
类和对象
面向对象三大特征
修饰符
接口和抽象类
其它重要知识点
![](https://i-blog.csdnimg.cn/blog_migrate/f0fef17578f682c235b84dde75b49c91.png)
3. Java 核心技术
集合
异常
多线程
文件与 I\O 流
![](https://i-blog.csdnimg.cn/blog_migrate/0cb9a9f8565effde1c610b1f982d7d8f.png)
(二). 容器
1. ArrayList
ArrayList简介
ArrayList核心源码
ArrayList源码分析
ArrayList经典Demo
![](https://i-blog.csdnimg.cn/blog_migrate/f924399e289a2939514dfaf0a737a78a.png)
2. LinkedList
简介
内部结构分析
LinkedList源码分析
LinkedList类常用方法测试
3. HashMap
HashMap 简介
底层数据结构分析
HashMap源码分析
get方法
resize方法
HashMap常用方法测试
(三). 并发
1. 并发容器
JDK 提供的并发容器总结
ConcurrentHashMap
CopyOnWriteArrayList
ConcurrentLinkedQueue
BlockingQueue
ConcurrentSkipListMap
![](https://i-blog.csdnimg.cn/blog_migrate/d02deddf75baacc23161061752770204.png)
2. 线程池
使用线程池的好处
Executor 框架
(重要)ThreadPoolExecutor 类简单介绍
(重要)ThreadPoolExecutor 使用示例
几种常见的线程池详解
ScheduledThreadPoolExecutor 详解
线程池大小确定
![](https://i-blog.csdnimg.cn/blog_migrate/b790bbb6600360b70d6052f61ea94c26.png)
3. 乐观锁与悲观锁
何谓悲观锁与乐观锁
乐观锁常见的两种实现方式
乐观锁的缺点
CAS与synchronized的使用情景
![](https://i-blog.csdnimg.cn/blog_migrate/b291d3aead73b8abd4fa369dae64c0b9.png)
4. Atomic
Atomic 原子类介绍
基本类型原子类
数组类型原子类
引用类型原子类
对象的属性修改类型原子类
5. AQS
AQS 简单介绍
AQS 原理
Semaphore(信号量)-允许多个线程同时访问
CountDownLatch (倒计时器)
CyclicBarrier(循环栅栏)
ReentrantLock 和 ReentrantReadWriteLock
![](https://i-blog.csdnimg.cn/blog_migrate/a6be10b44e555d47370b3a815f7734ea.png)
(四). JVM
1. Java内存区域
概述
运行时数据区域
HotSpot 虚拟机对象探秘
重点补充内容
![](https://i-blog.csdnimg.cn/blog_migrate/a34bf2e53792c12ba621984a42dedd9a.png)
2. JVM垃圾回收
揭开 JVM 内存分配与回收的神秘面纱
对象已经死亡?
垃圾收集算法
垃圾收集器
![](https://i-blog.csdnimg.cn/blog_migrate/158c0d1131b746e0debae7340fecef25.png)
3. JDK 监控和故障处理工具
JDK 命令行工具
JDK 可视化分析工具
![](https://i-blog.csdnimg.cn/blog_migrate/c2d0f5d9b6d01dfbc3a684f9148382ce.png)
4. 类文件结构
概述
Class 文件结构总结
![](https://i-blog.csdnimg.cn/blog_migrate/116ee9ea880fb419baaee0c3092f4ac0.png)
5. 类加载过程
类加载过程
卸载
![](https://i-blog.csdnimg.cn/blog_migrate/21f3117131e39e8f0a601582c6a258f6.png)
6. 类加载器
回顾一下类加载过程
类加载器总结
双亲委派模型
自定义类加载器
二、网络
(一). 计算机网络知识
计算机概述
物理层
数据链路层
网络层
运输层
应用层
![](https://i-blog.csdnimg.cn/blog_migrate/b2ac6e53510c8e2e6a42654762da97f7.png)
(二). HTTPS中的TLS
SSL 与 TLS
从网络协议的角度理解 HTTPS
从密码学的角度理解 HTTPS
RSA 简单示例
![](https://i-blog.csdnimg.cn/blog_migrate/dcb3e195e13991e755a20d2ee52340d2.png)
三、Linux
(一). 从认识操作系统开始
操作系统简介
操作系统简单分类
操作系统的内核
操作系统的用户态与内核态
(二). 初探Linux
Linux简介
Linux诞生简介
Linux的分类
(三) Linux文件系统概览
Linux文件系统简介
Inode
文件类型与目录结构
Linux目录树
(四) Linux基本命令
目录切换命令
目录的操作命令(增删改查)
文件的操作命令(增删改查)
压缩文件的操作命令
Linux的权限命令
Linux 用户管理
Linux系统用户组的管理
其他常用命令
![](https://i-blog.csdnimg.cn/blog_migrate/431ebc6bcb10dac04cdcf492ce82dee4.png)
四、数据结构与算法
(一). 数据结构(布隆过滤器)
什么是布隆过滤器?
布隆过滤器的原理介绍
布隆过滤器使用场景
通过 Java 编程手动实现布隆过滤器
利用Google开源的 Guava中自带的布隆过滤器
Redis 中的布隆过滤器
![](https://i-blog.csdnimg.cn/blog_migrate/f3887c672e2fbe6844af711dd5f0198c.png)
五、数据库
(一). MySQL
基本操作
数据库操作
表的操作
数据操作
字符集编码
数据类型(列类型)
列属性(列约束)
建表规范
SELECT
UNION
子查询
连接查询(join)
TRUNCATE
备份与还原
视图
事务(transaction)
锁表
触发器
SQL编程
存储过程
用户和权限管理
表维护
杂项
![](https://i-blog.csdnimg.cn/blog_migrate/4fddf24f47e8620a610da4754609ef32.png)
(二). Redis
5种基本数据结构
跳跃表
分布式锁深入探究
Redlock分布式锁
如何做可靠的分布式锁,Redlock真的可行么
神奇的HyperLoglog解决统计问题
亿级数据过滤和布隆过滤器
GeoHash查找附近的人
持久化
发布订阅与Stream
[集群]入门实践教程
Redis数据类型、编码、底层数据结构
![](https://i-blog.csdnimg.cn/blog_migrate/b036663327d459983d061e2b4b722a21.png)
六、系统设计
(一). RestFul API
重要概念
REST 接口规范
HATEOAS
![](https://i-blog.csdnimg.cn/blog_migrate/d16460df2e96d5cafabf4aaf132f9fcb.png)
(二). 常用框架
Spring常见问题
Spring常用注解
Spring事务
Spring IOC和 AOP详解
Spring中 Bean 的作用域与生命周期
SpringMVC 工作原理详解
Spring中都用到了那些设计模式?
![](https://i-blog.csdnimg.cn/blog_migrate/3277c6a65ffc76f1f210c3f6364de865.png)
(三). 认证授权(JWT、SSO)
JWT 身份认证优缺点分析以及常见问题解决方案
SSO 单点登录
![](https://i-blog.csdnimg.cn/blog_migrate/f96f02fcddfa0406a03fc31c9b834489.png)
(四). 分布式
分布式相关概念入门
Dubbo
消息队列其实很简单
RabbitMQ
RocketMQ
Kafka
API网关
分布式ID
限流的算法有哪些?
Zookeeper
![](https://i-blog.csdnimg.cn/blog_migrate/b4de11136a56cf9ad983050e2bd0b515.png)
(五). 大型网站架构
如何设计一个高可用系统?要考虑哪些地方?
![](https://i-blog.csdnimg.cn/blog_migrate/90994ae6d7d251c874765f5d28c7c509.png)
(六). 微服务
Spring Cloud
![](https://i-blog.csdnimg.cn/blog_migrate/cda9a579f304f01f5f869bf54adfec95.png)
七、必会工具
(一). Git
版本控制
认识 Git
Git 使用快速入门
![](https://i-blog.csdnimg.cn/blog_migrate/efa6a43c960e29da9d2671e891946b0b.png)
(二). Docker
认识容器
再来谈谈 Docker 的一些概念
容器 VS 虚拟机
Docker 基本概念
常见命令
Build Ship and Run
简单了解一下 Docker 底层原理
总结
![](https://i-blog.csdnimg.cn/blog_migrate/1456ade4d5f25187ad8700bae048603e.png)
八、面试指南
(一). 程序员简历该怎么写
为什么说简历很重要?
下面这几点你必须知道
必须了解的两大法则
项目经历怎么写?
专业技能该怎么写?
排版注意事项
其他的一些小tips
![](https://i-blog.csdnimg.cn/blog_migrate/0c370f63f36945cb55dfd888eb602041.png)
(二). 如何准备面试
如何获取大厂面试机会?
面试前的准备
面试之后复盘
如何学习?学会各种框架有必要吗?
![](https://i-blog.csdnimg.cn/blog_migrate/58e4784fa21eacb0b85b586d77f8e9a9.png)
(三). Java学习路线和方法推荐
Java 基础
操作系统与计算机网络
数据结构与算法
前端知识
MySQL
常用工具
常用框架
多线程的简单使用
分布式
深入学习
微服务
总结
![](https://i-blog.csdnimg.cn/blog_migrate/5c3ee5c5fef48935c529eef46b410b37.png)
写在最后
这份笔记上述的知识点我甚至都没有完全吃透,只掌握了80%,就能够完成大幅度的涨薪,虽然我在学习的过程中放弃了我所有的休息时间,甚至上班的时候都在摸鱼搞学习(长时间坐着没有运动,甚至得了痔疮...),但是我觉得是值得的,我牺牲了3个月时间,收获的不只是一个月接近9k的涨薪,还有一个努力学习,积极向上的心态!
金三银四已过半,是否还有很多小伙伴和之前的我一样,安于现状,温水煮青蛙,迟迟不肯做出改变,一直在一家公司做着CRUD,等到想要做出一些改变的时候缺发现自己的时间都被CRUD给占满了。工作几年增加的只有自己的年龄,技术一直停留在加入公司的那一天,甚至是有些许的退步。
不敢提涨薪,也没有资格提涨薪。比你年轻的人技术比你更好,最后只有一条路留给你:被裁!
希望大家能够时刻保持一颗积极向上的心,我始终相信一件事:机会永远是留给有准备的人。