知识库地图
2022年5月27日大约 13 分钟
知识库地图
知识库收录的核心内容就全在这里面了,大类分为 Java 核心、Java 企业级开发、数据库、计算机基础、求职面试、学习资源、程序人生,几乎你需要的这里都有。
学习路线
除了 Java 学习路线,还有 C 语言、C++、Python、Go 语言、操作系统、前端、蓝桥杯等硬核学习路线,欢迎收藏品鉴!
- Java 学习路线一条龙版(建议收藏👍)
- Java 并发编程学习路线(建议收藏👍)
- Java 虚拟机学习路线(建议收藏👍)
- C 语言学习路线(建议收藏👍)
- C++学习路线(建议收藏👍)
- Python 学习路线(建议收藏👍)
- Go 语言学习路线(建议收藏👍)
- 操作系统学习路线(建议收藏👍)
- 前端学习路线(建议收藏👍)
- 蓝桥杯学习路线(建议收藏👍)
- 算法和数据结构学习路线(建议收藏👍)
面渣逆袭
面试前必读系列!包括 Java 基础、Java 集合框架、Java 并发编程、Java 虚拟机、Spring、Redis 等等。
- 面渣逆袭(Java 基础篇)必看👍
- 面渣逆袭(Java 集合框架篇)必看👍
- 面渣逆袭(Java 并发编程篇)必看👍
- 面渣逆袭(Java 虚拟机篇)必看👍
- 面渣逆袭(Spring)必看👍
- 面渣逆袭(Redis)必看👍
学习建议
收集了我所有的知乎高赞帖子!全方位迷茫解惑。
Java 核心
Java 核心非常重要!我将其分成了 Java 基础篇(包括基础语法、面向对象、集合框架、异常处理、Java IO 等)、Java 并发篇和 Java 虚拟机篇。
Java 概述
Java 基础语法
Java 面向对象编程
- 怎么理解 Java 中类和对象的概念?
- Java 变量的作用域:局部变量、成员变量、静态变量、常量
- Java 方法
- Java 构造方法
- Java 代码初始化块
- Java 抽象类
- Java 接口
- Java 内部类
- Java 中的 static 关键字解析
- Java 中 this 和 super 的用法总结
- 浅析 Java 中的 final 关键字
- Java instanceof 关键字用法
- 深入理解 Java 中的不可变对象
- Java 中可变参数的使用
- 深入理解 Java 泛型
- 深入理解 Java 注解
- Java 枚举(enum)
- 大白话说 Java 反射:入门、使用、原理
字符串&数组
- 为什么 String 是不可变的?
- 深入了解 Java 字符串常量池
- 深入解析 String#intern
- Java 判断两个字符串是否相等?
- Java 字符串拼接的几种方式
- 如何在 Java 中优雅地分割 String 字符串?
- 深入理解 Java 数组
- 如何优雅地打印 Java 数组?
集合框架(容器)
- Java 集合框架
- Java 集合 ArrayList 详解
- Java 集合 LinkedList 详解
- Java 中 ArrayList 和 LinkedList 的区别
- Java 中的 Iterator 和 Iterable 区别
- 为什么阿里巴巴强制不要在 foreach 里执行删除操作
- Java8 系列之重新认识 HashMap
Java 输入输出
异常处理
常用工具类
- Java Arrays 工具类 10 大常用方法
- Java 集合框架:Collections 工具类
- Hutool:国产良心工具包,让你的 Java 变得更甜
- Google 开源的 Guava 工具库,太强大了~
Java 新特性
Java 重要知识点
- 彻底弄懂 Java 中的 Unicode 和 UTF-8 编码
- Java 中 int、Integer、new Integer 之间的区别
- 深入剖析 Java 中的拆箱和装箱
- 彻底讲明白的 Java 浅拷贝与深拷贝
- 深入理解 Java 中的 hashCode 方法
- 一次性搞清楚 equals 和 hashCode
- Java 重写(Override)与重载(Overload)
- Java 重写(Overriding)时应当遵守的 11 条规则
- Java 到底是值传递还是引用传递?
- Java 不能实现真正泛型的原因是什么?
- 详解 Java 中 Comparable 和 Comparator 的区别
- jdk9 为何要将 String 的底层实现由 char[]改成了 byte[]?
- 为什么 JDK 源码中,无限循环大多使用 for(;;)而不是 while(true)?
- 先有 Class 还是先有 Object?
- instanceof 关键字是如何实现的?
Java 并发编程
- 室友打了一把王者就学会了创建 Java 线程的 3 种方式
- Java 线程的 6 种状态及切换(透彻讲解)
- 线程组是什么?线程优先级如何设置?
- 进程与线程的区别是什么?
- 并发编程带来了哪些问题?
- 全面理解 Java 的内存模型(JMM)
- Java 并发编程 volatile 关键字解析
- Java 中的 synchronized 关键字锁的到底是什么?
- Java 实现 CAS 的原理
- Java 并发 AQS 详解
- 大致了解下 Java 的锁接口和锁
- 深入理解 Java 并发重入锁 ReentrantLock
- 深入理解 Java 并发读写锁 ReentrantReadWriteLock
- 深入理解 Java 并发线程协作类 Condition
- 深入理解 Java 并发线程线程阻塞唤醒类 LockSupport
- 简单聊聊 Java 的并发集合容器
- 吊打 Java 并发面试官之 ConcurrentHashMap
- 吊打 Java 并发面试官之 ConcurrentLinkedQueue
- 吊打 Java 并发面试官之 CopyOnWriteArrayList
- 吊打 Java 并发面试官之 ThreadLocal
- 吊打 Java 并发面试官之 BlockingQueue
- 面试必备:Java 线程池解析
- 深入剖析 Java 计划任务 ScheduledThreadPoolExecutor
- Java atomic 包中的原子操作类总结
- Java 并发编程通信工具类 CountDownLatch 等一网打尽
- 深入理解 Java 并发编程之 Fork/Join 框架
- 从根上理解生产者-消费者模式
Java 虚拟机
- 什么是 JVM?
- JVM 到底是如何运行 Java 代码的?
- 我竟然不再抗拒 Java 的类加载机制了
- 详解 Java 的类文件(class 文件)结构
- 从 javap 的角度轻松看懂字节码
- JVM 字节码指令详解
- 虚拟机是如何执行字节码指令的?
- HSDB(Hotspot Debugger)从入门到实战
- 史上最通俗易懂的 ASM 教程
- 自己编译 JDK
- 深入理解 JVM 的内存结构
- Java 创建的对象到底放在哪?
- 咱们从头到尾说一次 Java 垃圾回收
- 图解 Java 的垃圾回收机制
- Java 问题诊断和排查工具(查看 JVM 参数、内存使用情况及分析)
- Java 即时编译(JIT)器原理解析及实践
- 一次内存溢出排查优化实战
- 一次生产 CPU 100% 排查优化实践
- JVM 核心知识点总结
Java 企业级开发
- 到底能不能成为一名合格的 Java 程序员,从理论走向实战?Java 企业级开发这部分内容就是一个分水岭!
- 纸上得来终觉浅,须知此事要躬行。
开发工具
IDE/编辑器
Spring
SpringBoot
- 一分钟快速搭建 Spring Boot 项目
- Spring Boot 整合 MySQL 和 Druid
- Spring Boot 整合 JPA
- Spring Boot 整合 Redis 实现缓存
- Spring Boot 整合 MyBatis-Plus AutoGenerator 生成项目骨架代码
- Spring Boot 为什么不需要额外安装 Tomcat?
辅助工具/轮子
- Tabby:一款逼格更高的开源终端工具
- Warp:一款 21 世纪人用的终端工具
- Chocolatey Homebrew:两款惊艳的 Shell 软件管理器
- chiner:一款开源的数据库设计神器
- DBeaver:一款免费的数据库操作工具
- knife4j:一款界面更炫酷的 API 文档生成神器
- Junit:一个开源的 Java 单元测试框架
- fastjson:阿里巴巴开源的 JSON 解析库
- Gson:Google 开源的 JSON 解析库
- Jackson:GitHub 上 star 数最多的 JSON 解析库
- Forest:一款极简的声明式 HTTP 调用 API 框架
- Log4j:Log4j 2 的前身,Java 日志框架的鼻祖
- Log4j 2:Apache 维护的一款高性能日志记录工具
- Logback:Spring Boot 内置的日志处理框架
- SLF4J:阿里巴巴强制使用的日志门面担当
- 其他辅助工具/轮子
安全篇
分布式
高性能
消息队列
高可用
数据库
简而言之,就是按照数据结构来组织、存储和管理数据的仓库。几乎所有的 Java 后端开发都要学习数据库这块的知识,包括关系型数据库 MySQL,缓存中间件 Redis,非关系型数据库 MongoDB 等。
MySQL
Redis
MongoDB
计算机基础
计算机基础包括操作系统、计算机网络、计算机组成原理、数据结构与算法等。对于任何一名想要走得更远的 Java 后端开发来说,都是必须要花时间和精力去夯实的。万丈高露平地起,勿在浮沙筑高台。
求职面试
学习了那么多 Java 知识,耗费了无数的脑细胞,熬掉了无数根秀发,为的是什么?当然是谋取一份心仪的 offer 了。那八股文、面试题、城市选择、优质面经又怎能少得了呢?千淘万漉虽辛苦,吹尽狂沙始到金。
面试题集合
背诵版八股文
优质面经
面试准备
城市选择
- 北京都有哪些牛逼的互联网公司?
- 想去广州了!
- 深圳有哪些牛批的互联网公司?
- 西安有哪些不错的互联网公司?
- 青岛有牛逼的互联网公司吗?
- 郑州有哪些不错的互联网公司?
- 想搬去苏州生活了。。。
- 南京有哪些靠谱的互联网公司?
- 杭州有哪些顶级的互联网公司?
- 成都有哪些牛批的互联网公司?
工作体会
学习资源
- 不知道学什么?不知道该怎么学?找不到优质的学习资源?这些问题在这里统统都可以找到答案。
- 我会把自己十多年的编程经验和学习资源毫不保留的分享出来。
PDF 下载
- 👏 下载 →Java 程序员常读书单
- 👏 下载 → 最全最硬核的 Java 面试 “备战” 资料
- 👏 下载 → 深入浅出 Java 多线程
- 👏 下载 →GitHub 星标 115k+的 Java 教程
- 👏 下载 → 重学 Java 设计模式
- 👏 下载 → 重学 Java 设计模式
- 👏 下载 →Java 版 LeetCode 刷题笔记
- 👏 下载 → 阮一峰 C 语言入门教程
- 👏 下载 →BAT 大佬的刷题笔记
- 👏 下载 → 给操作系统捋条线
- 👏 下载 → 豆瓣 9.1 分,Pro Git 中文版
- 👏 下载 → 简历模板
知识库搭建历程
从购买阿里云服务器+域名购买+域名备案+HTTP 升级到 HTTPS,全方面记录《Java 程序员进阶之路》知识库的诞生和改进过程,涉及到 docsify、Git、Linux 命令、GitHub 仓库等实用知识点。
联系作者
- 作者是一名普通普通普通普通三连的 Java 后端开发者,热爱学习,热爱分享
- 参加工作以后越来越理解交流和分享的重要性,在不停地汲取营养的同时,也希望帮助到更多的小伙伴们
- Java 程序员进阶之路,不仅是作者自学 Java 以来所有的原创文章和学习资料的大聚合,更是作者向这个世界传播知识的一个窗口。