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