网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
缺点:
①性能:SQL Server必须把视图的查询转化成对基本表的查询,如果这7a64e78988e69d8331333236373831个视图是由一个复杂的多表查询所定义,那么,即使是视图的一个简单查询,SQL Server也把它变成一个复杂的结合体,需要花费一定的时间。
②修改限制:当用户试图修改视图的某些行时,SQL Server必须把它转化为对基本表的某些行的修改。对于简单视图来说,这是很方便的,但是,对于比较复杂的视图,可能是不可修改的。
Q:数据库为什么需要锁机制?有哪些锁机制?
https://www.cnblogs.com/xiaofengwang/p/11291944.html
保证数据库事务的一致性;防止出现(数据库的隔离级别:脏读,不可重复读,幻读等并发事件https://www.jianshu.com/p/d9389f27ca1a)
锁分为行级锁、表级锁、悲观锁、乐观锁
Q:drop、truncate、 delete区别
- drop直接删掉表。
- truncate删除表中数据,再插入时自增长id又从1开始。
- delete删除表中数据,可以加where字句。
Q:理解数据库的触发器
Q:重要的SQL语句举例
二、离散数学
Q:
三、计算机网络
Q:谈谈对TCP/IP协议的理解
Q:TCP的三次握手和四次挥手
Q:TCP和UDP的区别
1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接
2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付
Tcp通过校验和,重传控制,序号标识,滑动窗口、确认应答实现可靠传输。如丢包时的重发控制,还可以对次序乱掉的分包进行顺序控制。
3、UDP具有较好的实时性,工作效率比TCP高,适用于对高速传输和实时性有较高的通信或广播通信。
4.每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信
5、TCP对系统资源要求较多,UDP对系统资源要求较少。
Q:拥塞控制和流量控制都是什么,两者的区别?
流量控制是端到端的控制,例如A通过网络给B发数据,A发送的太快导致B没法接收(B缓冲窗口过小或者处理过慢),这时候的控制就是流量控制,原理是通过滑动窗口的大小改变来实现。
拥塞控制是A与B之间的网络发生堵塞导致传输过慢或者丢包,来不及传输。防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不至于过载。拥塞控制是一个全局性的过程,涉及到所有的主机、路由器,以及与降低网络性能有关的所有因素。
Q:访问一个网页的过程
https://blog.csdn.net/huangwei18351/article/details/81456228
四、操作系统
https://zhuanlan.zhihu.com/p/124284469
Q:操作系统的特点?
- – 共享:资源可被多个并发执行的进程使用
- – 并发:可以在同一时间间隔处理多个进程,需要硬件支持
- – 虚拟:将物理实体映射成为多个虚拟设备
- – 异步:进程执行走走停停,每次进程执行速度可能不同,但OS需保证进程每次执行结果相同
Q:操作系统的主要功能是什么?
- 处理机管理(包括进程控制、进程同步、进程通信、调度)
- 存储器管理(内存分配(静态/动态/连续/非连续分配)、内存包含、地址映射(逻辑地址–>物理地址)、内存扩充(虚拟存储技术))
- 设备管理(缓冲管理、设备分配、设备处理(启动设备、中断设备))
- 文件管理(文件存储空间管理、目录管理、文件读/写保护)
Q:操作系统发展过程?
- 无操作系统(人工操作方式):用户独占、CPU等待人工
- 单道批处理:内存只保存一道作业
- 多道批处理:运行多个程序同时存在主存中
- 分时:及时接收、及时处理,交互性
- 实时:实时控制、实时信息处理
Q:进程和线程的区别?
线程被称作轻量级进程,在进程中包含线程。进程有独立的内存空间,不同进程间不能直接共享其他进程资源,同一个进程内的线程共享进程内存空间;相比进程,线程切换对系统开销更小一些;进程是资源分配的最小单位,线程是程序执行的最小单位。
Q:进程的三个组成部分?
程序段、数据段、PCB(Process Control Block)
Q:进程切换的过程?
保持处理机上下文 -> 更新PCB -> 把PCB移入相应队列(就绪、阻塞) -> 选择另一个进程并更新其PCB -> 更新内存管理的数据结构 -> 恢复处理机上下文
Q:进程通信的方式
1、低级通信方式
PV操作(信号量机制)。
– P:wait(S)原语,申请S资源
– V:signal(S)原语,释放S资源
2、高级通信方式:以较高效率传输大量数据的通信方式
– 共享存储(使用同步互斥工具操作共享空间)
– 消息传递(进程间以格式化的消息进行数据交换,有中间实体,分为直接和间接两种,底层通过发送消息和接收消息两个原语实现)
– 管道通信(两个进程中间存在一个特殊的管道文件,进程的输入输出都通过管道,半双工通信)
Q:管程是什么?
由一组数据及对这组数据操作的定义组成的模块。同一时间只能有一个进程使用管程,即管程是互斥使用的,进程释放管程后需唤醒申请管程资源的等待队列上的进程。进程只有通过进入管程并使用管程内部的操作才能访问其中数据
Q:进程的五种状态是什么?
创建、就绪、阻塞、执行、终止
Q:线程间的同步与通信类型有哪些?
1.互斥锁mutex
2.条件变量
3.信号量机制
Q:线程的实现方式有哪几种?
1.内核支持线程(核内切换快,开销小,模式间切换慢)
2.用户级线程(节省模式间切换的开销)
3.混合
Q:产生死锁的原因有哪些?
- 对互斥资源分配不当
- 进程推进顺序不当
Q:处理产生死锁的办法有哪些?
- 预防死锁(破坏产生死锁的必要条件
- 避免死锁;3.检测死锁;4.解除死锁
Q:死锁的产生和避免?
死锁的四个必要条件:
(1)互斥条件(Mutual exclusion):资源不能被共享,只能由一个进程使用。
(2)请求与保持条件(Hold and wait):已经得到资源的进程可以再次申请新的资源。
(3)非剥夺条件(No pre-emption):已经分配的资源不能从相应的进程中被强制地剥夺。
(4)循环等待条件(Circular wait):系统中若干进程组成环路,该环路中每个进程都在等待相邻进程正占用的资源。
死锁避免(deadlock avoidence)是在系统运行过程中注意避免死锁的发生。这就要求每当申请一个资源时,系统都应根据一定的算法判断是否认可这次申请,使得在今后一段时间内系统不会出现死锁。这面方最著名的算法首推Dijkstra[1965]提出的银行家(banker)算法。
Q:死锁与饥饿的区别?
– 都是资源分配问题
– 死锁是等待永远不会释放的资源,而饥饿申请的资源会被释放,只是永远不会分配给自己
– 一旦产生死锁,则死锁进程必然是多个,而饥饿进程可以只有一个
– 饥饿的进程可能处于就绪状态,而死锁进程一定是阻塞进程
Q:FCB包含什么?
文件指针:上次读写位置。
文件打开数:多少个进程打开了此文件。
文件磁盘位置。
文件的访问权限:创建、只读、读写等。
Q:页面置换算法?
最佳置换算法OPT
先进先出置换算法FIFO
最近最久未使用算法LRU
时钟算法LOCK
改进型时钟算法
Q:批处理作业调度算法?
先来先服务FCFS
最短作业优先SJF
最高响应比优先HRN
多级队列调度算法
Q:进程调度算法?
先进先出FIFO
时间片轮转算法RR
最高优先级算法HPF
多级队列反馈算法
Q:磁盘调度算法?
先来先服务FCFS
最短寻道时间优先SSTF
扫描算法SCAN
循环扫描算法C-SCAN
Q:FAT(File Allocation Table)?
分配给文件的所有盘块号都放在FAT中,记录了文件的物理位置。
Q:什么是中断?
1.中断的引入——为了支持CPU和设备之间的并行操作
中断也称外中断,指来自CPU执行指令以外的事件的发生,如设备发出的I/O结束中断、时钟中断等。这一类中断通常是与当前执行的指令无关的事件。
2.异常的引入——表示CPU执行指令本身时出现的问题
异常也称内中断、例外或陷入,指源自CPU执行指令内部的事件,如程序的非法操作码、地址越界、算术溢出、缺页异常等。对异常的处理一般要依赖与当前程序的运行现场,不能被屏蔽。
3.中断和异常的联系与区别
Q:中断和系统调用区别?
中断:解决处理器速度和硬件速度不匹配,是多道程序设计的必要条件。每个中断都有自己的数字标识,当中断发生时,指令计数器PC和处理机状态字PSW中的内容自动压入处理器堆栈,同时新的PC和PSW的中断向量也装入各自的寄存器中。这时,PC中包含的是该中断的中断处理程序的入口地址,它控制程序转向相应的处理,当中断处理程序执行完毕,该程序的最后一条iret(中断返回),它控制着恢复调用程序的环境。 中断和系统调用的区别: 中断是由外设产生, 无意的, 被动的 系统调用是由应用程序请求操作系统提供服务产生, 有意的, 主动的。要从用户态通过中断进入内核态。(联系) 中断过程:中断请求 中断响应 断点保护 执行中断服务程序 断点恢复 中断返回 系统调用过程:应用程序在用户态执行时请求系统调用,中断,从用户态进入内核态,在内核态执行相应的内核代码。
Q:处理机调度有哪几层?
- 高级调度(后备作业–>内存)
- 中级调度(进程–>外存)
- 低级调度(进程/线程调度)
Q:页面置换算法有哪些?
最佳页面置换算法、最近最久未使用算法、时钟置换算法
Q:I/O控制方式有哪些?
- 程序控制I/O方式(CPU与I/O设备只能串行工作)
- 中断驱动方式
- DMA(仅在开始和结束才需要CPU干预)
Q:存储器的层次结构有哪些?
外存、主存、快速缓存、寄存器
Q:存储管理方案有哪些?
分区存储管理、分页存储管理、分段存储管理、段页式存储管理、虚拟存储管理
Q:设备管理采用的相关缓冲技术有哪些?
- 通道技术(使数据传输独立于CPU)(增加设备到主机之间的通路,使主存和设备之间有两条以上的通路)
- DMA技术(数据在主存与I/O设备间直接成块传送)
- 缓冲技术(硬件缓冲、软件缓冲)
- Spooling技术(使独占设备虚拟为多台设备)
五、计算机组成原理
**Q:**什么是冯诺伊曼结构?
输入输出,计算单元,控制单元,存储单元。
Q:高速缓存的作用
连接CPU和内存。
Q:cache和寄存器区别?
寄存器是暂时存储的CPU组成部分,cache用来做高度CPU和低速的主存之间加速带。
Q:指令系统
CISC复杂指令集,RISC是精简指令集。
Q:流水线
将重复性的过程分为若干个子过程来完成。
Q:总线和I/O
总线是指数据通信的连接线,有地址,数据,控制指令。
I/O的方式有程序性,中断性,通道,DMA。
六、数据结构
Q:迅速编写出算法(快排,冒泡,最短路)
Q:什么是二叉树,红黑树,AVL树
七、面向对象程序设计
Q:C和C++还有java的区别
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
Q:什么是二叉树,红黑树,AVL树
七、面向对象程序设计
Q:C和C++还有java的区别
[外链图片转存中…(img-8hLmqPyh-1715539845292)]
[外链图片转存中…(img-gAbwSPIG-1715539845293)]
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!