面试要点补充

面试考察的知识点多而杂,要完全掌握需要花费大量的时间和精力。但是面试中经常被问到的知识点却没有多少,你完全可以用 20% 的时间去掌握 80% 常问的知识点。在这里我将这 80% 常问的知识点整理出来,方便大家快速地掌握。这些知识点也标注了重要程度,从而让大家可以根据知识点的重要程度去制定学习计划。

下图列出了面试考察的九大知识点,也标出了重要程度和复习难度。当然重要程度根据不同的公司会有所不同,本文列的重要程度对大多数公司适用。

针对上图做以下几点说明:

  • 分布式与系统设计部分对于大厂面试来说至关重要,但是小厂面试考察的会少一点。
  • 语言基础部分,阿里喜欢问 Java、腾讯喜欢问 C++,其它大厂面试考察会少一些,小厂面试会考察多一些。
  • 数据库、中间件和框架部分对于大厂面试来说不是那么重要,但是对于小厂面试会重要一些。最好在项目中使用到这些技术,才能让这些技术成为亮点。
  • 项目在实习招聘阶段中不是特别重要,但是在校园招聘阶段重要程度会增高。但是如果你的学历不好,而且没有博客、开源项目、竞赛等加分项,那么最好做个比较出色的项目来增加简历通过率。

2. 操作系统

2.1 基础

  • ★★★  进程与线程的本质区别、以及各自的使用场景。
  • ★☆☆ 进程状态。
  • ★★★ 进程调度算法的特点以及使用场景。
  • ★☆☆ 线程实现的方式。
  • ★★☆ 协程的作用。
  • ★★☆ 常见进程同步问题。
  • ★★★ 进程通信方法的特点以及使用场景。
  • ★★★ 死锁必要条件、解决死锁策略,能写出和分析死锁的代码,能说明在数据库管理系统或者 Java 中如何解决死锁。
  • ★★★ 虚拟内存的作用,分页系统实现虚拟内存原理。
  • ★★★ 页面置换算法的原理,特别是 LRU 的实现原理,最好能手写,再说明它在 Redis 等作为缓存置换算法。
  • ★★★ 比较分页与分段的区别。
  • ★★★ 分析静态链接的不足,以及动态链接的特点。

2.2 Linux

  • ★★☆ 文件系统的原理,特别是 inode 和 block。数据恢复原理。
  • ★★★ 硬链接与软链接的区别。
  • ★★☆ 能够使用常用的命令,比如 cat 文件内容查看、find 搜索文件,以及 cut、sort 等管线命令。了解 grep 和 awk 的作用。
  • ★★★ 僵尸进程与孤儿进程的区别,从 SIGCHLD 分析产生僵尸进程的原因。

3. 计算机网络

3.1 基础

  • ★★★ 各层协议的作用,以及 TCP/IP 协议的特点。
  • ★★☆ 以太网的特点,以及帧结构。
  • ★★☆ 集线器、交换机、路由器的作用,以及所属的网络层。
  • ★★☆ IP 数据数据报常见字段的作用。
  • ★☆☆ ARP 协议的作用,以及维护 ARP 缓存的过程。
  • ★★☆ ICMP 报文种类以及作用;和 IP 数据报的关系;Ping 和 Traceroute 的具体原理。
  • ★★★ UDP 与 TCP 比较,分析上层协议应该使用 UDP 还是 TCP。
  • ★★★ 理解三次握手以及四次挥手具体过程,三次握手的原因、四次挥手原因、TIME_WAIT 的作用。
  • ★★★ 可靠传输原理,并设计可靠 UDP 协议。
  • ★★☆ TCP 拥塞控制的作用,理解具体原理。
  • ★★☆ DNS 的端口号;TCP 还是 UDP;作为缓存、负载均衡。

    3.2 HTTP

  • ★★★ GET 与 POST 比较:作用、参数、安全性、幂等性、可缓存。

  • ★★☆ HTTP 状态码。
  • ★★★ Cookie 作用、安全性问题、和 Session 的比较。
  • ★★☆ 缓存 的 Cache-Control 字段,特别是 Expires 和 max-age 的区别。ETag 验证原理。
  • ★★★ 长连接与短连接原理以及使用场景,流水线。
  • ★★★ HTTP 存在的安全性问题,以及 HTTPs 的加密、认证和完整性保护作用。
  • ★★☆ HTTP/1.x 的缺陷,以及 HTTP/2 的特点。
  • ★★★ HTTP/1.1 的特性。
  • ★★☆ HTTP 与 FTP 的比较。

3.3 Socket

  • ★★☆ 五种 IO 模型的特点以及比较。
  • ★★★ select、poll、epoll 的原理、比较、以及使用场景;epoll 的水平触发与边缘触发。

4. 数据库
4.1 SQL

  • ★★☆ 手写 SQL 语句,特别是连接查询与分组查询。
  • ★★☆ 连接查询与子查询的比较。
  • ★★☆ drop、delete、truncate 比较。
  • ★★☆ 视图的作用,以及何时能更新视图。
  • ★☆☆ 理解存储过程、触发器等作用。

4.2 系统原理

  • ★★★ ACID 的作用以及实现原理。
  • ★★★ 四大隔离级别,以及不可重复读和幻影读的出现原因。
  • ★★☆ 封锁的类型以及粒度,两段锁协议,隐式和显示锁定。
  • ★★★ 乐观锁与悲观锁。
  • ★★★ MVCC 原理,当前读以及快照读,Next-Key Locks 解决幻影读。
  • ★★☆ 范式理论。
  • ★★★ SQL 与 NoSQL 的比较。

4.3 MySQL

  • ★★★ B+ Tree 原理,与其它查找树的比较。
  • ★★★ MySQL 索引以及优化。
  • ★★★ 查询优化。
  • ★★★ InnoDB 与 MyISAM 比较。
  • ★★☆ 水平切分与垂直切分。
  • ★★☆ 主从复制原理、作用、实现。
  • ★☆☆ redo、undo、binlog 日志的作用。

4.4 Redis

  • ★★☆ 字典和跳跃表原理分析。
  • ★★★ 使用场景。
  • ★★★ 与 Memchached 的比较。
  • ★☆☆ 数据淘汰机制。
  • ★★☆ RDB 和 AOF 持久化机制。
  • ★★☆ 事件驱动模型。
  • ★☆☆ 主从复制原理。
  • ★★★ 集群与分布式。
  • ★★☆ 事务原理。
  • ★★★ 线程安全问题。

5. 面向对象
5.1 思想

  • ★★★  面向对象三大特性
  • ★☆☆ 设计原则

5.2 设计模式

    • ★★☆ 设计模式的作用。
    • ★★★ 手写单例模式,特别是双重检验锁以及静态内部类。
    • ★★★ 手写工厂模式。
    • ★★★ 理解 MVC,结合 SpringMVC 回答。
    • ★★★ 理解代理模式,结合 Spring 中的 AOP 回答。
    • ★★★ 分析 JDK 中常用的设计模式,例如装饰者模式、适配器模式、迭代器模式等。

原文地址:https://www.cnblogs.com/williamjie/p/11139158.html

时间: 2024-11-13 11:05:03

面试要点补充的相关文章

[.NET] 《Effective C#》快速笔记 - C# 高效编程要点补充

<Effective C#>快速笔记 - C# 高效编程要点补充 目录 四十五.尽量减少装箱拆箱 四十六.为应用程序创建专门的异常类 四十七.使用强异常安全保证 四十八.尽量使用安全的代码 四十九.实现与 CLS 兼容的程序集 五十.实现小尺寸.高内聚的程序集 这是这一系列的最后一篇. 四十五.尽量减少装箱拆箱 值类型是数据的容器,不支持多态. 装箱把一个值类型放在一个未确定类型的引用对象中,让该值作为引用类型所使用.拆箱指从引用类型的位置取出值的一个副本. 装箱拆箱都是比较影响性能的手段,应

《Effective C#》快速笔记 - C# 高效编程要点补充

目录 四十五.尽量减少装箱拆箱 四十六.为应用程序创建专门的异常类 四十七.使用强异常安全保证 四十八.尽量使用安全的代码 四十九.实现与 CLS 兼容的程序集 五十.实现小尺寸.高内聚的程序集 这是该系列的最后一篇.也许有些理论有可能会过时,我想它仍有存在的必要,人的知识水平也是一个不断成长的过程,学会站在前人的肩膀上,尝试不断的借鉴与总结. 四十五.尽量减少装箱拆箱 值类型是数据的容器,不支持多态. 装箱把一个值类型放在一个未确定类型的引用对象中,让该值作为引用类型所使用.拆箱指从引用类型的

Java面试要点整理

1.      Java的GC的理解 Java GC(Garbage Collection,垃圾收集,垃圾回收)机制,是Java与C++/C的主要区别之一,作为Java开发者,一般不需要专门编写内存回收和垃圾清理代码,对内存泄露和溢出的问题,也不需要像C程序员那样战战兢兢.这是因为在Java虚拟机中,存在自动内存管理和垃圾清扫机制.概括地说,该机制对 JVM(Java Virtual Machine)中的内存进行标记,并确定哪些内存需要回收,根据一定的回收策略,自动的回收内存,永不停息(Nerv

GBDT面试要点总结

一.简介 gbdt全称梯度下降树,在传统机器学习算法里面是对真实分布拟合的最好的几种算法之一,在前几年深度学习还没有大行其道之前,gbdt在各种竞赛是大放异彩.原因大概有几个,一是效果确实挺不错.二是即可以用于分类也可以用于回归.三是可以筛选特征.这三点实在是太吸引人了,导致在面试的时候大家也非常喜欢问这个算法. gbdt的面试考核点,大致有下面几个: gbdt 的算法的流程? gbdt 如何选择特征 ? gbdt 如何构建特征 ? gbdt 如何用于分类? gbdt 通过什么方式减少误差 ?

关于后端面试要点推荐+书籍推荐

数据结构和算法 重点内容 数据结构:字符串.栈.队列.二叉树.优先队列.hash表(Redis怎么用的).B+树(数据库索引) 算法:基本的几种排序.DFS.BFS.基本的动态规划.基本的图算法如果不是专门的算法工程师,消化好这些内容就够了.真的要手撕红黑树,那就有点夸张了. 参考书籍 <程序员面试金典-CC150> <剑指offer> <编程之美> <程序员算法面试指南> <算法> <编程珠玑> 刷题网站 LeetCode Lint

python面试要点

作者:罗伊链接:https://www.zhihu.com/question/33398583/answer/59017861来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 在这里我推荐几本书吧python参考手册,绝对让你更上一层楼图解密码技术,密码入门不二之选mysql技术内幕第五版,有点厚当手册读读,要有耐心,高性能mysql也强烈建议读读effective tcp/ip programming 为什么评论区有这么大差异?我想是个人经历不一样吧,如果是搞we

C#要点补充

1字符串与时间的互转 DateTime.TryParse将空字符串.为null或格式不正确,则转换为的DateTime所代表的值为:0001/1/1 0:00:00,此为DateTime.MinValue的值. 使用public static DateTime ParseExact(string s, string format, IFormatProvider provider);实例方法转换时间,可以指定转换的格式.其中format为输入字符s的格式.若指定的格式与输入字符格式不一样,会抛异

前端面试要点

CSS: 弹性布局   上下左右都固定,中间自适应 响应式设计: rem.百分比.媒体查询 伪类.伪元素 HTML5: 新增元素 Canvas,本地存储,cookie,音频.视频 Websocket JS: 闭包 作用域 call apply bind JS类型.判断JS类型  字符串型数字转成数字类型  null  undefined 数组新增方法及返回值.合并数组.数组去重几种方法  比较两个数组是否相同 对象有哪些方法,合并对象(assign)  克隆对象/深浅拷贝 原型链 面向对象 继承

Random Forest面试要点总结

随机森林的特征重要性原理 1.随机森林得到的feature importance的原理? 在随机森林中某个特征X的重要性的计算方法如下: 1:对于随机森林中的每一颗决策树,使用相应的OOB(袋外数据)数据来计算它的袋外数据误差,记为errOOB1. 2:  随机地对袋外数据OOB所有样本的特征X加入噪声干扰(就可以随机的改变样本在特征X处的值),再次计算它的袋外数据误差,记为errOOB2. 3:假设随机森林中有Ntree棵树,那么对于特征X的重要性=∑(errOOB2-errOOB1)/Ntr