有不足或者问题大家可以在评论中留言,谢谢大家。
以 Java 后端为主,扩展/基础 部分可以根据需要自行调整顺序。
初学者强烈建议先阅读计算机体系部分!!
人都有一个遗忘规律,很多时候我们都是在和遗忘做斗争。欢迎大家友善的交流。
博客文章分类:https://www.cnblogs.com/zwtblog/tag
目录
- 计算机体系
- 第一阶段--基础
- 第二阶段--源码阅读计划
- 第三阶段--JUC
- 第四阶段--JVM
- 第五阶段--数据库
- 第六阶段--JavaWeb
- 第七阶段--SSM
- 第八阶段--微服务
- 扩展--前端
- 扩展--Linux
- 扩展--中间件
- 基础--数据结构
- 基础--计算机网络
- 基础--计算机组成原理
- 基础--操作系统
- 基础--设计模式
计算机体系
构建知识体系的视频。
项目地址:https://github.com/1c7/Crash-Course-Computer-Science-Chinese
视频地址:https://www.bilibili.com/video/av21376839/
本视频不会涉及编程,会从高层次上纵览一系列计算机话题。希望你能了解计算机在你的人生 以及社会中扮演什么角色。
第一阶段--基础
最重要的阶段,基础不牢,地动山摇。
- Java语法规范
- Java对象和多态 (面向对象)
- Java异常机制
- Java泛型与集合类
- Java/IO
附带:
- JavaSE-总篇-目录
- Java-基础
第二阶段--源码阅读计划
熟悉常见源码,养成源码阅读习惯。
附带链接中有基础与进阶的源码解析,这里我仅仅列举常见的集合类。
- Integer-源码
- String,String Builder,String Buffer-源码
- LinkedList-源码
- ArrayList-源码分析
- HashMap源码分析
- 自己写一个Map
- 自己写一个简单的LinkedList
附带:源码解析
第三阶段--JUC
JUC的详细解读。
在Java 5的时候,新增了java.util.concurrent(JUC)包,其中包括大量用于多线程编程的工具类,目的是为了更好的支持高并发任务,让开发者进行多线程编程时减少竞争条件和死锁的问题!
里面会设计到许多操作系统的知识,根据需要,自行调整顺序。
- 再谈多线程
- 多线程编程的核心思想
- 并发编程进阶
附带:
- Java多线程
- 从synchronize到CAS和AQS
第四阶段--JVM
JVM是Java Virtual Machine的缩写。它是一种基于计算设备的规范,是一台虚拟机,即虚构的计算机。
通过JVM,Java实现了平台无关性,Java语言在不同平台运行时不需要重新编译,只需要在该平台上部署JVM就可以了。因而能实现一次编译多处运行。
- JVM-初见
- JVM-深入
- JVM内存管理
- 类与类的加载
附带:https://www.cnblogs.com/zwtblog/tag/JVM/
JVM-超全图
第五阶段--数据库
数据库有许多种,文章里面主要介绍的MySQL。MySQL是一个 关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。
MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。
部分内容与下面的JavaWeb阶段重合。数据库是学习JavaWeb的一个前置,只有了解了数据库的操作和使用,我们才能更好地组织和管理网站应用产生的数据。
- MySQL-初见
- JavaWeb-数据库基础
附带:
- https://www.cnblogs.com/zwtblog/tag/数据库/
- JAVA中直接用Jdbc就能操作数据库了,为什么还要用spring框架?
- MySql分区、分表和分库
- 大数据四大阵营
第六阶段--JavaWeb
我们学习JavaWeb的最终目的是为了搭建一个网站,并且让用户能访问我们的网站并在我们的网站上做一些事情。
设计到的网络知识,根据需要,自行调整顺序。
- JavaWeb后端
- JavaWeb-数据库基础
- JavaWeb-网络编程
附带:https://www.cnblogs.com/zwtblog/tag/JavaWeb/
第七阶段--SSM
SSM(Spring+SpringMVC+Mybatis)阶段的学习,也算是成功出了Java新手村。
在JavaWeb阶段,我们已经学习了如何使用Java进行Web应用程序开发,我们现在已经具有搭建Web网站的能力,
但是,我们在开发的过程中,发现存在诸多的不便,我们发现虽然我们思路很清晰,知道如何编写对应的接口,但是这样的开发效率,实在是太慢了,并且对于对象创建的管理,存在诸多的不妥之处.
因此,我们要去继续学习更多的框架技术,来简化和规范我们的Java开发。
- Spring框架技术
- SpringMVC
- SpringSecurity
附带:
- Java-SSM-总结
- SpringSecurity原理解析以及CSRF跨站请求伪造攻击
- SpringSecurity-图解
第八阶段--微服务
微服务(Microservice Architecture) 是近几年流行的一种架构思想,关于它的概念很难一言以蔽之。
究竟什么是微服务呢?我们在此引用ThoughtWorks 公司的首席科学家 Martin Fowler 于2014年提出的一段话:
原文:https://martinfowler.com/articles/microservices.html
汉化:https://www.cnblogs.com/liuning8023/p/4493156.html
- Spring-Cloud-初见
- 微服务基础
- 微服务进阶
附带:
- 什么是Spring,SpringMVC,SpringBoot,SpringCloud?通俗易懂
扩展--前端
前端基础学习
待更新…………
扩展--Linux
注意:本版块会涉及到操作系统
相关知识。
- Linux操作系统与项目部署
- Linux-实战常用命令
扩展--中间件
中间件这个术语第一次出现是 1968 年在德国加尔米施帕滕基兴举办的 NATO 软件工程大会结束后发表的一份报告中。
从广义上讲,中间件涵盖了从 Web 服务器,到身份验证系统,再到消息传递工具等一切内容。
中间件是为应用提供通用服务和功能的软件。数据管理、应用服务、消息传递、身份验证和 API 管理通常都要通过中间件。
中间件可以帮助开发人员更有效地构建应用。它就如同是应用、数据与用户之间的纽带。
常用的一些中间件:Redis,ElasticSearch,各种MQ…………
大致的效果是:
需要利用服务的人(前端写业务的),不需要知道底层逻辑(提供服务的)的具体实现,只要拿着中间件结果来用就好了。
在Web开发阶段,SSM阶段以及微服务阶段我们都会整合各种合适的中间件。
具体内容:https://www.cnblogs.com/zwtblog/tag/
基础--数据结构
数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。
例如:各种集合类………
- 数据结构
- 数据结构和集合类
基础--计算机网络
这个是重头戏。
计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。
- 计算机网络到底怎么学?
- 计算机网络汇总
- 温故知新-输入网址-显示网页-到底到底到底到底-发生了什么?
- 计算机网络-HTTP篇
- 计算机网络-TCP篇
- 计算机网络-IP篇
附带:计算机网络
- HTTP1.1、HTTP2、HTTP3 演变
- TCP 重传、滑动窗⼝、流量控制、拥塞控制
- HTTPS-各种加密方式
- HTTPS加密以及认证手段
- 为什么HTTP/3要基于UDP?可靠吗?
基础--计算机组成原理
介绍了计算机的基本组成原理和内部工作机制。
计算机组成原理-思维导图-地址:https://www.cnblogs.com/zwtblog/p/15266044.html
- 计算机组成原理-初见
基础--操作系统
- 操作系统-初见?见了好多次,次次都要学!
基础--设计模式
设计模式是针对软件设计中常见问题的工具箱, 其中的工具就是各种经过实践验证的解决方案。
即使你从未遇到过这些问题, 了解模式仍然非常有用, 因为它能指导你如何使用面向对象的设计原则来解决各种问题。
算法更像是菜谱: 提供达成目标的明确步骤。 而模式更像是蓝图: 你可以看到最终的结果和模式的功能, 但需要自己确定实现步骤。
- 设计模式-简单篇
- 设计模式-Java版-全-附代码-超生动实例