复试经验分享
一、问答题目自测
1. 数据结构
1.1 请简述深度优先遍历、广度优先遍历的基本思想 栈、队列。
1.2 简述满二叉树,完全二叉树,二叉排序树,平衡二叉树的特性
1.3 什么是队列的上溢现象和假溢出现象? 解决它们有哪些方法? Overflow 上溢,真正的溢出;假溢出现象(False Overflow)
1.4 对单链表设置头节点的作用是什么 ?(至少说出两条好处) 插入和删除、空链表和非空链表的处理
1.5 若较频繁地对一个线性表进行插入和删除操作 , 该线性表宜采用何种存储结构? 为什么? 链式结构,因为采用顺序结构需要移动大量的元素,采用链式结构可以直接修改指针即可
1.6 为什么会引入线索二叉树?它有什么优势?主要是为了解决传统二叉树遍历效率不高的问题,尤其是在没有父指针的情况下,找到任一节点的前驱和后继节点比较困难。利用了二叉树中空的指针,提高了遍历效率,特别是在查找一个节点的前驱或者后继时比较方便,并且也节省了空间
1.7 循环比递归的效率一定高吗?各有其优点,循环在空间效率上优于递归,循环是原地操作,递归需要栈的帮助;递归可以让一些算法变得更加简便、清晰、易懂。
1.8 请比较 AOE 网与 AOV 网?AOE 网中,通过计算事件的最早发生时间和最迟发生时间,确定关键路径和项目最短工期;而在 AOV 网中,通过计算顶点的最早发生时间和最迟发生时间,确定关键路径和项目最短工期。
1.9 栈和队列的异同点?同:线性结构,异:LIFO(栈),FIFO(队列),栈常应用于表达式求值、括号匹配、函数调用,队列常用于任务调度、缓存管理、消息传递。
1.10 栈在后缀表达式求值的算法思想? 遇到数字入栈,遇到运算符弹出两个数字进行运算
1.11Dijkstra 算法和 BFS 求的最短路径有什么区别吗? 前者是解决带权最短路径问题,后者只能解决无权最短路径(每访问一个节点,路径长度 +1)
1.12 简述什么是哈夫曼树?用于编码无损压缩最优编码的方法,编码所得到的带权路径长度最小。
1.13 时间复杂度为 O(nlogn)的排序方法?快速排序、归并排序、桶排序
1.14 排序算法稳定性的定义?有那些不稳定排序?稳定性是指排序前后相同的元素相对位置保持不变,不稳定排序:快希选堆
1.15 堆排序是否是一种稳定的排序方法? 为什么? 不是稳定的,建堆过程中可能会让稳定性改变,不可避免
1.16 树的存储结构有哪些?双亲表示法、孩子表示法、孩子兄弟表示法。
1.17 栈在括号匹配中的算法思想? 遇到左括号入栈,遇到右括号弹栈,此时判断是否匹配
1.18 贪心算法和动态规划以及分治法的区别?贪心:每一步达到局部最优解;动态规划:将问题分解成相互重叠的子问题,并且通过记录子问题得到的结果,避免重复计算;分治:将问题分解成相互独立的子问题,如快速排序、归并排序
1.19 有哪些哈希函数的构造方法,列举一些?直接定址法、除留余数法
1.20 如何由遍历序列构造一棵二叉树?前 + 中,后 + 中。
2. 计算机组成原理
2.1 请说明三级存储体系分别由哪些部分组成,并比较“CACHE—主存”和“主存—辅存”这两个存储层次的相同点和不同点。从快到慢:寄存器、Cache、主存、辅存;在“CACHE—主存”体系中,缓存用于加速 CPU 对主存的访问;而在“主存—辅存”体系中,主存用于暂时存储辅助存储器中的数据和程序,提供给 CPU 使用。
2.2 试说明 DMA 的工作流程。CPU 发起读数据请求,DMA 控制器响应请求,接下来的工作就由 DMA 控制器接管,CPU 可以做别的事情,若数据传输完成,DMA 会发起中断通知 CPU 数据传输完成,这时就由 CPU 来接管工作。
2.3 什么是 RISC?RISC 指令系统的特点是什么?精简指令集系统,特点:指令长度固定,适合制定流水线的任务,使用寄存器较多,可以减少访问内存的时间,可以提高系统的性能。
2.4 请简要说明常见的主机与外围设备之间信息传送的控制方式,并指采用哪种方式 CPU 效率最低,哪种方式效率最高。程序查询、中断方式、DMA、通道。程序查询效率最低,DMA 效率最高。
2.5 说明冯诺依曼计算机的基本特征。采用存储程序的方式方式存储指令,计算机系统由运算器、控制器、输入设备、输出设备和存储器五大部分组成
2.6 请说明 SRAM 的组成结构,与 SRAM 相比,DRAM 在电路组成上有什么不同之处?SRAM 是静态随机存储器,DRAM 是动态随机存储器,DARM 需要刷新、SRAM 不需要刷新,SRAM 主要用于 Cache,DRAM 用于主存。
2.7 简述中断的步骤及中断响应的条件。步骤:中断请求、中断响应、中断服务程序处理、中断返回,条件:有中断请求信号、处于中断允许状态,并且还要判断中断优先级。
2.8 试论证在浮点数加减为什么要对阶,对阶原则反过来为什么不行? 对阶的原因:尽量减少误差,因为小阶向大阶对齐,尾数向右移,数值小的尾数可能被丢弃,但是如果反过来对阶,可能会导致数值大的位被丢弃,误差更大,对阶完成后,尾数可以直接相加,简化了运算。
2.9 与组合逻辑控制方式相比,微程序控制器有何优点?微程序控制器采用微指令来设计和控制系统,灵活度比较高,修改比较灵活、不需要对整个电路进行修改,易于扩展。
2.10 一个计算机系统中的总线,大致分为哪几类?数据总线、控制总线、地址总线。
2.11 指令和数据均存放在内存中,CPU 如何从时间和空间上区分它们是指令还是数据?取值周期取出的数据是指令,其他阶段,如执行阶段、间址阶段,取出的就是数据
2.12 简述多重中断系统中 CPU 响应处理一次中断的步骤?首先是系统内或者系统外部设备发起中断请求,然后 CPU 响应中断,关中断,保存断点,进行中断服务寻址,转去执行中断服务程序,执行完成后,关中断、恢复现场信息,中断返回。
2.13 什么是存储器的刷新?刷新有哪些典型的方式?存储器的刷新是指将数据永久的保存到存储介质中,以确保数据的持久性和安全性,如数据库事务日志刷新
2.14 何谓“总线仲裁”?总线仲裁是指当多个设备竞争同一个总线的时候,按照一定的规则分配给各个设备使用总线来完成各自的数据传输任务。
2.15 浮点数规格化的目的和方法?目的:提高精度,节约存储空间。方法:有左归和右归,将尾数的最高位始终保存着 1。
2.16 请说明微指令地址的形成方式主要有哪两种分别是从哪里获得的下一条微指令的微地址的?
2.17 讲讲啥是存储程序控制方式?这是冯诺依曼模型的核心之一,存储程序是指将一条条的指令和数据保存在存储器中,要执行某一条指令或者想要取出数据时,将其从存储器中取出来,CPU 可以自动的执行和分析。
2.18 简述 CPU 的主要功能?CPU 是计算机的大脑,可控制指令的译码和执行,数据的处理,中断的控制,按序按需的控制计算机的各种设备的正确运行。
2.19 在计算机系统结构中,什么是编译?什么是解释?编译是指执行程序前将其编译为可执行文件,即从高级语言翻译为机器语言并保存,如果程序没有改变,无需再次编译。解释是在想要运行程序必须解释一行运行一行,不会生成目标程序。
2.20 在计算机中,为什么要采用二进制来表示数据?二进制只有 0 和 1 两种状态,可以很方便的使用电子设备来实现,实现简单,节约成本,并且运算的处理更加简单。
2.21 向量中断、中断向量、向量地址三个概念是什么关系?
3. 操作系统
3.1 内存管理有哪些主要功能?它们的主要任务是什么?内存分配与回收、虚拟地址和物理地址的转换
3.2 试说明引起进程阻塞或被唤醒的主要事件是什么?所需要的某个资源暂时无法非配给这个阻塞进程,或者是进程需要进行 I/O 操作,需要等待这个资源被其他进程释放,才可以将进程唤醒。
3.2 分页和分段存储管理有何区别?分页是分成内存大小一致的空间,而分段存储是根据用户需要来分配的,大小不一致,分成代码段、数据段等。
3.3 OS 有哪几大特征?其最基本的特征是什么?
3.4 何谓死锁?产生死锁的原因和必要条件是什么?死锁就是资源分配不合理出现的一种互相等待资源而又都得不到满足的情况,比如一个进程需要 A 资源自己占有了 B 资源,另一个进程需要 B 资源自己占有了 A 资源,这样就导致两个进程都无法得到满足,导致死锁,解决方法有资源剥夺法、资源预分配法。
3.5 在创建一个进程时所要完成的主要工作是什么?为进程分配空间,如代码段、数据段、堆栈段,初始化进程控制块(PCB),分配 IO 资源、IO 设备
3.6 文件管理有哪些主要功能?文件是保存在磁盘介质上面的,文件的管理包括文件的增删改查,共享和保护。
3.7 试说明进程在三个基本状态之间转换的典型原因。首先进程的三种状态包括就绪态、运行态、等待态,就绪态到运行态:转变是因为进程分配到了 CPU 资源,运行态到就绪态:是分配给进程的时间片用完了,运行态到等待态:IO 请求,等待态到就绪态:IO 事件完成了
3.8 在解决死锁问题的几个方法中,哪种方法最易于实现?哪种方法使资源利用率最高?有四种方法:预防、避免、检测和解除
3.9 高级调度与低级调度的主要任务是什么?
3.10 分区存储管理中常用哪些分配策略?分区存储管理是对内存进行分区管理,采用合适的策略给进程分配内存空间,有首次适应算法、最佳适应算法、最坏适应算法、最近使用算法
3.11 目前广泛采用的目录结构形式是哪种?它有什么优点?树形目录结构,层次清晰、便于管理、查找效率高。
3.12 目前常用的磁盘调度算法有哪几种?首先磁盘调度是指优化了磁盘的请求顺序,来减少磁盘的寻道时间,寻道时间是访问磁盘的时候最耗时的部分,有先来先服调度算法(FCFS)、最短寻道时间优先算法(SSTF)、扫描算法(SCAN)、循环扫描算法(C-SCAN)。
3.13 设备控制器的组成?
3.14 试说明 PCB 的作用,为什么说 PCB 是进程存在的惟一标志?PCB 是进程控制块,系统每创建一个进程就需要为其创建一个进程控制块,进程控制块中包含了进程调度所需要的必要信息,如进程 ID、进程优先级、进程打开文件表等信息,在进行进程调度前需要知道这些信息。
3.15 试从物理概念上说明记录型信号量 wait 和 signal?信号量是代表了资源可用的数目,执行 wait 时,表示申请资源,会将信号量减一,表示资源被拿走了一个,若信号量等于零,再使用 wait 需要等待;signal 表示归还一个资源,信号量 +1,那些被信号量阻塞的进程可以进入就绪态等待调用。
3.16 什么是硬实时任务和软实时任务?
3.17 简述银行家算法?银行家算法把系统当成银行家,资源当成资金,进程被视作客户,在分配给客户资源前,先检查系统是否处于安全状态,如果安全,将其非配给客户,从而保证不发生死锁。
3.18 SPOOLing 技术的特点?SPOOLing 是假脱机操作,让客户以为自己独占了一个设备,实际上只是在设备申请使用表上面添加了一个请求,这种技术将独占设备改成了共享设备,提高了设备利用率。
3.19 操作系统的功能?进程管理、文件管理、磁盘管理、内存管理、设备管理
3.19 什么是页表和快表,有什么作用?页表指出逻辑地址中的页号与所占主存块号的对应关系。作用:页式存储管理在用动态重定位方式装入作业时,要利用页表做地址转换工作。快表就是存放在高速缓冲存储器的部分页表。它起页表相同的作用。由于采用页表做地址转换,读写内存数据时 CPU 要访问两次主存。有了快表,有时只要访问一次高速缓冲存储器,一次主存,这样可加速查找并提高指令执行速度。
4. 计算机网络
4.1 简述交换机工作原理。交换机可以进行 MAC 地址自学习,建立 MAC 地址表,从而实现本地局域网的数据转发,可以隔离冲突域
4.2 TCP/IP 的核心思想是什么?将网络通信实现为分层的设计,每个层次负责不同的功能,并且通过这种分层的设计,更容易实现网络的扩展,其中 TCP 协议实现网络的可靠传输,是有连接的,可靠的;IP 协议实现网络中数据包的传输,并且给每个设备定义一个唯一的 IP 地址,是无连接的,不可靠的。
4.2 什么是曼彻斯特编码和差分曼彻斯特编码?其特点是什么?曼彻斯特编码和差分曼彻斯特编码是数字通信中常用的编码方式,用于在数据传输过程中进行信号调制以及数据同步。
4.3 简述转发器、交换机、路由器和网关的工作层次和作用。转发器工作在物理层,用于放大信号延长传输距离;交换机工作在数据链路层,用于实现局域网内基于目的 MAC 地址的数据转发;路由器工作在网络层,实现不同网络的数据转发,通过路由表来计算转发路径,通过目的 IP 来实现从一个网络到达另外一个网络;网关工作在应用层,是网络的入口。
4.4 端到端通信和点到点通信有什么区别?端到端之间的通信是建立在传输层的,因为无论是TCP 还是 UDP 协议,都需要建立发送端和接收端,实现的是应用进程之间的通信;点到点通信是在数据链路层,基于 MAC 地址,只转发给相邻的节点。
4.5 什么是 CSMA/CD?并论述其发送过程。一种用于以太网局域网中的介质访问控制方法,用于协调多个设备在共享介质上进行数据传输的过程。
4.6 简述 TCP 和 UDP 协议的主要特点和应用场合? TCP 是面向连接的,在传输数据之前需要建立一条可靠的数据连接,在传输结束后,才会释放连接,可靠传输是通过确认、重传、流量控制、拥塞避免来实现的,应用场景:电子邮件、文件传输、网页浏览;UDP 是无连接的,不提供可靠传输,传输的数据也没有顺序性,应用场景:流媒体、实时视频通讯、语音通话等。
4.7 什么是多路复用技术?有几种复用方法?多路复用技术是指一个信道实现多个数据流的传输,以此来提高信道的利用率,通过复用的技术来将一个广播信道逻辑上分为几个互不干扰的子信道,常见的复用方法:频分复用、码分复用、时分复用。
4.8 什么是域名解析,域名解析中采取了什么措施提高效率?域名解释是将人们熟知的域名解析为 IP地址,当输入一个网址的时候,计算机需要通过域名获取 IP 地址,然后再建立连接。采取的措施:DNS 缓存,DNS 负载均衡。
4.9 简述 HTTP 协议的特点和工作过程。HTTP 是超文本传输协议,常用于 web 的网页传输格式协议,特点:无连接、无状态,可以通过 Cookie、Session 技术来保存用户状态,格式简单,有 GET、POST 等请求格式。
4.10 SMTP 协议的用途是什么?SMTP 是简单邮件传输协议,用于传输电子邮件,可以发送、接收、转发,通常接受邮件采用 POP3、IMAP,STMP 有时候也可以接收邮件。
4.11 简述 ICMP、DHCP 的作用?DHCP 流程? ICMP 用于用于检测网络中的状态信息,确保网络可靠,并且提供差错报告;DHCP 是用于给主机动态的分配 IP 地址,DHCP 流程:DHCP Discover、DHCP Offer、DHCP Request、DHCP Acknowledge。
4.12 面向连接服务与无连接服务各自的特点是什么? 面向连接的服务传输数据前要先建立连接,传输完数据后释放连接,传输的数据可靠、有序,常用于文件传输等可靠性要求高的场景;无连接服务,不需要繁琐的连接过程,但是数据不保证可靠性与有序性,应用场景:常用于实时性要求较高的场景,比如实时通讯、语言通话。
4.13 比较模拟通信方式与数字通信方式的优缺点?
4.14 比较 OSI 参考模型与 TCP/IP 参考模型的异同点。OSI 有 7 层,TCP/IP 有四层,OSI 的模型使用起来比较僵化,并没有得到广泛运用,是一个理论上的模型;TCP/IP 模型更具有灵活性,容易扩展,所以在实际运用中更加广泛。
4.15 简述选择重传 ARQ 协议的工作原理?
4.16 为什么 FTP 协议要使用两个独立的连接,即控制连接和数据连接?使用控制连接来处理连接请求,数据连接来传输数据,能够更加灵活,提高文件传输的并发能力。
4.17Internet 域名系统的主要用途是什么?它的交互过程由哪三种实体组成?将用户熟知的域名地址转为计算机可以识别的 IP 地址,交互:DNS 客户端、DNS 服务器、DNS
4.18 动态路由算法有那些?距离向量路由算法(RIP),链路状态路由算法(OSPF)
4.19 为什么要进行流量控制?防止数据丢失,减轻服务器的压力,减少成本。
4.20 主机间的通信方式?
5. 数据库
5.1 事务指的是满足 ACID 特性的一组操作,那 ACID 具体指的是啥?原子性、一致性、隔离性、持久性
5.2 事务的并发一致性问题有那些?幻读、脏读、不可重复读,幻读是指
5.3 不符合范式的关系,会产生很多异常,主要有那些异常?数据冗余
5.4 范式有那些,具体讲讲?从低到高主要有:1NF、2NF、3NF、BCNF、4NF、5NF。
5.5 数据的完整性是指数据的正确性和相容性,防止不合语义的数据进入数据库。
5.6 E-R 图的三种冲突? E-R 图是实体关系图,用来表示数据库概念模型,包含事物、属性和事物之间的关系。三种冲突包括:属性冲突、命名冲突、结构冲突,冲突是在合并 ER 图的时候发生的。
5.7 视图的作用?视图它本身并不包含数据,他只是查看保存在别处的数据的一种操作。作用:简化 SQL 操作,重用 SQL 语句,可以使用它来实现用户权限管理
5.8 数据库安全性控制的一般方法有那些?访问控制、加密操作
5.9 索引的设计原则?
5.10 数据库故障可分为?
5.11 自然连接与等值连接的区别?自然连接是一种特殊的等值连接
5.12 范式的定义?范式是数据库表设计时的一种规范,是为了减少数据冗余,提高数据一致性的一种方法,主要有三大范式:1NF、2NF、3NF,其中第一范式是确保数据表的每一列都是原子的,不能再分割;第二范式,再第一范式的基础上,每一张表的非主属性必须完全依赖于候选键,不能只依赖于候选键的一部分;第三范式,在第二范式的基础上,非主属性之间不能含有依赖关系,没有传递依赖,非主属性只能依赖于候选键。
5.13 索引建的多的好还是少的好?索引类似目录,Mysql 的 InnoDB 引擎默认使用 B+ 树作为索引,需要额外的空间去保存索引,索引的建立要适度,建立太多了,维护索引表的修改需要太多资源,浪费了,索引建立过少,又不能达到加快检索数据速度的效果。
5.13.5 为什么 Mysql 采用 B+ 树作为索引,而不是 B 树?这涉及到了 B+ 树的优点,由于 B+ 树的非叶子节点并不保存数据的具体内容,只保存了一部分查找相关的必要信息,数据库读一次内存可以查找的数据的范围要比 B 树大得多,减少了内存读取次数,并且 B+ 树的叶子节点形成了一个双链表,可以实现范围查找,加快了查找顺序。
5.14 数据模型有哪几种?
6. 软件工程
6.0 软件工程的认识?
6.1 软件重用?软件重用是指在开发软件的过程中,利用已有的软件模块、代码,来开发其他的软件,这样可以节约成本,减少人员的重复劳动,提高软件开发的效率,比如我自己项目中用的muduo 库、Json 库都是别的团队已经开发好的,经历过许多迭代和优化好的库。有几种常见的方法来实现软件重用:模块化开发、设计库和框架、利用设计模式。
6.2 软件测试类型?软件测试是指在软件发布前,使用各种方法来测试软件的质量、可行性、安全性,发现软件潜在的问题。类型有:单元测试、集成测试、性能测试、灾难恢复测试等,单元测试是针对软件中最小可测试单元进行测试,通常是一个函数;集成测试:测试多个单元模块组合后交互的测试。性能测试:是测试软件在不同负载能力下的表现,如响应速度、系统吞吐率。灾难恢复性测试:是指测试软件系统在灾难发生时的软件应对能力,如数据备份能力、系统恢复能力。
6.3 软件工程步骤?软件生命周期,一般步骤:问题定义、可行性分析、需求分析、软件的开发(设计、实现、测试)、维护(软件上线后肯定是不完美的,需要不断地收集错误反馈,改bug)。
6.4 UML?https://refactoringguru.cn/design-patterns/factory-method/cpp/example 设计模式没看完
7. 项目
7.1. 项目背景和创新点?
7.2. 项目用到了哪些技术?
7.3. 毕业设计(重点)?
7.4. 项目中的难点以及如何解决?
7.5. 项目中还有哪些可以继续改进?
8. 其他
8.1 进程和线程的区别与联系?联系:一个进程必须有一个线程,给进程分配资源,实际运行的是线程,进程内的线程共享进程的各种资源。区别:线程是调度的基本单位,进程是分配资源的基本单位,在撤销进程时,进程内的线程也要被撤销,并且回收其资源,所以撤销进程的开销比撤销线程的开销要大很多。
8.2 常见的进程调度算法?先来先服务算法、短作业优先算法、高响应比优先算法、时间片轮转调度算法。
8.3 页面置换算法?先进先出页面置换算法,最近最少使用算法
8.4 什么是虚拟内存? 将部分数据保存在硬盘中,在实际需要时再调入内存,程序中使用的地址其实都是虚拟内存地址,需要通过内存管理单元(MMU)来实现虚拟地址到物理地址的转换,虚拟存储是为了更好的支持程序的并发执行,让每个进程以为自己独占一片内存空间,但是实际上运行时,只有一部分经常访问的页面保存在内存中(这个是页面管理机制)。
8.5 常见的查找算法?顺序查找、二分法查找,插值查找:适合各个值均匀分布的查找算法,通过计算查找的值在查找区间内的比例期望值,得到一个期望的位置,并且这个区间会一直缩小,直到找到该元素。斐波那契查找:通过斐波那契查找算法分割时,分割后的两段也会呈现出黄金分割的特点(这可真是计算机大佬们的硬核审美啊 ~~)
8.6 浮点数的处理?通常使用的是 IEEE754 的标准,浮点数的组成:比如 32 位的浮点数,位符号位,8 位指数位,23 位尾数位,浮点数的乘法操作:符号位异或操作处理,指数部分相加,尾数部分相乘,最后进行规格化和舍入操作;浮点数的加法操作:对阶(小阶向大阶对齐),符号🔣相同,尾数相加,不同,尾数相减,最后进行规格化和舍入操作。
8.7. cache 的作用是什么?cache 介于 CPU 和内存之间,CPU 的速度远高于内存,为了缓和两者之间的速度差,加入了 cache,暂时保存从内存读取的数据,提高系统的性能。Cache 保存的是最近读取数据的副本,指的是 Cache 中含有的内容,主存中一定会有,利用的是程序的局部性原理,该原理有时间局部性和空间局部性。
8.9. 解释 TCP 为什么需要三次握手?TCP 协议是面向连接的协议,过程:第一次客户端发过去,第二次服务器回复,第三次还是客户端回复。三次握手可以保证不出现错误连接,比如旧连接重新发送。在两次握手的情况下,服务端没有中间状态给客户端来阻止历史连接,导致服务端可能建立一个历史连接,造成资源浪费。
8.10.TCP 如何解决拥塞阻塞?提供一种基于滑动窗口机制的流量控制协议,当发生拥塞时,拥塞窗口可以动态的变化来调整以适应网络情况,采用了:慢开始算法、拥塞避免算法、快重传、快恢复。
8.11. 说说快排的过程,时间复杂度?首先选择一个中轴,然后将元素划分为小于中轴的和大于中轴的,这只是一趟操作,然后下面的每一趟递归的选择左半边、右半边。平均时间复杂度是:O(nlog_2n).
8.12. 你最常用的语言是什么,为什么?我最常用的语言是 C++,我最开始接触的是 C 语言,但是但是并没有去深入学习,学完学校课程就抛之脑后了,后面又接触了 Java,发现这个语言真的很方便快速的上手,但是学了一段时间后,总有种模模糊糊的感觉,像是空中楼阁一般,后面接触了 C++,利用它来解一些计算机的底层的世界,用它来学操作系统、计算机网络等专业基础知识。
8.12.5 为什么说 Java 对比 C++ 是空中楼阁?首先我们知道 Java 是更安全的,那就是因为它限制了一些系统级的操作,导致的,并且 Java 的内存是由系统自动回收的,而 C++ 程序员可以自动管理内存的分配与释放,虽然手动管理内存很危险,但是可以更加精确的控制内存,性能更好。
8.13 电脑中的视频是如何保存的?视频就是会动的画面和声音组成的,通过特定的编码方式保存好图片帧序列和音频序列,实现会动的画面可以通过一秒内连续播放很多张动作连续的图片,可以理解为帧数(60 帧、120 帧),所以视频的保存是按照一定的编码方式保存很多张图片和相对应的音频编码组成。视频在播放的时候需要采用解码算法,将图片帧序列和音频序列解压缩,这样实现视频的清晰度和文件大小的兼顾。
8.14 电脑中的图片是怎么保存的?图片由一个个像素点保存,像素点如果是黑白的,是由一个 0-255 之间的数字表示,表黑的程度,如果是有彩色的,加入了 RGB 三个方面的色彩的数字,保存的是一个点阵序列,然后采用特定的解码方式将其显示出来。
8.15 电脑中的声音是如何保存的?首先是声音的采集,将声波转为数字信号,然后以特定的编码保存在电脑中。
9. 前沿技术
9.1 对人工智能的了解,强人工智能可实现吗?人工智能是一种研究如何让机器有类似于人类的能力的学科,在语音识别、图像识别、机器学习等领域有重大意义,强人工智能是指拥有人类思维能力、有一定的情感的机器人,目前的强人工智能,还需要技术和创新。
9.2 什么是机器学习?讲讲具体的算法?机器学习旨在让计算机从大量的数据中学习到其中的规律,根据训练方法的不同,分为:监督学习、无监督学习,半监督学习、深度学习,机器学习的流程:收集数据、分析数据、建立模型、开始训练、最后测试结果。
9.3 什么是大数据?你接触到最大的数据有多少?大数据就是从大量的数据中获取有价值的东西,因为数据量比较庞大,其实有很多数据是无用的,所以需要通过分析其规律、整合,并且数据量过大,也产生了一些问题,比如存储问题、数据安全问题、数据管理问题。
9.4 什么是数据挖掘?应对当前大量数据产生的时代,挖掘大量数据背后的规律、价值,用于业务决策,它可以帮助机构和企业更好地理解他们的数据,从中发现商业机会、优化流程,甚至预测未来趋势。
9.5 大数据和机器学习之间有什么联系?
9.6 什么是深度学习?就把什么梯度下降 反向传播激活函数(看不到)这些基本的学懂就行 然后把所用的深度学习框架了解一下 比如 pytorch
9.7 梯度下降算法?梯度下降是一种优化算法,用于将损失函数最小化,损失函数越小,表明模型与数据的拟合程度越小
9.8 pytorch?pytorch 可以实现快速训练、构建和调试复杂的神经网络模型。