其他分享
首页 > 其他分享> > 北邮复试复习笔记_复试逆袭

北邮复试复习笔记_复试逆袭

作者:互联网

文章目录

计算机网络

OSI七层模型

在R1上指定一条静态路由,使目的ip为192.168.1.x网段的ip转发到R2

基本介绍

物理层

数据链路层

网络层

传输层:

会话层

表示层

应用层

物理层

功能:

信息交互方式

信道复用

虚电路

数据报服务虚电路服务
无连接有物理连接
分组独立,都带地址同一虚电路分组按同一个路由
无序有序
由主机保证由网络保证
经过故障节点不能工作
永久临时

数据链路层 局域网

功能:

CSMA/CD

每个节点都共享网络传输信道,在每个站要发送数据之前,

交换机

PPP协议

点对点
支持全双工链路
特点:
简单
不需要纠错,不需要序号,不需要流量控制

下一跳(网关)

1、pc1的的网关指向R1 LAN

2、pc2的网关指向R2的LAN口

3、R2的WAN口网关指向R1 LAN口

4、在R1上指定一条静态路由,使目的ip为192.168.1.x网段的ip转发到R2

网络层

功能:

路由器

接收来自一个网络接口的数据包,根据 其中所含的目的地址,决定转发到下一个目的地址。因此,路由器首先去掉数据包的二层头,取出目的 IP 地址,在转发路由表中查找它对应的下一跳地址,若找到,就在数据包的帧格前添加下一个 MAC 地 址,同时 IP 数据包头的 TTL(Time To Live)域也减一,并重新计算校验和。当数据包被送到输出端口 时,它需要按顺序等待,以便被传送到输出链路上。

IPv4 IPv6

MAC地址、IP地址、子网掩码、网关

A: 1
B: 128
C: 192
D: 224
E: 240

ARP协议

通过IP获取MAC地址
过伪造IP地址和MAC地址对实现ARP欺骗的,清空缓存,添加路由过滤

RARP

反过来

Ip协议

从一个网段发送到另一个网段

ICMP协议

确定IP包是否到达目的地
通知被丢弃原因

传输层

功能:

UDP协议

定义:用户数据报协议
特点:

TCP协议

文件传输

序列号
确认应答
超时重传
流量控制
拥塞控制

socket socket
bind connect
listen read,write
accept close
read,write
close

\UDPTCP
连接性面向无连接面向有连接
可靠性可靠性低,丢包不会重发可靠性高,丢包会重发
效率效率高效率低
双工性一对一、一对多、多对多通信点对点通信(全双工)
报文面向报文面向字节流
流量控制
阻塞控制

image

主动打开 被动打开
连接建立
主动关闭 被动关闭
等待关闭 最后关闭

第一个连接请求报文段并没有丢失,就误认为是client再次发出的一个新的连接请求,所以不能两次握手

IP 32 128

划分成若干时间片(简称时隙)

HTTP请求

HTTP是面向网页的,而FTP是面向文件的。

  1. 客户端连接到Web
  2. 发送HTTP请求
  3. 接受并响应
  4. 释放Tcp
  5. 浏览器解析HTML

每次请求都需要服务器回送响应,在请求结束后,会主动释放连接

无状态:
ssh
img

设计模式

设计原则

单例模式

一个类只有一个实例

工厂模式

interface Phone
class MiPhone implements Phone
class Iphone implements Phone
class PhoneFactory{
    public Phone make(string){
        if("mi"){
            return new Miphone();
        }else{
            return new Iphone();
        }
    }   
}

适配器模式(Adapter Pattern)

通过类继承实现适配,继承Target的接口,继承Adaptee的实现
Target target = new Adapter(); 类适配
Adaptee作为一个数据成员组合到类定义中,对象适配

计算机组成原理

.c 预处理 .cpp 编译器—汇编程序—生成可重定位目标程序--------库-链接器-------可执行文件

Q:TLB与cache与内存的区别

A:TLB与cache都是按内容访问的存储器,因为采用SRAM构成,这使得它们的访存速度大大快于使用DRAM组成的内存。但正因为采用SRAM使得它们的功耗高于内存,集成度低于内存。因此在计算机系统中,它们通常都是位于cpu内部,作为cpu与内存之间的高速缓存,用于解决高速cpu与慢速内存访问速度之间的矛盾。
不同点:按内容访问存储器(SRAM构成),按地址访问存储器(DRAM构成)。

操作系统

进程和程序

进程和线程

进程与线程区别

通信:

多线程和多进程的区别

(重点 面试官最最关心的一个问题,必须从cpu调度,上下文切换,数据共享,多核cup利用率,资源占用,等等各方面回答,然后有一个问题必须会被问到:哪些东西是一个线程私有的?答案中必须包含寄存器,否则悲催)

多进程编程简单,不会互相影响,可用增加机器方式扩展
多线程创建简单,切换简单,内存占用少,共享数据,同步复杂 线程私有寄存器

微内核

有效支持多处理机运行,适合分布式系统

DMA和中断

区别

硬中断和软中断

软中断

硬中断

操作系统是什么

管理控制计算机硬件与软件的计算机程序,是其他软件运行的基础

组成

用到的数据结构

系统调用过程

用户程序和操作系统之间的接口

在cpu指令集中有一部分指令为特权指令,这些指令只能让操作系统使用

虚拟存储器

基于局部性原理,仅将那些当前要运行的少数页面或段先装入内存

,时间局部性原理和空间局部性原理。为了实现虚拟内存,需要硬件上的支持和软件上的支持。硬件上需要缺页中断机构,地址翻译机构。软件上需要制定页面置换算法。因为虚拟内存为用户虚拟出一个用户地址空间,这简化了编译器和连接器的设计。

存储器管理

为多道程序的运行提供良好的环境
内存的分配和回收:
地址变换:提供地址变换功能,将逻辑地址转换成物理地址
扩充内存:借助于虚拟存储技术活其他自动覆盖技术
存储保护:保

解释分段与分页的区别

分页要对物理内存进行分块,然后再将逻辑页映射到物理块上,

分段系统将进程的逻辑地址空间,最突出的优点就是易于实现数据的共享

什么是 TLB

快表,加速地址转换,高速缓冲存储器,存放映射关系

程序装入方式

程序链接

交换技术,覆盖技术

内存连续分配管理方式

① 单一连续分配(静态分配) ② 固定分区分配(分区大小可以不等,但事先必须确定,运行时不能改变) ③ 动态分区分配

拼接技术

是解决碎片问题的

原子操作

要么执行完所有步骤,要么一步也不执行,不可能只执行所有步骤的一个子集。

常用的存储保护方法

(1)界限寄存器 上下界寄存器方法 基址、限长寄存器方法

(2)存储保护键:给每个存储块分配一个单独的存储键,它相当于一把锁。

续分区分配(会产生碎片)
优点:连续,设计简单,直接寻址,效率高。缺点:内存利用效率最低,有内部碎片。

非连续分区分配(允许将程序分散装置在到很多个不相邻的小分区,没有外部碎片
缺点:不连续,设计复杂,间接寻址,效率低。优点:内存利用效率高,无外部碎片。

页表

为了便于在内存中找到进程的每个页面所对应的物理块,系统为每个进程建立一张页面映射表。

段寄存器

    (Segment 段)

    CS(Code  Segment)   代码段寄存器   代码段寄存器,指定当前代码段,代码段中存放当前正在运行的程序段。

    DS(Data   Segment)   数据段寄存器   数据段寄存器,指定当前运行程序所使用的数据段。

    SS(Stack  Segment)   堆栈段寄存器   
    ES(extra   Segment)  附加段寄存器   

作业和进程

进程是一个程序对某个数据集的执行过程,是分配资源的基本单位

作业是用户需要计算机完成的某项任务,是要求计算机所做工作的集合。一个作业可由多个进程组成。

分段和分页

FCB文件控制块

文件目录中新增一条记录
特殊的文件,是有结构的文件,如上图的表格,用于记录各个文件的属性

数据结构

快排性能综合最好,因为其空间复杂度为O(1),平均时间复杂度为O(log2n)

哈希

哈希表,Hash table,也称为散列表,它是可以根据关键字的值,直接进行查询与访问的数据结构。我们通常通过映射函数将关键字直接对应到表中的某个位置,从而加快查找速度

堆排序

待排序列构造成一个堆,选出所以记录最大者做对堆顶元素,输出堆顶元素后,将堆底元素送入堆顶,性质破坏,向下调整,最后输出堆顶

C的结构体

只是把数据变量给包裹起来了,并不涉及算法;而C++是把数据变量及对这些数据变量的相关算法给封装起来,并且给对这些数据和类不同的访问权限。
比如简易模拟学生成绩管理系统,就可以定义一个学生类数组来代替学生类

哈夫曼树,

哈夫曼树又称最优二叉树,是一种带权路径长度最短的二叉树。所谓树的带权路径长度

将哈夫曼树从根节点到叶子节点的路径上分支字符组成的字符串作为叶子节点字符的编码,这便是赫夫曼编码。

非连通图

非连通图的遍历
对策:从每个连通分量中选择初始点,分别进行遍历,才能够访问到图中的所有顶点

B树B+树

B树

B+树

最短路径

迪杰斯特拉算法

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uv03wOLc-1617964912622)(C:\Users\47661\AppData\Roaming\Typora\typora-user-images\image-20210325224942730.png)]

Floyd算法

A当前最短路径
path记录最短路径的中间顶点
每个作为中间点,Aij > ? Aic+ Acj

排序算法

冒泡排序

img

选择排序

img

插入排序

img

希尔排序

img

归并算法

img

快速排序

img

堆排序

img

基数排序

img

计数排序

img

时间复杂度

时间复杂度是指执行算法所需要的计算工作量,一般情况下,按照基本操作次数最多的输入来计算时间复杂度

循环队列

要空一个位置,区分队满、队空

二叉排序树的查找过程

若根结点的关键字值等于查找的关键字,成功。否则,若小于根结点的关键字值,递归查左子树。若大于根结点的关键字值,递归查右子树。
若子树为空,查找不成功。

哈夫曼树

给定 n 个权值作为 n 个叶子结点,构造一棵二叉树,若带权路径长度达到最小,称这样的二叉树为最优二 叉树,也称为哈夫曼树(Huffman tree)。

深度优先搜索遍历

首先访问出发点 V,并将其标记为已访问;然后选取与 V 邻接的未被访问的邻接顶点 W,访问 W;再选取与 W 邻接的未被访问的顶点访问,当一个顶点所有的邻接顶点都被访问过时,则依 次退回最近被访问过的顶点,

生成森林

广度优先搜索遍历

依次访问v未访问过的邻接顶点

迪杰斯特拉算法

从a走到其他村的最短

Prim 为N个村修路

链表查找元素

顺序存储,(1+n)/2

图的存储方式

二叉树

可看作完全二叉树

循环队列

克服顺序队列“假溢出”

拓扑排序

有向无环图,没有前驱

非连通图

从每个连通分量中选择初始点,分别进行遍历,才能够访问图中的所有顶点。

专业课面试问题

闭式:没有自由出现的个体变元,不是闭式就不是命题

信息安全

网络安全有哪些方面

数据安全网络安全攻击,

包括密码学、身份认证、

区块链安全,但是这个更偏向应用层

密码学

渗透测试

模拟恶意黑客的攻击方法,来评估计算机网络系统安全的一种评估方法
nmap 端口 AVWS扫描漏洞 Metasploit

Web安全

**XSS (Cross-Site Scripting)**跨站脚本攻击是一种常见的安全漏洞,恶意攻击者在用户提交的数据中加入一些代码,alert,转义字符

CSRF( Cross-site request forgery)跨站请求伪造,伪装成了正常用户,登陆状态的cookie 悄悄访问某个网站的接口,完成某些操作,cookie中的参数取出来,加入到请求参数

SSRF服务端请求伪造 :借助于公网上的服务器来访问了内网系统。避免用户可以根据错误信息来判断远端服务器的端口状态。请求的端口进行限制

SQL注入是指通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,数据类型的检查等。

网络信息安全

可靠性、完整性、保密性、有效性、不可篡改

身份认证

编译原理

堆和栈的区别

Docker和KVM

docker 秒级实现一台主机上可以同时运行数千个 Docker 容器。

特性容器虚拟机
启动秒级分钟级
硬盘使用一般为 MB一般为 GB
性能接近原生弱于
系统支持量单机支持上千个容器一般几十个

java和c++

C和C++

C是结构化语言,C++添加面向对象

1.构造函数:

主要作用在于创建对象时为对象的成员属性赋值,构造函数由编译器自动调用,无需手动调用。

2.析构函数:

主要作用在于对象销毁前系统自动调用,执行一些清理工作

const char *p; 指向的内容不可修改
char * const p; 指针地址无法修改。

2的2013次方mod101,递归

垃圾回收

c++ : 引用计数算法

java:分代收集算法

过程调用

  1. 系统调用是动态调用,而CALL调用方式是静态调用;
    系统调用是动态调用,程序中不包含被调用代码

编译原理

在这里插入图片描述

词法分析器

语法分析器

语义分析器

中间代码生成

代码优化器:

试图改进中间代码,以产生执行速度较快的机器代码

代码生成器

NoSQL

Redis

  1. 支持 string
    list 双向链表
    set zset有序集合
    hash数据结构
  2. 支持持久化操作,保存在磁盘,进行数据备份,只有一个文件
  3. 单线程请求,指令串行执行,不需要考虑一致性
  4. 可进行同步复制
  5. 封装sql
  6. 速度快

单机模式

单个节点部署,没有备用节点实时同步数据,适用于缓存业务场景

集群模式:分布式

主从模式

哨兵模式

集群模式

设置密码:config set requirepass 123456

授权密码:auth 123456

集群之间 :异步复制,最多2^14个节点

达到上限会冲刷旧内容

适合场景

  1. 会话缓存
  2. 队列list set
  3. 排行榜zset
  4. 发布订阅

缓存击穿

缓存击穿,是指一个key非常热点,在不停的扛着大并发,大并发集中对这一个点进行访问,当这个key在失效的瞬间,持续的大并发就穿破缓存,直接请求数据库,就像在一个屏障上凿开了一个洞。

爬虫

模拟浏览器请求站点的行为,把站点返回的HTML代码/JSON数据/二进制数据(图片、视频) 爬到本地,进而提取自己需要的数据,存放起来使用;

反爬虫:访问频率限制或检验
浏览器会发送一小段信息给网站,我们称为Request Headers,
蜜罐爬虫可能会访问这样的链接,封禁IP

反反:分布式爬虫,多个服务器爬,平均

综合面试

计算机网络、数据结构、操作系统、数据库系统、信息系统安全

数据结构

本科的时候学习的不好,备考的时候下了比较大的功夫。数据结构绝对是最需要掌握的基础,是程序设计中常用的基本技术
它定义了计算机存储的物理结构,顺序存储(相邻数据元素的存放地址也相邻)、链式存储( 一部分存放结点值,另一部分存放指针);和逻辑结构,图结构(层次关系)、树型结构(任意两个数据元素之间都可能相关);
介绍了非常实用的排序算法,
是介于数学、计算机硬件、软件之间的桥梁。

信息系统安全

BLP模型中,“访问控制”的角度,用户只能在其自己的安全级别或更高的安全级别上创建内容

Biba完整性安全模型信息在系统中只能自上而下流动。

中国墙模型可以完全模拟 BLP 模型吗?

不可以。 中国墙安全策略是根据主体的访问历史来判断数据是否可以被访问, 。中国墙安全策略的本质是将全体数据划分为“利益冲突类”,根据强制性的约束,主体至多访问每个“利益冲突类”中的一个数据集。

Linux的内存管理机制是什么?

Linux的内存管理是分页存取机制,为了保证物理内存能得到充分的利用,内核会在适当的时候将物理内存中不经常使用的数据块自动交换到虚拟内存中,而将经常使用的信息保留到物理内存。虚拟内存是利用磁盘空间虚拟出的一块逻辑内存。

Linux任务调度机制

Linux根据调度策略 从整体上区分实时进程和普通进程

库函数与系统调用的区别

Linux 安全模块 LSM 是什么?

LSM 的设计思想是在最少改变内核代码的情况下,提供一个能够成功实现强制访问控制模块需要的结构或者接口

Linux

vi
gcc -0 name name.c
./name (.out)

函数连续性

当自变量趋于该点时,函数值的极限与函数在该点所取的值一致

面向过程面向对象

面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了;

面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。

浏览器访问网页的流程

优缺点

优点是思维活跃,为人积极乐观,具有很强的接受和学习新知识的能力,
做事认真负责,有团队意识
缺点是不太会拒绝人,之前小组跟老师做项目的时候,我作为组长在一开始就完成了明确的分功,但是由于一些原因我的队友经常会找我帮他们完成某一项任务,以至于后来会议总结发现项目一大部分是我来完成的,从个人看锻炼了技术,但是从长远讲,是非常不利的。

导师矛盾

首先应该避免这种事情的发送,跟老师应该是合作共赢的导向
如果出现意外的话,我会换位思考了解了解老师的想法,而且老师作为前辈考虑事情的,所以我会跟老师积极交流沟通,学习才是最重要的事情嘛

为什么选择

首先国科大是一所实力非常雄厚的学校,在计算机领域有很高的声望。对我肯定有很大的帮助
其次我作为河北人,从小就对北京这座城市有向往,对以后的就业也有很大的帮助,我很希望能够在这里学习,为自己喜爱的事业奋斗

First of all, USTC is a very strong school with a high reputation in the field of computer. It will certainly help me a lot
Secondly, as a Hebei native, I have been yearning for the city of Beijing since I was young, which will be of great help to my future employment. I really hope to study here and strive for my favorite career

素质

具备基础的专业知识、团队协作和沟通能力、英语读写能力、较好的文字表达能力和逻辑能力、一定的创新能力。

进程间通信

  1. 管道pipe:管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。 管道的实质是一个内核缓冲区,进程以先进先出的方式从缓冲区存取数据
  2. 命名管道FIFO:有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。
  3. 消息队列Message Queue:**用户进程可以向消息队列添加消息,也可以向消息队列读取消息。**消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点。
  4. 共享存储Shared Memory:这段共享内存由一个进程创建,但多个进程都可以访问。共享内存是最快的方式
  5. 信号量Semaphore:信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制 ,主要作为进程间以及同一进程内不同线程之间的同步手段。
  6. 套接字Socket:套解口也是一种进程间通信机制,与其他通信机制不同的是,它可用于不同机器间的进程通信。

定位内存泄漏

Linux小命令:mtrace(memory trace), 它可以用来协助定位内存泄露
ps查看进程kill

静态链接与动态链接的区别和使用

譬如让书本和白板上的笔记之间做静态链接,就是把白板上的笔记抄在书上书和笔记形成一个整体(可执行程序),这个时候把白板上的内容擦掉也没关系,因为已经整合到书上了

动态链接的方式白板上的内容是不许擦掉的,不然下次找不到。优点就是不占用书本空间,缺点是“效率相对低些”。

一个进程能用的最大内存(堆区)空间大小

32位意味着4G的寻址空间,最高的1G(虚拟地址从0xC0000000到0xffffffff)用做内核本身,可是经自己测试:堆区最多开2G - 1大小空间

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-J5iQJvkv-1617964912659)(C:\Users\47661\AppData\Roaming\Typora\typora-user-images\image-20210329120833750.png)]

我们去靶场源文件pass_chang.php看一下 找到这句话

$ sql = "UPDATE users SET PASSWORD=’$ pass’ where username=’$ username’ and password=’$ curr_pass’ ";

我们的用户名被**admin’#**传入进去,在数据库里#号为注释符 然后这句话就变成了

$ sql = "UPDATE users SET PASSWORD=’$ pass’ where username=’admin‘#’ and password=’$ curr_pass’ ";

然后就是

$ sql = "UPDATE users SET PASSWORD=’$ pass’ where username=’admin‘

从而将用户名为admin的账号的密码修改了

前沿知识

物联网协议

离散数学

图论 最小生成树,二叉树

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f7GU7gEn-1617964912661)(C:\Users\47661\AppData\Roaming\Typora\typora-user-images\image-20210323110141311.png)]

p→q 非p析取q

P→R == 非P 并 R

p双箭头q == 非p并q 交 非q并p

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WXzprocS-1617964912662)(C:\Users\47661\AppData\Roaming\Typora\typora-user-images\image-20210323111227027.png)]

级数

级数是指将数列的项依次用加号连接起来的函数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6yjIi9jO-1617964912663)(C:\Users\47661\AppData\Roaming\Typora\typora-user-images\image-20210311183514412.png)]

正则表达式

Java中的汉字Unicode码

user? ?:前面的字符至少出现0次或者1次
ab*c b可出现0到多次
ab+c b出现一次以上
a (cat|dog) 或
[a-c]+ 只能取自
[ ^a-zA-Z0-9] 不取
\d数字\w单词字符\s空白符\D非数字\W非单词字符
. 任意字符
^开头
$结尾

贪婪:.+
懒惰匹配: .+?

匹配RGB
#[a-fA-F0-9]{6}\b
匹配IP
\d+.\d+.\d+.\d+ \ .转义句点

余弦相似度匹配

# 把句子按字分开,中文按字分,英文按单词,数字按空格
regEx = re.compile('[\\W]*')
res = re.compile(r"([\u4e00-\u9fa5])")

    # 计算词频
    # 依次确定向量的每个位置的值
    for i in range(len(key_word)):
        # 遍历key_word中每个词在句子中的出现次数
        for j in range(len(list_word1)):
            if key_word[i] == list_word1[j]:
                word_vector1[i] += 1
        for k in range(len(list_word2)):
            if key_word[i] == list_word2[k]:
                word_vector2[i] += 1

    # 输出向量

[‘hi’, ‘今’, ‘天’, ‘温’, ‘度’, ‘是’, ‘12’, ‘摄’, ‘氏’, ‘度’] [‘hello’, ‘今’, ‘天’, ‘温’, ‘度’, ‘很’, ‘高’]
合并分词列表:[‘12’, ‘天’, ‘今’, ‘高’, ‘是’, ‘度’, ‘氏’, ‘温’, ‘hello’, ‘hi’, ‘摄’, ‘很’]
s1转为向量: word_vector1 = [1. 1. 1. 0. 1. 2. 1. 1. 0. 1. 1. 0.]
s2转为向量: word_vector2 = [0. 1. 1. 1. 0. 1. 0. 1. 1. 0. 0. 1.]

人脸识别 :

灰度图减少运算,分类标签训练,opencv识别

研究方法

g++ HelloWorld.cpp -o HelloWorldcpp

./HelloWorldcpp

攻击树

根据不同的攻击提供了一种正式的、有系统的方法来描述系统的安全性。基本上,您在树结构中表示对系统的攻击,目标是根节点,实现目标的不同方法是叶节点。
识别目标,如果有多个目标,则每个目标建立一个独立的攻击树
识别所有可能的场景(攻击),用以实施并达到目标
识别可能和不可能的场景

远程过程调用

两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数/方法
种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议

半监督学习

数据很多,但是带标签的数据很少
self-training(自训练算法)
还是两个样本集合:Labled={(xi,yi)};Unlabled= {xj}.

执行如下算法
Repeat:

  1.  用L生成分类策略F;
    
  2.  用F分类U,计算误差
    
  3.  选取U的子集u,即误差小的,加入标记.L=L+u;
    

重复上述步骤,直到U为空集.

半监督学习

有两个样本集,一个有标记,一个没有标记.
获取未标签数据的位置,将标签数据和未标签数据分开
随机选取80%训练数据集训练分类器,训练多个分类器对未标签数据集进行分类,并取最可信的标签加入训练数据集。利用得到的训练数据集训练分类器,对测试数据集进行分类。
将得到的标签与原标签对比,得到准确率

Extractive抽取式算法

TextRank算法

将文档看作一个词的网络,该网络中的链接表示词与词之间的语义关系。
句子抽取任务主要针对的是自动摘要这个场景,将每一个sentence作为一个顶点,根据两个句子之间的内容重复程度来计算他们之间的“相似度”,以这个相似度作为联系,由于不同句子之间相似度大小不一致,在这个场景下构建的是以相似度大小作为edge权重的有权图。

  1. 预处理:将输入的文本或文本集的内容分割成句子,构建图G =(V,E),其中V为句子集,对句子进行分词、去除停止词,得,其中是保留后的候选关键词。
  2. 的 我 有 人 个 用 和 在 第 是 片 他 们 共 了 号 来 条 点 你 里 回 者 到 应 部 她 与 句 说 斯 之 也 中 会 天 小 种 被 见 双 对 期 新 上 而 很 前 子 分 但 就 阿 下 地 把 为 都 已 后 这 让 又 从 最 以 吗 吧 着 太 好 要 那 给 请 呢 只 比 当 将 于 它 等 不 真 还 本 像 由 才 没 并 跟 向 更 如 因 可 其 么 无 得 再 别 自 全 若 原 必 啦 使 找 带 边 该 刚 总 亦 未 任 受 至 且 先 乃 末
  3. 句子相似度计算:构建图G中的边集E,基于句子间的内容覆盖率,给定两个句子si,sj,采用如下公式进行计算:
  4. 若两个句子之间的相似度大于给定的阈值,就认为这两个句子语义相关并将它们连接起来,即边的权值
  5. 句子权重计算:根据公式,迭代传播权重计算各句子的得分;
  6. 抽取文摘句:将(3)得到的句子得分进行倒序排序,抽取重要度最高的T个句子作为候选文摘句。
  7. 形成文摘:根据字数或句子数要求,从候选文摘句中抽取句子组成文摘。

软件工程

工作站

工作站,用于工作的计算机,在图形,处理能力,任务并行方面的能力上具有出色表现。服务器强调稳定性不同,而工作站侧重于工作时的高效性。

A workstation, a computer used for work, is outstanding in graphics, processing power, and the ability to parallel tasks. Servers emphasize different stability, while workstations emphasize efficiency at work.

需要哪些文档

软件测试

测试不充分

需求确认

数据库

事务

范式

数据库模式

模式,所有用户的公共数据视图。 一个数据库只有一个模式;

外模式,数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述

内模式,数据物理结构和存储方式的描述,是数据在数据库内部的表示方式(例如,记录的存储方式是顺序存储、按照B树结构存储还是按hash方法存储;索引按照什么方式组织;数据是否压缩存储,是否加密;数据的存储记录结构有何规定

数据库优化

数据库查询优化

放弃索引

建立索引

一般基于B树、B+树,索引用来快速地寻找那些具有特定值的记录
把无序的数据变成有序的查询,唯一不为空,常被查询的字段。

  1. 把创建了索引的列的内容进行排序
  2. 对排序结果生成倒排表
  3. 在倒排表内容上拼上数据地址链
  4. 在查询的时候,先拿到倒排表内容,再取出数据地址链,从而拿到具体数据

B树

可在内部节点同时存储键和值,频繁访问的靠近根节点

B+树

内部只能放键,一次读取可获得更多键,缩小范围,
全数遍历只需要logn找到最小的,通过链表ON顺序遍历

空间利用率更高
查询效率稳定
增删方便

一种是从根节点开始的随机查找,一种是从最小关键字开始的顺序查找。B+树比B-树更适合文件系统和数据库索引。

B+树存储空间比B-树消耗的少。

B+树vs B-树,聚集索引vs非聚集索引

聚簇索引

索引和数据存储在一起

非聚簇索引

指向数据对应行

平衡二叉树(o(logn))与B+树。

树的深度远远大于B+树。并且在物理存储上是极不规整的。

连结

数据库连接时间长以后会断开?

数据库的默认设置,防止长时间不用造成错乱和无法开启新的连接

视图的优缺点

数据库六个设计阶段

需求分析、概念结构设计、逻辑结构设计、数据库物理设计、数据库的实施、数据库运行和维护

数据库里的读锁,写锁

读锁是共享的,是异步的,是相互不阻塞的,高并发下,多个用户同时读取数据库中的同一个资源,可以相互不干扰;而写锁是排他的,同步的,是会阻塞其他的用户的写锁与读锁

并发:一致性,隔离性

从数据库系统角度分为三种:排他锁、共享锁、更新锁。

独占锁(排他锁),也称X锁(Exclusive Lock):

独占锁锁定的资源只允许进行锁定操作的程序使用,其它任何对它的操作均不会被接受。

共享锁,也叫S锁(Shared Lock):

共享锁顾名思义,那就是其锁定的资源可以被其它用户读取,但其它用户不能修改。

更新锁:

预定要对此页施加X锁,它允许其他事务读,但不允许再施加U锁或X锁

从程序员角度分为两种:一种是悲观锁,一种乐观锁。

悲观锁(Pessimistic Lock)

**悲观锁:**利用数据库的锁机制实现,在整个数据处理过程中都加入了锁,以保持排他性。

悲观锁按使用性质划分

  1. 多个事务可封锁同一个共享页;
  2. 任何事务都不能修改该页;
  3. 通常是该页被读取完毕,S锁立即被释放。

在SQL Server中,默认情况下,数据被读取后,立即释放共享锁。
例如,执行查询语句“SELECT * FROM my_table”时,首先锁定第一页,读取之后,释放对第一页的锁定,然后锁定第二页。这样,就允许在读操作过程中,修改未被锁定的第一页。
例如,语句“SELECT * FROM my_table HOLDLOCK”就要求在整个查询过程中,保持对表的锁定,直到查询完成才释放锁定。

排他锁(Exclusive Lock)

X锁,也叫写锁,表示对数据进行写操作。如果一个事务对对象加了排他锁,其他事务就不能再给它加任何锁了。(某个顾客把试衣间从里面反锁了,其他顾客想要使用这个试衣间,就只有等待锁从里面打开了。)
性质

  1. 仅允许一个事务封锁此页;
  2. 其他任何事务必须等到X锁被释放才能对该页进行访问;
  3. X锁一直到事务结束才能被释放。
更新锁

U锁,在修改操作的初始化阶段用来锁定可能要被修改的资源,这样可以避免使用共享锁造成的死锁现象。

行锁

锁的作用范围是行级别。

表锁

锁的作用范围是整张表。

乐观锁(Optimistic Lock)

顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会修改,所以,不会上锁。但是在更新的时候会判断一下在此期间别人有没有更新这个数据,可以使用版本号等机制。

ABA问题是指在当前事务读取该行数据时是A,经过别的事务修改成B,但是在当前事务要更新数据的时候,该行数据又被别的事务修改为A,事实上数据行是发生过改变的,存在并发问题。

ABA问题可以通过基于数据版本(Version)记录机制来解决。也就是为数据增加一个版本标识。

死锁

MySQL中的死锁主要是多个事务使用行级锁对某行数据加锁造成的

什么是云计算

云计算(cloud computing)是分布式计算的一种,指的是通过网络“云”将巨大的数据计算处理程序分解成无数个小程序,然后,通过多部服务器组成的系统进行处理和分析这些小程序得到结果并返回给用户。

深度学习

深度学习是学习样本数据的内在规律和表示层次,这些学习过程中获得的信息对诸如文字,图像和声音等数据的解释有很大的帮助。它的最终目标是让机器能够像人一样具有分析学习能力,能够识别文字、图像和声音等数据。 深度学习是一个复杂的机器学习算法,在语音和图像识别方面取得的效果,远远超过先前相关技术。

大数据和机器学习之前有什么联系

大数据是从数据量、数据类型和数据增长速度的角度描述数据。
数据挖掘是指通过算法从大数据中搜索处理其隐藏信息的过程。
人们应用机器学习方法在大数据中进行为数据挖掘。

数据挖掘

通过算法从大量数据中搜索处理隐藏信息

大数据

大数据是指容量庞大的数据集,大到传统的数据处理软件产品无法在合理的时间内捕获、管理和处理数据。

大数据前景

在正在兴起的智能汽车领域,需要数据的支持,只有体量足够大、多样高效的大数据能够支撑相关的算法,逐步提高AI的驾驶能力,达到真正水平的自动驾驶。

其次在移动通信领域,2G3G4G的出现都为生活环境带来了很大的变化,我们正处在5G技术的萌芽阶段,相比4G时期的视频通话,智能家居,实现真正的物联网技术一定是未来的趋势,对于汽车机器的控制,都意味着低延迟高带宽的数据传输,相应的数据增长速度也会指数式的上升,因此大数据技术有着很宽广的前景。

1、海量日志数据,提取出某日访问百度次数最多的那个IP。

​ 分治 hash映射 + hash统计 + 堆/快速/归并排序

使用一个变量缓存这此"最小值",在累计到一定数量之后再一次性写入

1、序列化和反序列化

序列化:是指将内存中的对象转成字节序列以便存储到硬盘(持久化)或者在网络传输;
反序列化:将字节序列或者磁盘持久化文件转译成内存中的对象;

2、 为什么要序列化?

一般来说活得对象值存在内存中,关机断电就没了,而“活着”的对象只能由本地进程使用,不能被发送到网络上的另一台计算机。而序列化可以存储“活着”的对象,并发送到远程计算机。

3、为什么Hadoop不用Java的序列化?

Hadoop序列化的特点:
对于处理大数据的Hadoop平台,其序列化机制需要具有如下特征:

紧促:一个紧凑的序列化机制可以充分利用数据中心的带宽,使用高效的存储空间
快速:在进程间通信(包括 MapReduce过程中涉及的数据交互)时会大量使用序列化机制,因此,必须尽量减少序列化和反序列化的开销
可扩展:随着系统的发展,系统间通信的协议会升级,类的定义会发生变化,序列化机制需要支持这些升级和变化
互操作:可以支持不同开发语言间的通信,如C++和Java间的通信
Java序列化是一个重量级序列化框架(serializable),一个对象被序列化之后会附带很多额外的信息(各种校验信息,继承体等),不便于高效传输。

Hadoop

3个核心组件:
分布式文件系统:HDFS —— 实现将文件分布式存储在很多的服务器上
分布式运算编程框架:MAPREDUCE —— 实现在很多机器上分布式并行运算
分布式资源调度平台:YARN —— 帮用户调度大量的mapreduce程序,并合理分配运算资源

HDFS

将大文件、大批量文件,分布式存放在大量服务器上,文件系统,用于存储文件
一台运行了namenode的服务器,和N台运行了datanode的服务器组成!

在10G的字符串中要求返回一个具体单词的位置。

我说的是先建立字典树再建立倒排索引,查找子串的时候先查字典树再查倒排索引。)

分治法,先hash映射把大文件分成很多个小文件,对于每个文件fi,都用hash_map做词和出现频率的统计,5000个文件,归并文件取出top100

机器学习

研究计算机怎样莫妮或实现人类的学习行为,不断完善自身。是人工智能的核心,目标是让机器能够像人一样具有分析学习的能力

传统方法:
分类方法:贝叶斯聚类方法:KMeans
深度学习:
CNN卷积神经网络
迁移学习,主动学习

算法

什么是算法

解决特定问题 求解步骤的描述

特性

输入和输出、有穷性、确定性、可行性

决策树算法:

决策树(decision tree)是一类常见的机器学习方法。类似于流程图,一颗决策树包含一个根节点、若干个内部节点和叶子节点,每一个树节点表示对一个特征或属性的测试,每一个分支代表一个属性的输出,每一个叶子节点对应一种决策结果。从根节点到每个叶节点的路径对应了一个判定测试序列。其学习的基本流程遵循分治(divide-and-conquer)策略。

朴素贝叶斯:

分别估计出,特征xi在每一类的条件概率
类别y的先验概率可以通过训练集算出,同样通过训练集上的统计,可以得出对应每一类上的,条件独立的特征对应的条件概率向量。

P(类别|特征)=P(特征|类别)P(类别)/P(特征)

P(C1|X) 值最大的类标签 C1 作为的类别。

对比

决策树算法对于数据预处理要求高一点

朴素贝叶斯方法对于数据的要求较高

Java基础

先编译,后解释

三大特征

封装:事物封装成类,减少耦合,隐藏细节

继承:派生,覆盖@Override重写,增强

多态:
覆盖
重载:参数个数,顺序,类型不同
father new son

抽象类:

接口:

数据类型

反射机制

作用:

犯错

for(int i=0;i<list.size();i++){
    list.remove(i);
}
System.out.println(list);

三大集合

HashMap

**结构改变快速失败(fast-fail

红黑树

解决Hash冲突的方法有哪些?

Hashtable在每次同步执行时都要锁住整个结构。

ConcurrentHashMap锁的方式是稍微细粒度的(分段锁)

List和Set的区别?

答: List和Set的区别可以简单总结如下。

数据结构分类

  1. 数组
  2. 队列
  3. 链表
  4. 散列表

静态变量

虚拟机内存

方法区

存放常量静态变量

堆内存

存放对象实例,负责垃圾回收

虚拟机栈

存放局部变量,引用变量

本地方法栈

native方法:调用非Java代码

程序计数器

位置指示器

内存分配与垃圾回收:

堆内存分为年轻代和老年代
年轻代又可以进一步划分为一个Eden(伊甸)区和两个Survivor(幸存)区

root根搜索方法:

root搜索方法的基本思路就是通过一系列可以做为root的对象作为起始点,从这些节点开始向下搜索。当一个对象到root节点没有任何引用链接时,则证明此对象是可以被回收的。以下对象会被认为是root对象:

拷贝

  1. 引用拷贝:创建一个指向对象的引用变量的拷贝。
  2. 对象拷贝:创建对象本身的一个副本。
  3. 深拷贝和浅拷贝都是对象拷贝
  4. 浅拷贝仅仅复制所考虑的对象,而不复制它所引用的对象。所有的对其他对象的引用仍然指向原来的对象

内存泄漏

垃圾回收GC Garbage Collector

标记-清除算法

第一阶段从引用根节点开始标记所有被引用的对象,第二阶段遍历整个堆,把未标记的对象清除。此算法需要暂停整个应用,

复制算法:

不会出现“碎片”问题,两倍内存空

标记-整理算法:

从根节点开始标记所有被引用对象,第二阶段遍历整个堆,清除未标记对象并且把存活对象“压缩”到堆的其中一块,

JVM中的垃圾收集器

CMS收集器

在不申请新内存空间条件下交换两个数的值

int a=3,b=6;
​ a = a + b;
​ b = a - b;
​ a = a - b;

​ a=a^b;
​ b=a^b;
​ a=a^b;

T 可以传

T 初始化先规定T

标签:北邮,节点,复试,算法,内存,进程,排序,数据,逆袭
来源: https://blog.csdn.net/weixin_42277902/article/details/115557129