From b93a1d9e5ae4b86ee427d67f38c34af800482a16 Mon Sep 17 00:00:00 2001 From: WLei224 <1149630057@qq.com> Date: Sat, 23 Dec 2023 21:49:52 +0800 Subject: [PATCH] feat: add TimeLinePage --- src/README.md | 70 +++++++++++++++---- src/SUMMARY.md | 36 ++++++---- ...05\345\255\230\345\214\272\345\237\237.md" | 2 +- ...\216LinkedList\345\214\272\345\210\253.md" | 4 +- ...76\350\256\241\346\250\241\345\274\217.md" | 28 ++++++++ .../README.md" | 0 ...52\344\272\233\345\216\237\345\210\231.md" | 11 +++ 7 files changed, 120 insertions(+), 31 deletions(-) create mode 100644 "src/bagu/\350\256\276\350\256\241\346\250\241\345\274\217/Java\344\270\255\346\234\211\345\223\252\344\272\233\350\256\276\350\256\241\346\250\241\345\274\217.md" create mode 100644 "src/bagu/\350\256\276\350\256\241\346\250\241\345\274\217/README.md" create mode 100644 "src/bagu/\350\256\276\350\256\241\346\250\241\345\274\217/\350\256\276\350\256\241\346\250\241\345\274\217\346\234\211\345\223\252\344\272\233\345\216\237\345\210\231.md" diff --git a/src/README.md b/src/README.md index 57bc381..2e21eef 100644 --- a/src/README.md +++ b/src/README.md @@ -1,17 +1,59 @@ -# TIME_LINE - ## 更新Timeline_2023_12 -| TITLE | UPDATE_TIME | -| --------------------------------------------------------- | ----------- | -| [JVM 的内存区域是怎么划分的](./bagu/JVM/JVM的内存区域.md) | | -| [算法资源](./Resources/algo.md) | | -| [视频资源](./Resources/videos.md) | | -| | | -| | | -| | | -| | | -| | | -| [MySQL 常考自检](./bagu/MySQL自查版.md) | | -| [Java SE](./bagu/JavaSE/README.md) | | +### ArticleCount = 26 + +| TITLE | UPDATE_TIME | AUTHOR | +| ------------------------------------------------------------ | ------------ | ----------------------------------------- | +| [设计模式有哪些原则](./bagu/设计模式/设计模式有哪些原则.md) | 12-23 20:31 | [CSGUIDER](https://github.com/WL2O2O) | +| [`Java`中有哪些设计模式](./bagu/设计模式/Java中有哪些设计模式.md) | 12-23 20:23 | [CSGUIDER](https://github.com/WL2O2O) | +| [`MyISAM`和`InNoDB`存储引擎的区别](./bagu/MySQL/MyISAM和InNoDB存储引擎的区别.md) | 12-23 10:07 | [CSGUIDER](https://github.com/WL2O2O) | +| [什么是关系型数据库与非关系型数据库](./bagu/MySQL/什么是关系型数据库与非关系型数据库.md) | 12-23 09:40 | [CSGUIDER](https://github.com/WL2O2O) | +| [`JVM`的内存区域是怎么划分的](./bagu/JVM/JVM的内存区域.md) | 12-23 08:02 | [CSGUIDER](https://github.com/WL2O2O) | +| [视频资源](./Resources/videos.md) | 12-20 21:50 | [CSGUIDER](https://github.com/WL2O2O) | +| [算法资源](./Resources/algo.md) | 12-20 21:38 | [CSGUIDER](https://github.com/WL2O2O) | +| [什么是设计模式](./bagu/设计模式/什么是设计模式.md) | 12-20 11:29 | [CSGUIDER](https://github.com/WL2O2O) | +| [`JVM`的类加载过程是怎么样的](./bagu/JVM/JVM的类加载过程是怎么样的.md) | 12-18 14:06 | [CSGUIDER](https://github.com/WL2O2O) | +| [我的算法随笔](./bagu/Algo/README.md) | 12-18 14:01 | [CSGUIDER](https://github.com/WL2O2O) | +| [创建`Java`对象有几种方式](./bagu/JavaSE/创建Java对象有几种方式.md) | 12-16 08:58 | [CSGUIDER](https://github.com/WL2O2O) | +| [什么是多态,你是怎么理解的](./bagu/JavaSE/什么是多态,你怎么理解的.md) | 12-14 10:57 | [CSGUIDER](https://github.com/WL2O2O) | +| [说说你对`HashMap`数据结构的理解](./bagu/JavaSE/说说你对HashMap数据结构的理解.md) | 12-14 09:38 | [CSGUIDER](https://github.com/WL2O2O) | +| [介绍一下`Java`语言](./bagu/JavaSE/介绍一下Java语言.md) | 12-14 08:57 | [CSGUIDER](https://github.com/WL2O2O) | +| [用过哪些注解](./bagu/Spring/用过哪些注解.md) | 12-13 16:37 | [CSGUIDER](https://github.com/WL2O2O) | +| [介绍一下`IOC`](./bagu/Spring/介绍一下IOC.md) | 12-13 16:35 | [CSGUIDER](https://github.com/WL2O2O) | +| [`Spring`和`SpringBoot`的区别](./bagu/Spring/Spring和SpringBoot的区别.md) | 12-13 16:00 | [CSGUIDER](https://github.com/WL2O2O) | +| [`ArrayList`与`LinkedList`的区别](./bagu/collections/ArrayList与LinkedList区别.md) | 12-12 20:16 | [CSGUIDER](https://github.com/WL2O2O) | +| [郑州向前](./mianjing/xq.md) | 12-10 | [feiChao33](https://github.com/feiChao33) | +| [岐飞科技](./mianjing/qfkj.md) | 12-10 | [Myming621](https://github.com/Myming621) | +| [北京小羊驼](./mianjing/xyt.md) | 12-10 | [Myming621](https://github.com/Myming621) | +| [牧原科技](./mianjing/muyuan.md) | 12-10 | [CSGUIDER](https://github.com/WL2O2O) | +| [郑州乐精灵](./mianjing/ljl.md) | 12-7 | [CSGUIDER](https://github.com/WL2O2O) | +| [鑫丽锋科技](./mianjing/xlf.md) | 12-7 | [CSGUIDER](https://github.com/WL2O2O) | +| [`MySQL`常考自检](./bagu/MySQL自查版.md) | 12-7 | [CSGUIDER](https://github.com/WL2O2O) | +| [`Java SE`](./bagu/JavaSE/README.md) | 12-7 | [CSGUIDER](https://github.com/WL2O2O) | + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/SUMMARY.md b/src/SUMMARY.md index 5f5593f..7870ef4 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -9,35 +9,43 @@ - [Java SE 常考自检](./bagu/JavaSE自查版.md) - [MySQL 常考自检](./bagu/MySQL自查版.md) - [Java SE](./bagu/JavaSE/README.md) + - [介绍一下 Java 语言](./bagu/JavaSE/介绍一下Java语言.md) - - [介绍一下 JDK、JRE 和 JVM](./bagu/JavaSE/JDK和JRE和JVM三者的关系.md) - [创建 Java 对象有几种方式](./bagu/JavaSE/创建Java对象有几种方式.md) - [说说你对 HashMap 数据结构的理解](./bagu/JavaSE/说说你对HashMap数据结构的理解.md) - [什么是多态,你是怎么理解的](./bagu/JavaSE/什么是多态,你怎么理解的.md) - - [说说 String、StringBuilder 和 StringBuffer](./bagu/JavaSE/介绍一下String、StringBuilder和StringBuffer.md) + - + - - [Collections](./bagu/collections/README.md) -- [ArrayList 与 LinkedList 的区别](./bagu/collections/ArrayList与LinkedList区别.md) + - [ArrayList 与 LinkedList 的区别](./bagu/collections/ArrayList与LinkedList区别.md) - [JVM](./bagu/JVM/README.md) - [JVM 的内存区域是怎么划分的](./bagu/JVM/JVM的内存区域.md) - [JVM 的类加载过程是怎么样的](./bagu/JVM/JVM的类加载过程是怎么样的.md) - - [JVM 是如何创建对象的](./bagu/JVM/JVM是如何创建对象的.md) - - [JVM 是如何实现的平台无关](./bagu/JVM/JVM是如何实现的平台无关.md) - - [JVM 有哪些垃圾回收算法](./bagu/JVM/JVM有哪些垃圾回收算法.md) -- [JUC](./bagu/JUC/README.md) - - [什么是 Java 内存模型](./bagu/JUC/什么是Java内存模型.md) - - [什么是 ThreadLocal](./bagu/JUC/什么是ThreadLocal.md) - - [什么是死锁](./bagu/JUC/什么是死锁.md) - - [什么是线程池](./bagu/JUC/什么是线程池.md) + - + - + - + - + - + - + - - [Spring](./bagu/Spring/README.md) - [介绍一下 IOC](./bagu/Spring/介绍一下IOC.md) - - [介绍一下 AOP](./bagu/Spring/介绍一下AOP.md) - [用过哪些注解](./bagu/Spring/用过哪些注解.md) - [Spring 和 SpringBoot 的区别](./bagu/Spring/Spring和SpringBoot的区别.md) - + - - [MySQL](./bagu/MySQL/README.md) + - [什么是关系型数据库与非关系型数据库](./bagu/MySQL/什么是关系型数据库与非关系型数据库.md) - + - [MyISAM和InNoDB存储引擎的区别](./bagu/MySQL/MyISAM和InNoDB存储引擎的区别.md) - [Algo](./bagu/Algo/README.md) +- [设计模式](./bagu/设计模式/README.md) + + - [什么是设计模式](./bagu/设计模式/什么是设计模式.md) + - [Java中有哪些设计模式](./bagu/设计模式/Java中有哪些设计模式.md) + + + - [设计模式有哪些原则](./bagu/设计模式/设计模式有哪些原则.md) + # 面经篇 diff --git "a/src/bagu/JVM/JVM\347\232\204\345\206\205\345\255\230\345\214\272\345\237\237.md" "b/src/bagu/JVM/JVM\347\232\204\345\206\205\345\255\230\345\214\272\345\237\237.md" index fac80c8..cad30a0 100644 --- "a/src/bagu/JVM/JVM\347\232\204\345\206\205\345\255\230\345\214\272\345\237\237.md" +++ "b/src/bagu/JVM/JVM\347\232\204\345\206\205\345\255\230\345\214\272\345\237\237.md" @@ -1,4 +1,4 @@ -## 介绍一下`JVM`的内存区域 +## `JVM`的内存区域是怎么划分的 我们通过`JVM`的官网虚拟机规范定义可知,`JVM`的运行时内存区域主要是由Java堆、虚拟机栈、本地方法栈、方法区以及程序计数器和运行时常量池组成的。其中,堆、方法区与运行时常量池是线程共享的区域。 diff --git "a/src/bagu/collections/ArrayList\344\270\216LinkedList\345\214\272\345\210\253.md" "b/src/bagu/collections/ArrayList\344\270\216LinkedList\345\214\272\345\210\253.md" index aa30703..38ea0cf 100644 --- "a/src/bagu/collections/ArrayList\344\270\216LinkedList\345\214\272\345\210\253.md" +++ "b/src/bagu/collections/ArrayList\344\270\216LinkedList\345\214\272\345\210\253.md" @@ -1,7 +1,7 @@ -![Java 集合继承关系图](https://cs-wlei224.obs.cn-south-1.myhuaweicloud.com/blog-imgs/202312121816932.png) - # `ArrayList`与`LinkedList`的区别 +![Java 集合继承关系图](https://cs-wlei224.obs.cn-south-1.myhuaweicloud.com/blog-imgs/202312121816932.png) + 首先,他们都是`List`的集合的实现方式之一。具体来说,集合`List`有`ArrayList`、`LinkedList`、`AbstractList`、`Vector`四种实现方式,因为实现方式的不同,所以效率也不同。其中`LinkedList`些许特别,具体看图。(留一个小问题:`LinkedList`可以实现队列与栈吗?) 如果说二者处理数据的效率区别的话,如果数据和运算量很小的情况下,那么就没有什么对比意义了,如果数据量很大,那么有着以下区别: diff --git "a/src/bagu/\350\256\276\350\256\241\346\250\241\345\274\217/Java\344\270\255\346\234\211\345\223\252\344\272\233\350\256\276\350\256\241\346\250\241\345\274\217.md" "b/src/bagu/\350\256\276\350\256\241\346\250\241\345\274\217/Java\344\270\255\346\234\211\345\223\252\344\272\233\350\256\276\350\256\241\346\250\241\345\274\217.md" new file mode 100644 index 0000000..7dec41f --- /dev/null +++ "b/src/bagu/\350\256\276\350\256\241\346\250\241\345\274\217/Java\344\270\255\346\234\211\345\223\252\344\272\233\350\256\276\350\256\241\346\250\241\345\274\217.md" @@ -0,0 +1,28 @@ +## `Java`中都有哪些设计模式? + +很多人都说一共有 23 种设计模式,但是我们根据设计模式的定义来看,我认为`MVC`也是一种设计模式,所以,在强调了只要是基于原生、前辈们经验总结下来的设计思想,都可以说是一种设计模式。 + +**常见的设计模式有:** + +1. 工厂模式 + + > 创建一个工厂,用于创建对象。 + > 目的:将对象的创建与使用分离,可以避免在代码中重复写对象创建的代码。 + +2. 模板方法模式 + + > 抽出公共方法,然后复用 + +3. 装饰器模式 + + > 继承,然后添加新的功能就叫装饰器 + +4. 享元模式 + +5. 适配器模式 + + > 将一个类的接口换成客户端希望的立一个接口,可以是原不兼容的类被使用。 + +6. 单例模式 + + > 确保类只有一个实例,并只提供一个全局访问点。 \ No newline at end of file diff --git "a/src/bagu/\350\256\276\350\256\241\346\250\241\345\274\217/README.md" "b/src/bagu/\350\256\276\350\256\241\346\250\241\345\274\217/README.md" new file mode 100644 index 0000000..e69de29 diff --git "a/src/bagu/\350\256\276\350\256\241\346\250\241\345\274\217/\350\256\276\350\256\241\346\250\241\345\274\217\346\234\211\345\223\252\344\272\233\345\216\237\345\210\231.md" "b/src/bagu/\350\256\276\350\256\241\346\250\241\345\274\217/\350\256\276\350\256\241\346\250\241\345\274\217\346\234\211\345\223\252\344\272\233\345\216\237\345\210\231.md" new file mode 100644 index 0000000..43b19f7 --- /dev/null +++ "b/src/bagu/\350\256\276\350\256\241\346\250\241\345\274\217/\350\256\276\350\256\241\346\250\241\345\274\217\346\234\211\345\223\252\344\272\233\345\216\237\345\210\231.md" @@ -0,0 +1,11 @@ +## 设计模式的七大原则 + +| 原则 | 描述 | +| ------ | ------------------------------------------------------------ | +| `SRP` | Single Responsibility Principle(单一职责)—— 一个类只干一件事 | +| `OCP` | Open Close Principle(开放关闭原则)—— 开放功能,关闭修改 | +| `LSP` | 里氏替换原则 —— 任何一个父类都可以使用子类来替换,并且不影响程序正常执行 | +| `DIP` | 依赖倒置原则 —— 高层模块要依赖于抽象接口 | +| `ISP` | 接口隔离原则 —— 也就相当于接口单一职责,接口应该小而精,不包含多余的方法 | +| `CARP` | 合成聚合复用原则 —— 少用继承,优先使用合成聚合来构建复杂对象 | +| `LoD` | 迪米特法则 —— 松耦合Java中有哪些设计模式 | \ No newline at end of file