常见计算机保研面试题总结

PCB: 进程控制块process control block,一个数据结构,进程存在的唯一标志. 系统通过PCB来了解进程的状态信息,以便控制和管理。

事务:指一个单元的工作,要么全做,要么全不做,保证一组数据的修改要么全部执行,要么全部不执行。

事务的特点: ACID: 原子性(要么都做,要么都不做),一致性(运行中发生故障,必须回滚),隔离性(一个事务不能被其他事务干扰),持续性(事务一旦提交,对数据库的改变应该是永久性的)。原隔一尺(持)。

多态: 接口的多种不同的实现方式. (允许将子类类型指针赋值给父类类型指针)


继承: 一个类继承另一个类的功能, 可以直接使用其属性和方法.并可以添加

Java单继承, c++可以多继承(多个爹)

封装: 隐藏对象的属性和细节, 仅对外提供公共访问方式.(控制属性的读和修改的访问级别)

虚函数:在某基类中声明为 virtual, 允许被一个或多个派生类中重写的成员函数,以实现多态。

Virtual 函数类型 函数名

纯虚函数:在基类中声明的虚函数,在基类中没有定义,但要求任何派生类都要定义自己的实现方法。在基类中实现纯虚数的方式是在函数原型后面加“=0”。

抽象类:包含纯虚数的类是抽象类。

指令是内核态的多还是用户态的多?

内核态,CPU可以访问内存所有数据,用户态下是受限访问,只能访问自己空间中的内存。

FAT: 文件配置表file allocation table: 分配给文件的所有盘块号都放在该表中,记录了文件所在位置。

文件系统:负责管理和存储文件信息的软件机构,由三部分组成:文件系统的接口,对对象操纵和管理的软件集合,对象及属性

文件系统类型: Windows中有FAT32,NTFS,Linus中有ext2,ext3,ext4

括号匹配:在很多字符串处理的场景中时常被用到,编译器编译时检查应该成对出现的括号是否符合要求等

栈应用---括号匹配:

设置一个栈,每读入一个左括号,则将该括号压入栈内;如果读到右括号,则与栈顶的左括号进行匹配检验,若成功,则栈弹出一个元素,否则整个式子匹配失败,结束。

算法思想:设置一个栈,当读到左括号时,左括号进栈。当读到右括号时,则从栈中弹出一个元素,与读到的左括号进行匹配,若匹配成功,继续读入;否则匹配失败,返回FLASE。另外,在算法的开始和结束时,栈都应该是空的.所以匹配到最后还要判断栈是否为空,若非空,则说明匹配失败。

进程和线程(thread)的区别

线程是独立调度的基本单位, 本身没有资源, 进程是资源分配的基本单位, 同一进程中的线程共享进程的地址空间(放着各种资源: 进程代码段, 全局变量, 打开的文件), 但是, 一个线程的栈指针对其他线程透明(心里的客栈, 只对自己开放)

进程为什么是资源分配的基本单位?

进程是一个程序对某个数据集的一次运行活动,创建进程的时候要分配CPU和内存等资源。

OSI/RM开放系统互连参考模型的全称

Open System Interconnection Reference Model.

OSI七层

物理层physical layer,数据链路层data link layer,网络层network layer,传输层transport layer,会话层session layer,表示层presentation layer,应用层application layer

二叉排序树转换成排序的双向链表

用递归的方法。二叉排序树特点一个结点的左子树比它小,右子树比它大,中序遍历得到一个递增的序列。

在中序遍历时,让指向左子树的指针变为链表中指向前一个结点的指针,指向右子树的指针变为链表中指向后一个结点的指针。

内存交换(对换)/对换(交换):多个进程之间

把处于等待状态的程序从内存中移出, 把准备好竞争CPU的程序移入内存交换区。

提高并行:多道程序设计

中断:解决处理器速度和硬件速度不匹配,是多道程序设计的必要条件。每个中断都有自己的数字标识,当中断发生时,指令计数器PC和处理机状态字PSW中的内容自动压入处理器堆栈,同时新的PC和PSW的中断向量也装入各自的寄存器中。这时,PC中包含的是该中断的中断处理程序的入口地址,它控制程序转向相应的处理,当中断处理程序执行完毕,该程序的最后一条iret(中断返回),它控制着恢复调用程序的环境。

中断和系统调用的区别:

中断是由外设产生, 无意的, 被动的

系统调用是由应用程序请求操作系统提供服务产生, 有意的, 主动的。要从用户态通过中断进入内核态。(联系)

中断过程:中断请求 中断响应 断点保护 执行中断服务程序 断点恢复 中断返回

系统调用过程:应用程序在用户态执行时请求系统调用,中断,从用户态进入内核态,在内核态执行相应的内核代码。

中断之后保存什么?保存pc, psw, 通用寄存器。Pc程序计数器program count,存放下一条指令所在的单元的地址。Psw,program status word程序状态字,指处理器的状态。

二叉树:

先序二叉树:若二叉树为空,什么也不做,否则,访问根结点,然后先序遍历左子树,最后先序遍历右子树。

中序二叉树:若二叉树为空,什么也不做,否则,中序遍历左子树,然后访问根结点,最后中序遍历右子树。

后序二叉树:若二叉树为空,什么也不做,否则,后序遍历左子树,后序遍历右子树,最后访问根结点。

先中后序,递归,用栈实现,因为每个结点都只访问一次,时间复杂度O(n),递归工作栈的深度恰好是树的深度,最坏情况下,n结点,n层,时间复杂度O(层数)。

层次遍历:若二叉树为空,什么也不做,否则,访问根结点,然后逐层遍历。

用队列。先+中,后+中,层+中序遍历都可以唯一确定一棵二叉树。

平衡二叉树(AVL树):树上任一结点的左子树和右子树的深度之差不超过1。

栈stack [stæk]  堆heap [hip]

The character of stack is first in last out. we can insert [ɪnˈsɜrt]  or delete [diˈlit] elements [ˈɛləmənts] in the same direction.

The character of heap is first in first out. We can insert elements in one direction, but delete delements in the other direction.

野指针:指向不可用内存区域的指针。

指针变量未初始化(会乱指,可能存储关键信息,一下子就比修改了),指针释放后未置空,指针操作超越变量作用域造成。对野指针进行操作很容易造成程序错误,甚至可能直接引起崩溃。

野指针与空指针不同,野指针无法通过简单地判断是否为NULL避免.

如何避免?指针变量初始化置null,指针释放后置null.

饥饿与死锁:

死锁:这种多个进程因竞争资源而造成的僵局,两个或多个进程因无限等待一个事件, 而该事件只能由这些等待进程之一来产生若如外力,进程都无法向前推进。

饥饿: 进程等待永远不会分配给自己的资源.

相同点: 都是因为竞争资源引起的

不同点: 死锁至少涉及两个进程, 一定有循环等待, 且等待永远不会释放的资源(好几个在环里不释放)

饥饿可以只涉及一个进程, 不一定有循环等待, 等待会释放但不会给自己的资源.

给你一组N个数字(比如 vector num), 然后给你一个常数(比如 int target) ,我们的goal是在这一堆数里面找到K个数字,使得这K个数字的和等于target。

2sum: 先对数组中的数进行排序,再设置两个指针,一个指向头,一个指向尾。判断两数和是否等于想要的数,如果是则在结果集添加这个数组;如果小了说明左边指针指向的数小了,因此左指针右移;反之如果大了则右指针左移。

3sum: 同样先对数组排序,设置三个指针p,q,r,p指针指向第一个数x,则q,r要指向数组中剩余数中的两个,并且指向的两数和为-x,从而转化为两数和问题。对p指向第一个数的情况分析完毕后,不可能再有满足题意且包含x的情况,于是p右移。这样一直分析到p指向数组中倒数第三个数的情况。

3sum时间复杂度O(n^2),排序(nlogn)

最外层遍历一遍,等于选出一个数, 之后的数组中转化为找和为target-nums[i]的2SUM问题。

时间复杂度:

(1)Θ(西塔):紧确界。相当于"="

(2)O (大欧):上界。相当于"<="

欧,牛,达到最大了

(3)o(小欧):非紧的上界。相当于"<"

(4)Ω(大欧米伽):下界。相当于">="

(5)ω(小欧米伽):非紧的下界。 相当于">"

折半插入:O(lon2n)

折半查找: O(n^2)因为同一往后移要O(n)

打开open文件:系统调用open,指明文件名,通过索引找到指定文件,将文件的属性(包括在外存的物理地址)从外存拷贝到内存打开文件表中,并返回给用户一个文件描述符(open文件时产生的一个整数,用来标识文件,起到索引作用)。

读read文件:系统调用read,指明文件名称和要读入文件的内存地址,通过搜索目录找到文件位置,系统维护一个读位置的指针,每当发生读操作时,更新读指针。

(根据open返回的文件描述符,找到文件位置)

写write文件:系统调用,指明文件名和要写入文件的内容,通过搜索目录找到文件位置,系统维护一个写位置指针,每当发生写操作,更新该写指针。

HashMap和HashTable都是基于哈希表来实现键值映射的工具类,通过单链表9(拉链法)解决冲突问题,容量不足(超过了阀值)时,都会自动增长。

区别: Hashtable扩容时,将容量变为原来的2倍加1,而HashMap扩容时,将容量变为原来的2倍。

Hash 表最坏情况下相当于一个单链表。所有的关键字通过函数得到的结果都一样时。

哈希表也即是哈希数组,根据关键词直接进行访问的数据结构,建议了关键字和存储地址之间的一种直接映射的关系。与表中元素个数无关,时间复杂

数据库存储数据的方式:

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,509评论 6 504
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,806评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,875评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,441评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,488评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,365评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,190评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,062评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,500评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,706评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,834评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,559评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,167评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,779评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,912评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,958评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,779评论 2 354