Giter Club home page Giter Club logo

develop_skill_tree's Introduction

2021年最新整理,名企校招各大岗位的技能树,含技术细节,Java,C/C++,前端,运维,测试,运营岗位。持续更新中...


计算机组成

计算机组成剖析

冯·诺依曼计算机结构

计算机执行指令的工作过程

指令系统分析

高级语言、汇编语言和机器语言之间的关系

    1. 机器语言:计算机执行的二进制命令,都是0和1表示的。
    1. 汇编语言:具有一定意义的文字命令,与机器语言一一对应。汇编语言可以通过汇编得到机器语言,机器语言可以通过反汇编得到汇编语言。汇编过程还包括变量内存管理,即经过汇编之后所有的变量和函数都变成了地址,而常量也变成了对应的值。但是汇编语言还是不够直观,一个简单的动作需要大量的语句来描述,因此又有了高级语言。
    1. 高级语言:更简单,符合人们的习惯,也更容易理解和修改。高级语言经过编译器编译之后可以得到目标程序。编译器的作用就是把高级语言的源代码转换成对应平台的目标代码。高级语言书写比较简单,但是翻译起来比较复杂,同样的高级语言语句可以有不同的机器语言实现方法。因此同一段高级语言经过不同的编译器编译之后会得到不同的目标程序,就是说高级语言与汇编/机器语言之间不再是一一对应的关系了。上面说到汇编之后源代码中的变量都变成了地址,所以用可执行文件(如exe等)进行反汇编之后得到的也是一堆地址,几乎不可能得到源代码。 另外,关于跨平台,也是针对源代码而言的。一段源代码转移到另一个平台上要经过重新编译、重新获得目标程序才能运行,前提是源代码没有依赖于平台的特性。不过即使源代码对平台有依赖性,重新编译后也可以进行一定改动再使用。

计算机算术和逻辑运算方法及其实现

微处理器和CPU

    1. 功能不同:微处理器由一片或少数几片大规模集成电路组成的**处理器。CPU全称是**处理器,是电子计算机的主要设备之一,电脑中的核心配件。其功能主要是解释计算机指令以及处理计算机软件中的数据。电脑中所有操作都由CPU负责读取指令,对指令译码并执行指令的核心部件。
    1. 所属范围不同:微处理器是微型处理器的统称,比如显卡的GPU、手机的处理器,以及一些智能家电的处理器,是一个执行所有计算功能的部件。而CPU是电脑的一个组成部件。
    1. 名称不同:微处理器显然是微型的、功耗低、主频低、功能较弱的,现多指小型电子设备如手机、家用电器使用的处理单元。大型计算机的cpu显然不能叫微处理器,甚至pc的cpu一般也没有叫微处理器的。

存储系统

输入输出系统的基本原理和关键技术

计算机网络

网络层次划分

OSI七层网络模型

子网掩码及网络划分

ARP/RARP协议

路由选择协议

TCP/IP协议

UDP协议

DNS协议

NAT协议

DHCP协议

HTTP协议

数据结构

队列

集合

链表、数组

字典、关联数组

二叉树

每个节点最多有两个叶子节点。

完全二叉树

  • 《完全二叉树》
    • 叶节点只能出现在最下层和次下层,并且最下面一层的结点都集中在该层最左边的若干位置的二叉树。

平衡二叉树

左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。

二叉查找树(BST)

二叉查找树(Binary Search Tree),也称有序二叉树(ordered binary tree),排序二叉树(sorted binary tree)。

红黑树

B,B+,B*树

MySQL是基于B+树聚集索引组织表

LSM 树

LSM(Log-Structured Merge-Trees)和 B+ 树相比,是牺牲了部分读的性能来换取写的性能(通过批量写入),实现读写之间的平衡。 Hbase、LevelDB、Tair(Long DB)、nessDB 采用 LSM 树的结构。LSM可以快速建立索引。

  • 《LSM树 VS B+树》

    • B+ 树读性能好,但由于需要有序结构,当key比较分散时,磁盘寻道频繁,造成写性能较差。
    • LSM 是将一个大树拆分成N棵小树,先写到内存(无寻道问题,性能高),在内存中构建一颗有序小树(有序树),随着小树越来越大,内存的小树会flush到磁盘上。当读时,由于不知道数据在哪棵小树上,因此必须遍历(二分查找)所有的小树,但在每颗小树内部数据是有序的。
  • 《LSM树(Log-Structured Merge Tree)存储引擎》

    • 极端的说,基于LSM树实现的HBase的写性能比MySQL高了一个数量级,读性能低了一个数量级。
    • 优化方式:Bloom filter 替代二分查找;compact 小数位大树,提高查询性能。
    • Hbase 中,内存中达到一定阈值后,整体flush到磁盘上、形成一个文件(B+数),HDFS不支持update操作,所以Hbase做整体flush而不是merge update。flush到磁盘上的小树,定期会合并成一个大树。

BitSet

经常用于大规模数据的排重检查。

常用算法

排序、查找算法

选择排序

冒泡排序

插入排序

快速排序

归并排序

希尔排序

TODO

堆排序

计数排序

桶排序

基数排序

按照个位、十位、百位、...依次来排。

二分查找

Java 中的排序工具

布隆过滤器

常用于大数据的排重,比如email,url 等。 核心原理:将每条数据通过计算产生一个指纹(一个字节或多个字节,但一定比原始数据要少很多),其中每一位都是通过随机计算获得,在将指纹映射到一个大的按位存储的空间中。注意:会有一定的错误率。 优点:空间和时间效率都很高。 缺点:随着存入的元素数量增加,误算率随之增加。

字符串比较

KMP 算法

KMP:Knuth-Morris-Pratt算法(简称KMP) 核心原理是利用一个“部分匹配表”,跳过已经匹配过的元素。

深度优先、广度优先

贪心算法

回溯算法

剪枝算法

动态规划

朴素贝叶斯

推荐算法

最小生成树算法

最短路径算法

设计模式

创建型模式

结构型模式

行为型模式

实际应用案例

虚拟化

I/O虚拟化

网卡虚拟化

CPU虚拟化

内存虚拟化

网络安全

网络安全常识

web安全前后端基础

信息的扫描与嗅探

病毒知识入门

密码攻击的原理和方法

后门技术

网站攻防

端口扫描工具

操作系统

进程管理

  • 进程管理,其工作主要是进程调度,在单用户单任务的情况下,处理器仅为一个用户的一个任务所独占, 进程管理的工作十分简单。但在多道程序或多用户的情况 下,组织多个作业或任务时,就要解决处理器的调度、 分配和回收等问题 。

存储管理

  • 存储管理分为几种功能:存储分配、存储共享、存储保护 、存储扩张。

设备管理

  • 设备管理分有以下功能:设备分配、设备传输控制 、设备独立性。

文件管理

  • 文件存储空间的管理、目录管理 、文件操作管理、文件保护。

作业管理

  • 作业管理是负责处理用户提交的任何要求。

基础组件

池式组件

对象池

连接池

线程池

内存池

中间件

Mysql

Redis

MongoDB

Nginx

版本管理工具

Git

SVN

其他

正则表示式

XML

JSON





金主爸爸信息


零声教育推出9.9元,校招特训营:内容包含岗位投递渠道,技术方向选择(Java,c++,前端,算法,运维,测试,嵌入式),简历书写规范,面试准备事宜,企业选择,薪资谈判。
点击 秋招春招提前批大厂面试指导 简历梳理 offer选择 技术方向指导课程

另外每天8点还有技术直播分享,分享内容:Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK。
扫码联系小姐姐,获得直播链接。
barcode

develop_skill_tree's People

Contributors

wangbojing avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.