Java 全栈知识体系(2021 PDF 版本)

这篇博客全面概述了Java全栈开发所需的知识体系,包括Java基础、并发框架、IO框架、JVM深入、数据结构与算法、数据库理论与实践、Spring框架、Web容器、ORM、开发工具和设计模式等。特别强调了Java集合框架、并发中的J.U.C框架、JVM内存结构、数据结构如B树、B+树和红黑树,以及数据库的MySQL、Redis和MongoDB。博客内容详实,适合进阶学习和面试准备。
摘要由CSDN通过智能技术生成

全栈知识体系总览

Java入门与进阶

面向对象与Java基础

 

基础知识点复习完了以后,我们需要深入的理解Java中的一些基础机制:

Java进阶 - 集合框架

A. Java进阶 - Java 集合框:Java 集合框架应用是极其广泛的,对于其总体框架用法及源码都必要深刻理解。

  • Collection 类关系图

B. Java进阶 - Java 集合框之 Collection源码解读:对核心的Collection类进行源码解读。

C. Java进阶 - Java 集合框之 Map & Set 源码解读:对核心的Map & Set 类进行源码解读。

Java进阶 - 并发框架

A. Java进阶 - Java 并发之基础:首先全局的了解并发的知识体系,同时了解并发理论基础和线程基础,并发关键字等,这些是你理解Java并发框架的基础。

​​​​​​​

B. Java进阶 - Java 并发之J.U.C框架:然后需要对J.U.C框架五大类详细解读,包括:Lock框架,并发集合, 原子类, 线程池和工具类。​​​​​​​

B.1 Java进阶 - Java 并发之J.U.C框架【1/5】:CAS及原子类:从最核心的CAS, Unsafe和原子类开始分析。​​​​​​​

B.2 Java进阶 - Java 并发之J.U.C框架【2/5】:锁:然后分析JUC中锁。​​​​​​​

B.3 Java进阶 - Java 并发之J.U.C框架【3/5】:集合:再理解JUC中重要的支持并发的集合。​​​​​​​

B.4 Java进阶 - Java 并发之J.U.C框架【4/5】:线程池:再者分析JUC中非常常用的线程池等。​​​​​​​

B.5 Java进阶 - Java 并发之J.U.C框架【5/5】:工具类:最后来看下JUC中有哪些工具类,以及线程隔离术ThreadLocal。​​​​​​​

C. Java进阶 - Java 并发之 本质与模式:最后站在更高的角度看其本质(协作,分工和互斥),同时总结上述知识点所使用的模式。

Java进阶 - IO框架

A. Java进阶 - IO框架之知识体系:首先了解下Java IO框架包含什么,同时推荐下如何学习IO框架。

​​​​​​​

B. Java进阶 - IO框架之基础IO:其次对Java基础IO框架进行梳理,包括其分类,使用和源码详解。​​​​​​

C. Java进阶 - IO框架之NIO/AIO等:然后再对Unix IO模型学习,引入到Java BIO/NIO/AIO相关知识详解。

​​​​​​​

D. Java进阶 - IO框架之开源框架:最后再对常用的开源框架进行分析和详解。

Java进阶 - JVM相关

学习思路

A. Java进阶 - JVM相关 知识体系:首先按照上述学习思路,理解总体知识点在全局上与知识体系之间的对应关系。

  • JVM 相关知识体系

B. Java进阶 - JVM相关 类加载:然后理解类字节码和类的加载机制。

C. Java进阶 - JVM相关 内存结构:因为类字节码是加载到JVM内存结构中的,所以紧接着理解JVM内存结构。

D. Java进阶 - JVM相关 JMM:然后通过理解JVM与硬件之间的联系,理解Java 通过其内存模型保证数据线程安全等,这是JVM在并发上底层的支持。

E. Java进阶 - JVM相关 GC:再者理解下Java GC机制,如何回收内存等。

F. Java进阶 - JVM相关 排错调优:最后围绕着调试和排错,分析理解JVM调优参数,动态字节码技术及动态在线调试的原理;学会使用常用的调工具和在线动态调试工具等。

G. Java进阶 - JVM 企业面试题精选:重点介绍一些企业常见的面试及答案解析

  • Java 虚拟机(JVM)面试题(2021最新版)

更多关于Java技术栈的技术文章、技术资源(文档、视频)、以及各咱企业面试题,可以关注民工哥技术之路公众号,回复关键字 1024 获取全部分享的技术资源。

数据结构与算法

数据结构基础

学习思路

避免孤立的学习知识点,要关联学习。比如实际应用当中,我们经常使用的是查找排序操作,这在我们的各种管理系统、数据库系统、操作系统等当中,十分常用,我们通过这个线索将知识点串联起来:

数组的下标寻址十分迅速,但计算机的内存是有限的,故数组的长度也是有限的,实际应用当中的数据往往十分庞大;而且无序数组的查找最坏情况需要遍历整个数组;后来人们提出了二分查找,二分查找要求数组的构造一定有序,二分法查找解决了普通数组查找复杂度过高的问题。任和一种数组无法解决的问题就是插入、删除操作比较复杂,因此,在一个增删查改比较频繁的数据结构中,数组不会被优先考虑

普通链表由于它的结构特点被证明根本不适合进行查找

哈希表是数组和链表的折中,同时它的设计依赖散列函数的设计,数组不能无限长、链表也不适合查找,所以也适合大规模的查找

二叉查找树因为可能退化成链表,同样不适合进行查找

AVL树是为了解决可能退化成链表问题,但是AVL树的旋转过程非常麻烦,因此插入和删除很慢,也就是构建AVL树比较麻烦

红黑树是平衡二叉树和AVL树的折中,因此是比较合适的。集合类中的Map、关联数组具有较高的查询效率,它们的底层实现就是红黑树。

多路查找树 是大规模数据存储中,实现索引查询这样一个实际背景下,树节点存储的元素数量是有限的(如果元素数量非常多的话,查找就退化成节点内部的线性查找了),这样导致二叉查找树结构由于树的深度过大而造成磁盘I/O读写过于频繁,进而导致查询效率低下。

B树与自平衡二叉查找树不同,B树适用于读写相对大的数据块的存储系统,例如磁盘。它的应用是文件系统及部分非关系型数据库索引。

B+树在B树基础上,为叶子结点增加链表指针(B树+叶子有序链表),所有关键字都在叶子结点 中出现,非叶子结点作为叶子结点的索引;B+树总是到叶子结点才命中。通常用于关系型数据库(如Mysql)和操作系统的文件系统中。

B*树是B+树的变体,在B+树的非根和非叶子结点再增加指向兄弟的指针, 在B+树基础上,为非叶子结点也增加链表指针,将结点的最低利用率从1/2提高到2/3。

R树是用来做空间数据存储的树状数据结构。例如给地理位置,矩形和多边形这类多维数据建立索引。

Trie树是自然语言处理中最常用的数据结构,很多字符串处理任务都会用到。Trie树本身是一种有限状态自动机,还有很多变体。什么模式匹配、正则

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值