# 数据结构与算法 :pencil2: > [算法](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/算法.md) 整理自《算法 第四版》,主要整理了面试常问的排序和查找算法。 > [剑指 Offer 题解](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/剑指%20offer%20题解.md) 《剑指 Offer 第二版》的最优解,在牛客网在线编程中出现的题目都已 AC。 > [Leetcode 题解](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/Leetcode%20题解.md) 对题目做了一个分类,并对每种题型的解题思路做了总结。已经整理了 300+ 的题目,基本涵盖所有经典题目。 # 网络 :cloud: > [计算机网络](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/计算机网络.md) 整理自《计算机网络 第七版》,重点内容会在标题之后加 \*。 > [HTTP](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/HTTP.md) 整理自《图解 HTTP》 # 操作系统 :computer: > [计算机操作系统](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/计算机操作系统.md) 整理自《现代操作系统》和《计算机操作系统》 > [Linux](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/Linux.md) 整理自《鸟哥的 Linux 私房菜》 # 面向对象 :couple: > [设计模式](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/设计模式.md) 整理自《Head First 设计模式》 > [面向对象思想](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/面向对象思想.md) 一些面向对象思想和原则。 # 数据库 :floppy_disk: > [SQL 语法](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/SQL%20语法.md) 整理自《SQL 必知必会》 > [MySQL](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/MySQL.md) 整理自《高性能 MySQL》,整理了一些重点内容。 # Java :coffee: > [JVM](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/JVM.md) 整理自《深入理解 Java 虚拟机》,主要整理了内存模型、垃圾回收以及类加载机制。 > [Java 容器](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/Java%20容器.md) 容器的一些总结,包含容器源码的分析。 > [Java IO](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/Java%20IO.md) File、InputStream 和 OutputStream、Reader 和 Writer、Serializable、Socket 以及 NIO > [Java 基础](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/Java%20基础.md) 整理了一些常见考点。 # 编码实践 :hammer: > [重构](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/重构.md) 重构是对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本。 > [代码可读性](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/代码可读性.md) 编程有很大一部分时间是在阅读代码,可读性良好的代码能够大大提高编程效率。 > [代码风格规范](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/代码风格规范.md) Google 开源项目的代码风格规范。 # 资料下载 :arrow_down: > [百度网盘](https://pan.baidu.com/s/1o9oD1s2#list/path=%2F) 一些 PDF 书籍 # 后记 :memo: 原文发表在 [牛客网:计算机基础知识整理](https://www.nowcoder.com/discuss/66985) 牛客网上有很多优质面经,面经往往会给出一些面试需要准备的知识列表,但是这些知识列表都很零散,不适合系统地进行学习。为此,楼主选取了一些计算机经典书籍和材料,对面试相关的计算机基础知识做了比较系统的整理,希望对大家有所帮助。 整理的笔记开源在 Github 上,包括数据结构与算法、网络、操作系统、面向对象。Github 仓库提供相关 PDF 书籍的下载,都是楼主找了很久的高清版本。 笔记内容基本是楼主一个字一个字打上去的,可供个人随意使用,转载请注明出处,毕竟写了很久没那么轻松~ 如果发现笔误,可以直接编辑修改,楼主会及时处理。 想要支持楼主的话,在 Github 上点个 Star 即可。 楼主作为一个轻度强迫症患者,笔记内容会尽量保证排版美观,可读性好。为了让笔记内容更整洁,前前后后做了很多次修改,甚至写了一个为中英混排文档进行排版的脚本,来提高笔记的可读性。 为了上传笔记到 Github 上,花了不少时间。Github 使用的是 GFM 来渲染 md 文档,和普通的 Markdown 不太一样,例如 GFM 不支持 MathJax 公式,也不支持 TOC 标记,为此需要替换 MathJax 公式为 CodeCogs 的云服务和重新生成 TOC 目录。楼主写了一个小工具可以将普通的 Markdown 文档转换为 GFM 文档,有需要该工具的话可以在楼主的 Github 中找到。