# cs-study **Repository Path**: LZ_OTZ/cs-study ## Basic Information - **Project Name**: cs-study - **Description**: 记录自己的计算机系统的学习过程 - **Primary Language**: Java - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-09-16 - **Last Updated**: 2022-02-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 学习记录 > 将一些学习到的知识进行编码记录 - [仓库](https://gitee.com/LZ_OTZ/study-notes.git)迁移 ## 代码 📂cs-study\code\Java\src
### 刷题 > 记录在网络上进行的编码练习 📂newcoder~牛客网题目~
📂leetcode~题目~
#### solution目录 存放了一些在牛客网上做过的编程题目, 命名方式优先为 牛客网提供的方法名, 题目编号, 含义。 每一个都书写详细的JavaDoc文档, 可以快速定位到牛客网的题目网址, 部分也可以直接根据题意进行自我测试。 ##### 工具类 > 存放牛客网用的数据结构, 以及添加一些辅助方法帮助调试 ### Java学习记录 > 记录学习过程中遇到的有趣的知识 📂basics
#### 基础知识 + BIO, NIO, NIO + 四种文件拷贝方式比较 1. 一个个字节 2. 带缓冲区 3. 使用通道缓存 4. 使用通道直接拷贝 + NIO 多人聊天室的简单实现 - redis底层基础 + 泛型, 序列化 + 泛型研究, 向Integer 的动态数组中 添加其他元素 + 借助序列化进行深拷贝 - 有趣的编码码点研究 + 使用 javac 与 javap 指令, 观察JVM使用StringBuilder进行优化的现象 + 单例模式 及其 最佳实践 - 反射 & 序列化 如何破坏单例的测试, 以及少许预防办法 - 懒汉式 饿汉式 - 双重检测, 静态内部类, 枚举 等实现方式 ##### JVM学习 1. 爪洼 - 线程de六种状态的代码展示 2. 指令重排导致的影响 3. 属性可见性导致的影响 4. Java字符串常量池的有趣问题 5. 有关 线程中断、wait()使用不当导致死锁 - (同样在 test 测试目录下) #### 数据结构与算法 📂data-structure
##### 数据结构 + 平衡二叉树、红黑树(仅插入) + 并查集 + 图的邻接矩阵、邻接表 ##### 算法 ###### 排序算法 + 选择排序、插入排序、希尔排序 + 堆排序 - (空间复杂度: O(1)) + 快速排序 - (常数速度最优) + 归并排序 - (外部排序, 稳定) ###### 查找算法 + 存放查找算法: 目前仅二分查找, 大部分查找算法在 牛客网 编程题中实践 ##### 工具类 #### 多线程并发 📂basics. i concurrent
- 初探AQS, 实现一次性门闩 一些JVM并发问题研究: 1. 非公平锁可减少的唤醒开销, 与公平锁在运行时的区别 2. 读写锁的非公平体现? - 使用两个线程交替打印奇偶数 - 如何正确感知子线程中未处理的异常 ## 文档 📂cs-study\document
### 文档翻译 > 一些官方文档的翻译 #### spring 主要是 Spring 框架中一些用到的文档 #### 其他 JDL入门教程: ` jhipster ` 所使用的数据库建模语言 ` JDL ` 的官方文档 OpenAPI 规范: 同 ` swagger ` 有关, 可以帮助快捷地完成 web接口设计巩固走 > > 学习笔记: 还有一些很乱的[Java](https://onedrive.live.com/view.aspx?resid=ED46498053F1004C%211585&id=documents)笔记, 还有些记得很棒的[高数笔记](https://onedrive.live.com/view.aspx?resid=ED46498053F1004C%211409&id=documents)(在OneNote客户端打开会好看得多), 有兴趣也可以了解一下. ↩