⭐️ 为什么要建这个仓库
天道酬勤,厚积薄发。知识是不断积累的,有时我们可能经过一番努力,把一个知识点给弄明白了,但是中间可能很长时间不用,就慢慢淡忘了,当我们在某一天在需要用到这个知识时,可能有需要重新查资料去学习,这无疑是在浪费时间。如果我们把弄明白的知识按照自己的思路梳理出来,并将其整理成文档的形式,这样当我们再次需要用到这个知识时,就可以直接查看相应的文档,此时如果有新的想法或者当时理解不正确的地方,我们可以对这个知识进行更新,这样循环迭代,我们对这个只是的理解就会越来越深刻。一个知识是这样,如果我们不断积累,那么就会逐渐形成自己的体系,把这个分享出来,大家共同去维护这个知识库,当别人有需要时,直接查看,这样就省去了在此整理的时间,如果其他人又好的想法,不断地去更新他,集思广益,这个知识就会变得越来越丰富,坚持下来的话,这将会是一件很有意义的事。我会不断更新这个仓库,也希望大家如果有什么想法的话,欢迎在issues
中提出来,或者通过pull
来提交,让我们大家一起共同维护这个知识库,完成这件有意义的事。
🐹 一些说明
🐌 这个项目的计算机基础和数据库部分是当时找实习的时候参考的Waking-Up中的内容,然后又查了一些资料进行补充和完善。
🍗 整个项目的在线版本为Grayson’s Notebook,在线版本是基于MrDoc搭建完成的,大家如果有兴趣的话可以根据部署指南搭建自己的知识库,具体的知识库效果可参见觅道文档效果示例,然后根据导入文集(Markdown文件压缩包)将本项目中最新发布的releases导入到自己搭建的知识库中,便可以拥有自己的知识库了,具体效果如下图。如果大家在搭建或使用的过程中有任何问题,欢迎提出issues来进行讨论。
🍓 推荐大家安装Octotree和Markdown Outline for GitHub两个插件,第一个插件可以将当前项目中的文件以文件夹的格式来组织,这样大家不用每点一个文件,都跳转一下链接;第二个插件可以将Github中Markdown文件以大纲的形式展示,这样切换到文档中的不同目录就比较方便,具体效果如下图。
Octotree:
Markdown Outline for GitHub:
📖 目录
论文写作 | 数据库 | 大数据 | Java | 推荐系统 | 计算机基础 |
---|---|---|---|---|---|
☁️ | 💻 | 💾 | 🎨 | 🔧 | 🐍 |
机器学习 | 算法笔记 | ||||
🐶 | 🐳 |
☁️ 论文写作
Project | Article | |
---|---|---|
论文写作 | 1、免费下载SCI文献的方法 | |
论文写作 | 2、硕士论文的书写方法 |
💻 数据库
Project | SubProject | Article |
---|---|---|
数据库 | 数据库基础 | 1.1 事务的概念和特性 |
数据库 | 数据库基础 | 1.2 锁 |
数据库 | 数据库基础 | 1.3 索引 |
💾 大数据
🎨 Java
Project | SubProject | Article |
---|---|---|
Java | Java基础 | 1.1 Java数据类型有哪几种 |
Java | Java基础 | 1.2 ArrayList与LinkedList的区别? |
Java | Java基础 | 1.3 HashMap、HashTable、ConcurrentHashMap各自的技术原理和使用场景是什么 |
Java | Java基础 | 1.4 HashMap和HashTable的区别 |
Java | Java基础 | 1.5 String、StringBuffer和StringBuilder的区别 |
Java | Java多线程 | 2.1 Runnable和 Thread的区别? |
Java | Java多线程 | 2.2 Thread类中的start()和run()方法有什么区别? |
Java | Java多线程 | 2.3 Java多线程中调用wait()和sleep()方法有什么不同? |
Java | Java多线程 | 2.4 ReentrantLock和Synchronized的区别? |
Java | Java多线程 | 2.5 volatile适用于高并发的什么场景? |
Java | Java多线程 | 2.6 多线程join方法用于什么场景? |
Java | Java多线程 | 2.7 多个线程间如何共享数据? |
Java | Java多线程 | 2.8 线程的状态有哪些,各自的使用场景是什么? |
Java | Java多线程 | 2.9 Java自带哪几种线程池 |
Java | Java多线程 | 2.10 Java内存模型 |
Java | Java多线程 | 2.11 并发编程的三大特性 |
Java | Java多线程 | 2.12 指令重排 |
Java | Java多线程 | 2.13 Volatile原理 |
Java | Java多线程 | 2.14 CAS原理 |
Java | Java多线程 | 2.15 Java的4种引用级别 |
Java | Java多线程 | 2.16 Java中的锁 |
Java | JVM | 3.1 运行时数据区域 |
Java | JVM | 3.2 判断对象是否存活的方法 |
Java | JVM | 3.3 垃圾收集算法 |
Java | JVM | 3.4 类的生命周期和加载过程 |
Java | JVM | 3.5 类加载时机 |
Java | JVM | 3.6 类加载器的种类 |
Java | JVM | 3.7 类加载机制的特点 |
Java | JVM | 3.8 JVM内存结构 |
Java | JVM | 3.9 常见的垃圾收集算法有哪些 |
Java | JVM | 3.10 指针碰撞和空闲列表 |
Java | JVM | 3.11 常见的垃圾收集器有哪些 |
Java | JVM | 3.12 内存溢出与内存泄漏的区别 |
Java | JVM | 3.13 常用的JVM启动参数有哪些 |
🔧 推荐系统
Project | SubProject | Article |
---|---|---|
推荐系统 | 1、推荐算法分类 |
🐍 计算机基础
Project | SubProject | ThirdSubProject | Article |
---|---|---|---|
计算机基础 | 计算机网络 | 传输层:TCP和UDP | 1.1.1 三次握手 |
计算机基础 | 计算机网络 | 传输层:TCP和UDP | 1.1.2 四次挥手 |
计算机基础 | 计算机网络 | 传输层:TCP和UDP | 1.1.3 流量控制 |
计算机基础 | 计算机网络 | 传输层:TCP和UDP | 1.1.5 拥塞控制 |
计算机基础 | 计算机网络 | 传输层:TCP和UDP | 1.1.6 TCP和UDP的区别 |
计算机基础 | 计算机网络 | 传输层:TCP和UDP | 1.1.7 TCP如何保证传输的可靠性 |
计算机基础 | 计算机网络 | 应用层:HTTP和HTTPS | 1.2.1 HTTP和HTTPS的区别 |
计算机基础 | 计算机网络 | 应用层:HTTP和HTTPS | 1.2.2 GET和POST的区别 |
计算机基础 | 计算机网络 | 应用层:HTTP和HTTPS | 1.2.3 Session与Cookie的区别 |
计算机基础 | 计算机网络 | 应用层:HTTP和HTTPS | 1.2.4 从输入网址到获得页面的过程(越详细越好) |
计算机基础 | 计算机网络 | 应用层:HTTP和HTTPS | 1.2.5 HTTP请求有哪些常见的状态码 |
计算机基础 | 计算机网络 | 应用层:HTTP和HTTPS | 1.2.6 什么是RIP,算法是什么 |
计算机基础 | 计算机网络 | 1.3 计算其网络体系结构 | |
计算机基础 | 计算机网络 | 网络层协议 | 1.4.1 IP地址的分类 |
计算机基础 | 计算机网络 | 网络层协议 | 1.4.2 划分子网 |
计算机基础 | 计算机网络 | 网络层协议 | 1.4.3 什么是ARP协议 |
计算机基础 | 计算机网络 | 网络层协议 | 1.4.4 NAT协议 |
计算机基础 | 操作系统 | 进程和线程 | 2.1.1 进程和线程的区别 |
计算机基础 | 操作系统 | 进程和线程 | 2.1.2 进程间通信方式 |
计算机基础 | 操作系统 | 进程和线程 | 2.1.3 进程同步问题 |
计算机基础 | 操作系统 | 进程和线程 | 2.1.4 进程有哪几种状态 |
计算机基础 | 操作系统 | 进程和线程 | 2.1.5 进程调度策略 |
计算机基础 | 操作系统 | 进程和线程 | 2.1.6 僵尸进程和孤儿进程 |
计算机基础 | 操作系统 | 进程和线程 | 2.1.7 线程同步 |
计算机基础 | 操作系统 | 进程和线程 | 2.1.8 协程 |
计算机基础 | 操作系统 | 进程和线程 | 2.1.9 异常控制流 |
计算机基础 | 操作系统 | 进程和线程 | 2.1.10 IO多路复用 |
计算机基础 | 操作系统 | 进程和线程 | 2.1.11 用户态和内核态 |
计算机基础 | 操作系统 | 2.2 死锁 | |
计算机基础 | 操作系统 | 内存管理 | 2.3.1 分页和分段 |
计算机基础 | 操作系统 | 内存管理 | 2.3.2 虚拟内存 |
计算机基础 | 操作系统 | 内存管理 | 2.3.3 页面置换算法 |
计算机基础 | 操作系统 | 内存管理 | 2.3.4 局部性原理 |
计算机基础 | 操作系统 | 内存管理 | 2.3.5 缓冲区溢出 |
计算机基础 | 操作系统 | 2.4 磁盘调度 |
🐶 机器学习
Project | SubProject | ThirdSubProject | Article |
---|---|---|---|
机器学习 | 1.1 机器学习方式 | ||
机器学习 | 基础知识 | 模型评估 | 1.2.1 错误率与精度 |
机器学习 | 基础知识 | 模型评估 | 1.2.2 查准率与查全率 |
机器学习 | 分类-基本算法 | 决策树 | 2.1.1 决策树的基本原理 |
机器学习 | 分类-基本算法 | 决策树 | 2.1.2 决策树的三要素 |
机器学习 | 分类-基本算法 | 决策树 | 2.1.3 决策树算法的优缺点 |
机器学习 | 分类-基本算法 | 决策树 | 2.1.4 熵和信息增益的区别 |
机器学习 | 分类-基本算法 | 决策树 | 2.1.5 剪枝处理的作用及策略 |
机器学习 | 分类-基本算法 | 决策树 | 2.1.6 决策树算法-id3 |
机器学习 | 分类-基本算法 | 决策树 | 2.1.7 决策树算法-c4.5 |
机器学习 | 分类-基本算法 | 决策树 | 2.1.8 决策树算法-cart |
机器学习 | 分类-组合算法 | 3.1 集成学习概述 | |
机器学习 | 分类-组合算法 | 3.2 个体学习器 | |
机器学习 | 分类-组合算法 | 3.3 结合策略 | |
机器学习 | 分类-组合算法 | 3.4 Bagging和Boosting的联系与区别 | |
机器学习 | 分类-组合算法 | Bagging | 3.5.1 随机森林原理 |
机器学习 | 分类-组合算法 | Boosting | 3.6.1 AdaBoost原理 |
🐳 算法笔记
Project | SubProject | ThirdSubProject | Article |
---|---|---|---|
算法笔记 | 算法框架 | 动态规划 | 1.1.1 斐波那契数列 |
算法笔记 | 算法框架 | 动态规划 | 1.1.2 凑零钱问题 |
算法笔记 | 算法框架 | 动态规划 | 1.1.3 贪心算法 |
算法笔记 | 算法框架 | 动态规划 | 1.1.4 最长递增子序列 |
算法笔记 | 算法框架 | 动态规划 | 1.1.5 编辑距离 |
算法笔记 | 算法框架 | 动态规划 | 1.1.6 高楼扔鸡蛋 |
算法笔记 | 算法框架 | 动态规划 | 1.1.7 最长回文子序列 |
算法笔记 | 算法框架 | 动态规划 | 1.1.8 最大子序和 |
算法笔记 | 算法框架 | 动态规划 | 1.1.9 买卖股票 |
算法笔记 | 算法框架 | 1.2 二分查找 | |
算法笔记 | 算法框架 | 数据结构 | 1.3.1 反转链表 |
算法笔记 | 算法框架 | 数据结构 | 1.3.2 数组中的第k个最大元素 |
算法笔记 | 算法框架 | 1.4 排序算法 | |
算法笔记 | 高频面试题 | 2.1 快速模幂算法 | |
算法笔记 | 高频面试题 | 2.2 如何运用二分查找算法 | |
算法笔记 | 高频面试题 | 2.3 如何高效解决接雨水问题 | |
算法笔记 | 高频面试题 | 2.4 删除有序数组中的重复项 | |
算法笔记 | 高频面试题 | 2.5 如何寻找最⻓回⽂⼦串 | |
算法笔记 | 高频面试题 | 2.6 如何判定括号的合法性 | |
算法笔记 | 高频面试题 | 2.7 如何寻找消失的元素 | |
算法笔记 | 高频面试题 | 2.8 如何寻找缺失和重复的元素 | |
算法笔记 | 高频面试题 | 2.9 如何高效判断回文链表 | |
算法笔记 | 高频面试题 | 2.10 随机算法之水塘抽样算法 | |
算法笔记 | 日常练习 | 3.1 搜索二维矩阵 | |
算法笔记 | 日常练习 | 3.2 环形链表 II | |
算法笔记 | 日常练习 | 3.3 在二叉树中分配硬币 | |
算法笔记 | 日常练习 | 3.4 构造 K 个回文字符串 | |
算法笔记 | 日常练习 | 3.5 将有序数组转换为二叉搜索树 | |
算法笔记 | 日常练习 | 3.6 找出数组游戏的赢家 | |
算法笔记 | 日常练习 | 3.7 最少侧跳次数 | |
算法笔记 | 日常练习 | 3.8 最大数 | |
算法笔记 | 日常练习 | 3.9 实现 Trie (前缀树) | |
算法笔记 | 日常练习 | 3.10 无重复字符的最长子串 | |
算法笔记 | 日常练习 | 3.11 LRU 缓存机制 | |
算法笔记 | 日常练习 | 3.12 K 个一组翻转链表 | |
算法笔记 | 日常练习 | 3.13 两数之和 | |
算法笔记 | 日常练习 | 3.14 相交链表 | |
算法笔记 | 日常练习 | 3.15 三数之和 | |
算法笔记 | 剑指Offer | 4.1 二维数组中的查找 | |
算法笔记 | 剑指Offer | 4.2 重建二叉树 |
❗️ 勘误
- 如果在文章中发现了问题,欢迎提交 PR 或者 issue,欢迎大神们多多指点🙏🙏🙏
♥️ Thanks
感谢Star!
©️ 转载
本作品由 Grayson 创作,采用知识共享署名 4.0 国际许可协议进行许可。