/Interview-Notebook

:books: 技术面试需要掌握的基础知识



网络 ☁️

计算机网络

整理自《计算机网络 第七版》,重点内容会在标题之后加 *。

HTTP

整理自《图解 HTTP》

操作系统 💻

计算机操作系统

整理自《现代操作系统》和《计算机操作系统》

Linux

整理自《鸟哥的 Linux 私房菜》

数据结构与算法 ✏️

算法

整理自《算法 第四版》,主要整理了面试常问的排序和查找算法。

剑指 Offer 题解

《剑指 Offer 第二版》的最优解,在牛客网在线编程中出现的题目都已 AC。

Leetcode 题解

对题目做了一个分类,并对每种题型的解题思路做了总结。已经整理了 300+ 的题目,基本涵盖所有经典题目。

面向对象 👫

设计模式

整理自《Head First 设计模式》

面向对象**

一些面向对象**和原则。

数据库 💾

SQL 语法

整理自《SQL 必知必会》

MySQL

整理自《高性能 MySQL》,整理了一些重点内容。

Java ☕

JVM

整理自《深入理解 Java 虚拟机》,主要整理了内存模型、垃圾回收以及类加载机制。

Java 容器

容器的一些总结,包含容器源码的分析。

Java IO

File、InputStream 和 OutputStream、Reader 和 Writer、Serializable、Socket 以及 NIO

Java 基础

整理了一些常见考点。

编码实践 🔨

重构

重构是对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本。

代码可读性

编程有很大一部分时间是在阅读代码,可读性良好的代码能够大大提高编程效率。

代码风格规范

Google 开源项目的代码风格规范。

资料下载 ⬇️

百度网盘

一些 PDF 书籍

后记 📝

原文发表在 牛客网:计算机基础知识整理

牛客网上有很多优质面经,面经往往会给出一些面试需要准备的知识列表,但是这些知识列表都很零散,不适合系统地进行学习。为此,楼主选取了一些计算机经典书籍和材料,对面试相关的计算机基础知识做了比较系统的整理,希望对大家有所帮助。

整理的笔记开源在 Github 上,包括数据结构与算法、网络、操作系统、面向对象。Github 仓库提供相关 PDF 书籍的下载,都是楼主找了很久的高清版本。

笔记内容基本是楼主一个字一个字打上去的,可供个人随意使用,转载请注明出处,毕竟写了很久没那么轻松~

如果发现笔误,可以直接编辑修改,楼主会及时处理。

想要支持楼主的话,在 Github 上点个 Star 即可。

楼主作为一个轻度强迫症患者,笔记内容会尽量保证排版美观,可读性好。为了让笔记内容更整洁,前前后后做了很多次修改,甚至写了一个为中英混排文档进行排版的脚本,来提高笔记的可读性。

为了上传笔记到 Github 上,花了不少时间。Github 使用的是 GFM 来渲染 md 文档,和普通的 Markdown 不太一样,例如 GFM 不支持 MathJax 公式,也不支持 TOC 标记,为此需要替换 MathJax 公式为 CodeCogs 的云服务和重新生成 TOC 目录。楼主写了一个小工具可以将普通的 Markdown 文档转换为 GFM 文档,有需要该工具的话可以在楼主的 Github 中找到。


知识共享许可协议

本作品采用 知识共享署名-非商业性使用-相同方式共享 3.0 **大陆许可协议 进行许可。