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】。未经作者许可,禁止转载。












 
    
评论