技术面试模拟测验解析:GML Test (2019-10-03) 十大核心考点逐题拆解
教程知识库【免费下载链接】tech-interview-for-developer 신입 개발자 전공 지식 기술 면접 백과사전 项目地址https://gitcode.com/GitHub_Trending/te/tech-interview-for-developer点击查看免费下载本文以仓库中的笔试模拟文档 Interview/Mock Test/GML Test (2019-10-03).md.md) 为骨架对其中 10 道覆盖OOP、库与框架、操作系统运营方式、HTTP、Cookie/Session、RISC/CISC、数据库 JOIN 与 Index、内核级线程的经典技术面试题逐一展开解析。读完本文你将掌握每道题的判定依据、错误选项的深层原理以及这些考点在本仓库 面试知识百科 中对应的完整理论文档可直接用于笔试自测与面试前的系统性复习。一、测验概览考点分布与出题风格这份 GML Test 是一套面向新入行开发者的综合技术笔试模拟题共 10 题其中 9 题为找出错误说法的单选形式1 题为术语填空答案集中列在文档末尾第 100-109 行。整套题目呈现出鲜明的反直觉陷阱式出题风格正确答案几乎都是看似合理实则违背原理的选项非常适合用来检验概念是否真正理解到位。题号考点领域答案1面向对象编程OOP四大特征22库Library与框架Framework53操作系统运营方式14HTTP 协议版本演进25Cookie 与 Session36RISC 与 CISC 指令集架构57数据库 JOIN 语义58进程切换Context Switching术语填空9数据库 Index 索引210内核级线程Kernel-Level Thread2下文按软件工程 → 操作系统 → 网络与 Web → 计算机体系结构 → 数据库五个主题域分组拆解每道题均给出选项正误判定 原理剖析 仓库配套资料三重解读。二、软件工程OOP 特征与库/框架辨析题 1OOP 特征的错误说法答案2OOP 具有维护性、复用性、扩展性的优点。封装通过信息隐藏实现高耦合높은 결합도与低内聚낮은 응집도。封装是为应对他人从外部操纵的意外情况将外部用户无法使用的特定属性或方法隐藏起来。多态性是指子类对从父类继承来的虚函数进行重写Overriding使用。对象是软件世界中要实现的客体实现它的设计图是类根据设计图在软件世界中实现的实体是实例Instance。正确解析选项 2 把封装的作用说反了。封装Encapsulation通过信息隐藏要达到的目标恰恰是高内聚、低耦合——这正是本仓库 Object-Oriented Programming.md 第 108-133 行反复强调的核心我们学习软件工程时知道将对象内模块间元素构成紧密相关的内容来提高内聚度、减少耦合度才是应对需求变更的好设计方法。这正是与封装密切相关的部分……外部无需访问的内容用 private 限制访问对象内字段声明为 private 正是这个原因。其余选项均可从该文档中找到依据选项 1OOP 的优点维护性、复用性、扩展性在文档开篇即有论述实现面向对象后对象间产生独立性、重复代码量减少独立性确立后也有助于维护。选项 3正是封装中信息隐藏的通俗描述——隐藏内部实现、仅暴露必要接口。选项 4多态性定义为父类方法被子类重写后按各自角色使用与文档第 201-216 行的定义一致。选项 5对象/类/实例三者的关系定义与文档第 69-73 行对象内部同时存在数据类型字段与函数方法的论述一致。记忆锚点封装 信息隐藏 →低耦合高内聚凡是把封装与高耦合低内聚挂钩的说法一律是错的。题 2库与框架的错误说法答案5框架自行掌控整体流程用户只需在其中填入所需代码。框架必须明确应用**控制反转IoC, Inversion of Control**概念。将对象注入框架的行为称为依赖注入DI, Dependency Injection。库可以理解为锯子、锤子、铁锹之类的工具。框架的优点是没有编程规则可完全按用户自定义方式开发。正确解析选项 5 恰恰说反。框架的本质是提供约束与骨架——使用者必须遵循框架约定的规则目录结构、生命周期、接口实现方式在其内开发没有规则、随心所欲是库的使用方式而非框架。本仓库 Interview/Interview List.md 第 738-744 行对 DI 给出了与选项 3 完全吻合的定义DIDependency Injection是 Spring 容器支持的核心概念之一通过配置文件设置对象间的依赖关系……容器基于 Bean 配置信息自动连接各对象。对象无需直接创建或查找依赖对象因此代码管理更容易。这也解释了选项 2 的正确性框架要掌控整体流程就必须反转控制权——用户代码是被框架调用的而非用户调用框架这正是 IoC。选项 4 是教材式的经典比喻库 工具箱。唯一错误的是选项 5。记忆锚点库 你来调它工具框架 它来调你规则 IoC/DI。三、操作系统运营方式、上下文切换与内核级线程题 3多个 CPU 并行分担任务的运营方式答案1在操作系统的运营方式中同时放置两个以上可执行程序的 CPU各自分担任务并行处理的方式是Multi-Processing SystemTime-Sharing SystemReal-Time SystemMulti-Programming SystemBatch Processing System正确解析答案为Multi-Processing System多处理系统。题干关键词是两个以上 CPU 各自分担这是多处理器并行的典型定义。四种易混淆运营方式的辨析可与 CPU Scheduling.md 第 11-13 行的系统目标分类互相印证运营方式核心特征Batch批处理尽可能多干活重吞吐量而非响应时间Multi-Programming多道程序设计单个 CPU上多个程序交替驻留、并发执行Time-Sharing分时时间片轮转追求快速响应与低等待交互式系统Multi-Processing多处理两个以上 CPU真正并行分担任务Real-Time实时严守截止期限deadline陷阱在于Multi-Programming 与 Multi-Processing 都含多字但前者强调单 CPU 上的并发交替微观串行后者强调多 CPU 上的物理并行。题干明确说CPU 两个以上因此只能是 Multi-Processing。题 8进程切换术语填空答案Context Switching多进程环境下CPU 正执行某进程时因中断请求需运行下一优先级的进程。此时保存原进程的状态或寄存器值并装入新进程的状态或寄存器值使 CPU 继续执行的操作是 。正确解析答案是Context Switching上下文切换。这是操作系统进程管理最核心的机制之一本仓库 PCB Context Switcing.md 第 59-84 行给出了完整定义CPU 将前一进程的状态保存到 PCBProcess Control Block再读取另一进程的信息到寄存器并装载这一过程就是 Context Switching。通常在中断发生、运行中的 CPU 使用时间时间片耗尽、或为等待 I/O 而阻塞时发生。关键细节链该文档第 26-53 行PCB 是元数据的载体每个进程创建时其 Process ID、Process State、Priority、CPU Registers 等元数据被存入 PCBPCB 以链表管理PCB List 头部不断挂接新生成的 PCB便于插入与删除切换伴随状态迁移Ready → Running、Running → Ready、Running → Waiting 等状态变化时都会触发切换。为什么必须保存再装入因为中断处理参见 Interrupt.md 第 40-50 行结束后要恢复现场继续原进程——将状态寄存器与 PC 等暂存到栈中中断服务例程结束后再回到原任务。延伸考点切换是有代价的Overhead。PCB Context Switcing.md 第 71-84 行指出进程拥有独立内存区域切换时的缓存初始化等重操作会产生开销但为了不让 CPU 空闲、给用户更快的响应这个开销值得承担。对比参见 Process vs Thread.md 第 60-66 行——进程级切换开销大于线程级这也是多线程被广泛使用的原因之一。题 10内核级线程的错误说法答案2进程的多个线程可一次性分派到若干处理器上因此在多处理器环境中运行非常快。某个线程的 I/O 操作结束前无法用其他线程继续其他工作。内核可以对每个线程进行单独管理。内核直接提供线程因此具有稳定性与丰富的功能。若线程的创建与调度主体是内核则称为内核级线程。正确解析选项 2 描述的恰恰是**用户级线程User-Level Thread**的缺陷而非内核级线程。本仓库 Interview/Interview List.md 第 277-289 行对两者的对比可以完全佐证用户级线程优点是上下文切换少、开销低线程切换无需调用内核调度器缺点是进程内某一线程进入内核的瞬间其余线程全部停止内核不知道线程的存在。内核级线程优点是比用户级线程更高效——可以充分利用多处理器用户线程无论 CPU 有多少都不会被内核模式调度无法高效分配到各 CPU缺点是会发生上下文切换且处理器模式在用户态与内核态之间切换频繁时会降低性能。据此逐项验证选项 1正确内核认识每个线程可把同一进程的多个线程同时分派到多个 CPU——这正是内核级线程在多处理器环境下的核心优势选项 2错误内核级线程中一个线程发起 I/O 阻塞时内核可调度同进程的其他线程继续运行一个线程阻塞导致全进程卡死是用户级线程的痛点选项 3、4正确内核逐一管理线程、直接提供线程服务带来稳定性和更多内核功能选项 5正确这是内核级线程的标准定义。记忆锚点用户级线程 内核看不见线程一阻塞全停内核级线程 内核看得见每个线程能上多核、能独立调度。四、网络与 WebHTTP 协议与 Cookie/Session题 4HTTP 的错误说法答案2HTTP 是 Web 上客户端与 Web 服务器间通信的协议之一。HTTP/1.1 支持同时동시传输但请求与响应按顺序进行。HTTP/2.0 通过头部压缩比 HTTP/1.1 更快。HTTP/2.0 可用一条连接同时收发多条消息。HTTP/1.1 基本按每个连接处理一个请求来设计。正确解析官方答案为 2。判定关键在于选项 2 中동시 전송이 가능可以同时传输这一说法HTTP/1.1 并不具备像 HTTP/2 那样在单条连接上并发多路复用传输的能力。HTTP/1.1 在同一连接上处理多个请求/响应时是串行排队的存在队头阻塞Head-of-Line Blocking问题——这正是它相比 HTTP/2 的主要性能短板。选项 3、4 正确HTTP/2.0 引入头部压缩HPACK与单连接多路复用Multiplexing一条 TCP 连接可同时承载多个请求-响应流。本仓库 HTTP HTTPS.md 第 5-39 行提供了 HTTP 的协议定位与安全背景HTTP 是基于文本的传输协议存在明文被窃听的隐患HTTPS 通过 SSL/TLS 加密解决可作延伸复习。关于选项 5 的补充说明严格按 RFC 语义HTTP/1.1 默认启用 Keep-Alive 持久连接一条连接可依次处理多个请求选项 5 的说法更贴近 HTTP/1.0 或未启用持久连接时的简化描述。出题人的意图是将其作为 HTTP/1.1 相对 HTTP/2 多路复用的局限来叙述——即一连接上一次处理一个请求-响应仍是 1.1 的基本工作方式。复习时抓住主线即可1.1 连接复用 串行 队头阻塞2.0 多路复用 头部压缩。题 5Cookie 与 Session 的错误说法答案3即使客户端不特别请求浏览器也会在发起 Request 时自动把 Cookie 放入 Request Header 发送给服务器。Session 使用 Cookie。同接用户数多的网站使用 Session 会大幅提升性能。安全性上 Session 优于 Cookie请求速度上 Cookie 快于 Session。Session 与 Cookie 不同在服务器端管理。正确解析选项 3 把 Session 的代价说成了收益。本仓库 Web/Cookie Session.md 的对比表提供了直接证据维度CookieSession存储位置客户端浏览器内存/硬盘服务器内存存储格式文本对象资源占用占用客户端资源不消耗服务器资源每次创建都占用服务器内存资源容量限制单域名 20 个、单 Cookie 4KB无限制据此判断选项 3错误Session 数据存于服务器内存同接用户越多服务器需要维护的 Session 越多内存与资源消耗越大性能不升反降。这正是高并发网站倾向使用 Cookie或 Token/Redis 等外部会话存储控制服务器内存压力的原因选项 1正确Cookie 由浏览器在每次请求时自动携带自动放入 Request Header 回传选项 2正确Session 的维系依赖 Cookie 传递 Session ID选项 4正确会话数据在服务端更安全Cookie 因存于客户端、免去服务端查找请求更快选项 5正确Session 服务端管理。记忆锚点Cookie 省服务器资源但安全弱Session 安全强但费服务器资源——同接量大时 Session 是负担而非助力。五、计算机体系结构RISC 与 CISC题 6RISC/CISC 的错误说法答案5基于CPU 中绝大多数操作仅需少量指令即可完成的事实实现、使用固定长度指令的是 RISC。两种方式中软件比重更大的是 RISC。RISC 编写程序时相对需要更多指令。让每条高级语言语句都对应一条机器指令的是 CISC。功耗大、价格贵的是 RISC。正确解析选项 5 张冠李戴。功耗大、价格昂贵的是 CISC而不是 RISC。本仓库 ARM 프로세서.md 对 RISC 的论述可以完整佐证ARMAdvanced RISC Machine的核心是 RISC——指令集精简的处理器比指令集复杂的处理器高效得多。RISC 指令集与结构本身简单因此 ARM 处理器更小、更高效、相对更慢简单指令集只需少量晶体管设计简洁、尺寸更小功耗低所以被广泛应用于智能手机、平板等移动设备。逐项判定选项 1正确RISC 固定长度指令是标准定义便于流水线取指选项 2正确RISC 把复杂度交给编译器软件硬件保持精简选项 3正确RISC 用多条简单指令组合完成复杂操作程序中指令数相对较多选项 4正确CISC 追求一条高级语句 ≈ 一条复杂机器指令选项 5错误复杂指令集硬件复杂 → 晶体管多 → 功耗大、成本高这是CISC的特征。记忆锚点RISC 精简 省电 便宜 靠编译器CISC 复杂 耗电 贵 一条指令干大事。移动端选 RISCARM桌面/服务器常见 CISCx86。六、数据库JOIN 语义与 Index 索引题 7数据库 JOIN 的错误说法答案5A、B 表 INNER JOIN 时只检索两表都拥有的数据。A、B 表各有 4 条互不重叠的数据时LEFT OUTER JOIN 的结果中会有 4 个 NULL。A LEFT JOIN B与B RIGHT JOIN A是完全相同的表达式。A 表 6 条、B 表 4 条时CROSS JOIN 的结果数为 24。自连接SELF JOIN因嵌套查询更快而很少使用。正确解析选项 5 的因果完全是反的。自连接Self Join是常用的、有明确应用场景的 JOIN——例如同一张表内存在上下级/父子关系的层级数据员工表查经理、分类表查父子类目时自连接是标准解法嵌套查询并不天然更快且可读性与优化器支持常常不如 JOIN。本仓库 【Database SQL】JOIN.md 第 105-119 行给出了自连接的明确定义与示例自连接是与自身连接的 JOIN可理解为把同一张表复制多份后连接在对自己拥有的列进行多种变换利用时经常使用。示例SELECT A.NAME, B.AGE FROM EX_TABLE A, EX_TABLE B其余选项判定选项 1正确INNER JOIN 两表交集见该文档第 26-39 行选项 2正确LEFT OUTER JOIN 保留 A 表全部 4 行B 表无匹配则补 NULL恰好 4 个 NULL选项 3正确A LEFT JOIN B与B RIGHT JOIN A结果等价方向相反的同义表达选项 4正确CROSS JOIN 笛卡尔积6 × 4 24该文档第 88-102 行同样以3 个 × 4 个 12 个示范了乘法逻辑。延伸INNER / LEFT / RIGHT / FULL OUTER / CROSS / SELF 六种 JOIN 的 SQL 语法与图解均可在 【Database SQL】JOIN.md 中找到面试前可逐条过一遍。题 9数据库 Index 的错误说法答案2以键值为基础提升表中检索与排序速度。即使用了多字段复合索引也无法区分第一个字段值相同的记录。表的主键会自动成为索引。存在因数据类型而无法建立索引的字段。在索引字段上更新数据、或增删记录时性能会下降。正确解析选项 2 对复合索引Composite/Multi-column Index的理解是错误的。复合索引按多个字段组合排序并存储键值即使首字段值相同后续字段仍能区分各记录——这正是复合索引能支持首列等值 后续列范围联合查询的原理。本仓库 【DB】Index.md 第 96-124 行还给出了索引底层数据结构帮助理解索引凭什么区分记录B-Tree可有两个以上子节点、平衡树查找 O(log N)所有节点都存值并带指针BTree值只存于叶节点叶节点间以链表相连对不等号/范围运算高效数据库索引的常见实现HashTable哈希函数将值转为索引一般情况 O(1) 极快但无法用于不等号、范围、包含类运算。逐项判定选项 1正确索引的目的即提升检索与排序速度该文档开篇利用额外写入与存储空间提升表检索速度的数据结构如同书籍目录选项 2错误复合索引中后续字段同样参与排序与区分首字段相同 ≠ 无法区分选项 3正确主键自动建索引是数据库常识选项 4正确TEXT/BLOB 等大字段类型或过宽字段在多数数据库如 MySQL InnoDB 的索引键长度限制下无法直接索引选项 5正确索引字段发生 UPDATE/INSERT/DELETE 时需同步维护索引结构INSERT 可能触发索引分裂、DELETE 仅标记不可用、UPDATE 实际执行删 插性能下降是索引的固有代价——该文档第 35-40、64-91 行有完整的过程分析。记忆锚点索引加速读、拖慢写复合索引是多列共同排序不是只认第一列。七、答案速查表与复习路径标准答案汇总对应原文档第 100-109 行题号12345678910答案2512355Context Switching22错误选项的共性规律观察全部 10 题错误选项几乎都踩在同一类陷阱上把代价说成收益题 5 的 Session、题 6 的 RISC、题 10 的内核线程、把概念张冠李戴题 1 的封装、题 2 的框架、夸大或颠倒能力题 4 的 HTTP/1.1、题 7 的自连接、题 9 的复合索引。应对策略是复习时不要只背结论而要同时记住每个概念的优点与代价两侧。关联仓库复习资料索引考点仓库配套文档OOP 特征与 SOLIDComputer Science/Software Engineering/Object-Oriented Programming.md、Design Pattern/SOLID.md依赖注入DIInterview/Interview List.md第 738-744 行操作系统运营方式与调度Computer Science/Operating System/CPU Scheduling.md、Computer Science/Operating System/Operation System.mdContext Switching 与 PCBComputer Science/Operating System/PCB Context Switcing.md中断与状态切换Computer Science/Operating System/Interrupt.md用户级线程 vs 内核级线程Computer Science/Operating System/Process vs Thread.md、Interview/Interview List.md第 277-289 行HTTP 与 HTTPSComputer Science/Network/HTTP HTTPS.mdCookie 与 SessionWeb/Cookie Session.mdRISC 与 ARM 架构Computer Science/Computer Architecture/ARM 프로세서.mdJOIN 六种类型Computer Science/Database/[Database SQL] JOIN.mdIndex 原理与代价Computer Science/Database/[DB] Index.md建议按先自测 → 再看解析 → 最后回查资料文档的闭环使用本文第一遍限时独立作答检验盲区第二遍对照逐题解析理解陷阱成因第三遍针对薄弱主题深入配套文档。反复三轮后这 10 个考点的正反向理解都将达到面试现场可脱口而出的熟练度。赞分享教程知识库【免费下载链接】tech-interview-for-developer 신입 개발자 전공 지식 기술 면접 백과사전 项目地址https://gitcode.com/GitHub_Trending/te/tech-interview-for-developer点击查看免费下载相关推荐2024 DevOps面试终极指南核心问题解析与技术要点详解2024 DevOps面试终极指南核心问题解析与技术要点详解 DevOps作为现代软件开发与运维的融合实践已成为企业提升交付效率的关键。本指南基于DevOp云原生CI/CD运维搞定Android面试AndroidManifest.xml核心考点解析搞定Android面试AndroidManifest.xml核心考点解析 AndroidManifest.xml作为Android应用的身份证是面试官必知识库移动开发教程消息队列面试核心考点解析消息队列面试核心考点解析 advanced java 消息队列面试全攻略从选型到高可用、幂等、可靠性、顺序性与积压治理 本指南基于 advanced java文档教程知识库后端上一篇如何快速上手Counterfeit-V3.0新手也能轻松掌握的AI绘画终极指南下一篇TheRemoteFreelancerAPI文档如何调用资源数据与实现自定义集成创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联
返回资讯列表 →