# notes **Repository Path**: zhizhuke/notes ## Basic Information - **Project Name**: notes - **Description**: 记录编程学习笔记 - **Primary Language**: Unknown - **License**: Zlib - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2022-06-19 - **Last Updated**: 2022-06-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 介绍 + 本仓库主要用于记录个人的 Java 学习历程,希望能持续提升,计划系统的学习补齐短板。 + 学习计划:算法持续学习的基础上,推进以下内容 1. 夯实基础:Java核心技术卷I,Java核心技术卷II (已完成) 2. 按模块学习:JVM,多线程,IO/通讯,数据库优化等 (已完成) 3. 逐个深入:Effective Java,Java 并发编程的艺术,Java 性能权威指南,计算机网络---自顶向下方法,深入理解计算机系统,Redis 实战,RocketMQ 技术内幕、高性能 MySQL 等 4. 开源框架:Dubbo、Netty 等。 ## Java入门 0. Typora使用 在学习过程中,笔记记录的形式是使用 Markdown 语言,typora 编辑器。同时 Typora 有着强大的绘图引擎,使绘图变成了 "写图",写好代码即可解析为功能性图表,因此这里对一些常用的快捷键和 Markdown 语法进行说明。 1. Java基础 JavaSE 部分,最为基础的数据类型、面向对象等语法规范以及用法。 2. Java高级 JavaSE 的高级特性部分 3. 网络前端 HTML、CSS、JavaScript 前端三剑客,以及常见的前端框架,如 VUE,这里仅仅是最为基本的了解,计划删除。 4. Java服务器 JavaEE服务器开发,包括数据库编程、JavaEE 使用等。 5. 项目应用 项目应用-1:Spring全家桶、Dubbo、MyBatis 等常见框架的基础使用。 项目应用-2:Git、Maven 最为常用的企业开发包管理、版本控制工具,高并发常用技术 Nginx,Redis,RocketMQ、Kafka、ES等,Linux服务器系统环境。 ## Java进阶 0. 环境配置&软件安装 在生产环境中,项目部署遇到的问题,一般有直接部署和 Docker 部署等方式。 1. Java高级特性 反射、注解等高级特性在框架中的应用,对 Spring IOC 容器的原理做出了基本的解释说明。 2. 设计模式 正规项目开发中,常见的设计模式,也是框架中最为常用的设计模式 3. JVM原理及调优 深入学习 JVM 的内存区域,各个部分的功能,以及常见的参数配置,调优方式,垃圾收集原理及常见的垃圾收集器等,主要参考内容为《深入理解Java虚拟机》第三版,周志明。因阅读的内容并非全部,只是学习了一些较为重要的章节,所以并未放到书籍阅读文件夹里,后续将全面阅读。 4. 多线程与并发 深入学习多线程、锁的基本原理,深入学习 AQS 同步框架,ReentrantLock、synchronized 的底层原理,对原子类、读写锁也有简单介绍。后续将深入阅读《Java并发编程的艺术》、《Java并发编程实战》等书籍。 5. IO与网络通讯 **(Netty源码解读未完成,挂起待更新)** 解读常见的 BIO、NIO、AIO,IO 的多路复用模型,学习 Netty 高性能网络通讯框架。Netty 源码非常繁杂,这里仅以功能的角度切入,目前还在持续学习中…… 6. 高性能数据库 深入学习 MySQL性能调优、MySQL 引擎、MySQL底层的数据结构等进阶知识,以及非关系型数据库 Redis。 8. Spring深度解读 **(部分更新)** 学习比较简单的 Spring 事务模块,Spring 解决循环依赖,以及 SpringBoot 的一键启动原理,后续深入学习 Spring 的其他部分。 ## 书籍阅读 1. Java核心技术 卷I + 时间:2021.05-2021.07 + 说明: + 对Java学习笔记的基础部分的补充,Java核心技术具有完整性,全面性,有完善的体系和结构,对SE部分查缺补漏。 + 记录一些较为核心,易错,或者个人当时觉得较难的知识点,同时也记录一些冷门、少见的知识点,意在拓宽知识面,深入理解。同时也是对SE部分的复习。有部分内容在学习笔记中已经提到过,但并未详细说明,另有部分内容重复提起,还有部分内容纠正了以前的错误认知。 + 参考内容: + Java核心技术第11版 卷I (JDK9/10/11) + Java核心技术第10版 卷I (JDK8) 2. Java核心技术 卷II + 时间:2021.08-2021.12 + 说明: + 原书介绍的非常详细,但是很多知识以目前的水平不会经常使用到,很多知识以前也未接触过,较为陌生,本文较多内容都是对原书的复制粘贴,个别内容阅读原书的时候并未读懂,仅做记录,供学习与了解使用。 + 极少使用或者说不太重要的知识 (如,正则表达式,XML,国际化,Java安全,本地方法等章节) 未学习记录,以后如有需要再做补充。 + 参考内容: + Java核心技术第11版 卷I (JDK9/10/11) + Java核心技术第10版 卷I (JDK8) 3. 计算机网络——自顶向下方法**(进行中)** ## 算法专题 0. 数据结构 学习常见的数据结构,如链表、栈、队列、树、以及排序和查找等,偏于实用性,忽略大量的基本概念。 1. 链表&队列&栈 以LeetCode中热点的链表、队列、栈的题目为例,总结该类问题常见的解决方法。 2. 二叉树**(进行中)** 以LeetCode中热点的二叉树题目为例,总结该类问题常见的解决方法。