- 博客(179)
- 收藏
- 关注
原创 计算机专业基础综合预热 | 算法复杂度分析
本文为408数据结构复习笔记,聚焦算法复杂度分析。作者总结了时间复杂度(大O、Ω、Θ)、最坏情况默认、空间复杂度仅计辅助空间等核心概念,提出“三步法”推导:找基本运算→列求和式→化简最高阶。针对嵌套循环四类形态(依赖/独立外层、while循环、递归套循环)给出通用解法,并结合真题详解递归式构建与求解(展开法、递归树)。强调递归时间看递归式,空间看栈深度与辅助数组的较高阶。最后提供四道练习题巩固方法,帮助考生避开“数循环猜答案”的误区,实现精准分析。
2026-10-21 10:54:02
281
原创 计算机专业基础综合预热 | 线性表基础
本文从数据结构三要素——逻辑结构、存储结构与数据运算出发,以线性表为例,详解顺序表与单链表的实现。通过可运行的C代码,演示了顺序存储的随机存取优势(O(1))与插入删除代价(O(n)),以及链式存储的灵活插入与指针操作要点。重点解析带头结点设计、头尾插法、按位查找/插入/删除等核心操作,并对比两者优劣。结合真题巩固理解,帮助读者掌握“数据怎么存”与“代码怎么写”的关键能力,为408备考打下坚实基础。
2026-10-21 10:53:00
298
原创 编译原理第三章:编译器是怎么“认字“的?——词法分析全解析
<think>我们根据要求生成不超过150字的摘要。摘要需概括文章核心内容:编译器词法分析用正则表达式描述单词,经NFA/DFA转换实现识别,并遵循最长匹配原则等。保持精炼。</think>本文解析编译器词法分析:用正则表达式描述Token,经Thompson构造法转为NFA,再确定化为DFA,线性扫描识别单词。强调最长子串匹配原则,处理错误恢复,奠定编译基础并影响现代文本工具。
2026-09-04 17:03:22
277
原创 编译原理第二章:语言的“语法书“是怎么写的?
<think>我们根据要求:根据内容生成≤150字的文章摘要。内容是关于编译原理第二章,讲字母表、串、文法、推导、乔姆斯基分类、分析树、二义性等。摘要要简洁概括主要知识点。需≤150字。</think>本文介绍编译原理核心概念:从字母表构造串,用文法形式化定义语言合法性。重点讲解推导与归约、乔姆斯基文法分类(正则、上下文无关等)、分析树及二义性问题。文法以有限规则描述无限句子,是语法分析的理论基础。
2026-09-04 17:01:42
349
原创 我的创作纪念日
摘要: 一名大三计算机学生回顾256天的技术博客创作历程,从解决Python镜像源配置的随手笔记起步,逐渐发展为涵盖8门专业课的174篇原创文章。通过记录学习过程中的"小痛点"与课程难点,他建立起"解决问题"与"知识内化"的双向循环:写作既帮助他人少走弯路,也倒逼自己深入理解。数据显示119,046次访问和219位粉丝的互动验证了学生视角技术分享的价值。未来,他计划继续以"课程同行者"身份更新《编译原理》等专业课笔记,坚持&qu
2026-08-20 23:18:11
225
原创 编译原理 | 绪论:计算机是怎么听懂你说的话的?
这篇文章生动地介绍了编译原理的基础概念,主要包含以下要点: 计算机语言的层次结构:从高级语言(如C)、汇编语言到机器语言,编译器负责将高级语言翻译为机器可执行的代码。 完整的语言处理流程:包括预处理器、编译器、汇编器、链接器和加载器五个环节,形成完整的编译-链接-加载链条。 编译器的核心工作阶段: 词法分析:将源代码分解为Token 语法分析:构建语法树,检查语法结构 语义分析:类型检查和符号表管理 中间代码生成:产生平台无关的中间表示 代码优化和目标代码生成 编译与自然语言翻译的类比:都遵循"分
2026-08-19 22:43:26
454
原创 一文看懂HTTP各版本进化史和HTTPS加密原理
HTTP协议30年进化史:从明文裸奔到加密快车 HTTP协议历经五代更迭:0.9版本(1991)仅支持GET请求;1.0(1996)引入Header和状态码;1.1(1997)实现持久连接但存在队头阻塞;2.0(2015)通过二进制分帧和多路复用提升性能;3.0(2022)改用QUIC协议彻底解决传输层阻塞。HTTPS作为安全升级版,通过TLS握手实现加密传输,采用"非对称加密协商+对称加密传输"的混合机制,数字证书则提供身份认证保障。
2026-08-19 22:40:20
406
原创 数据库系统 | 数据库安全与完整性
数据库系统安全与完整性保护机制详解 摘要: 数据库安全与完整性是保护数据的两大核心机制。安全性通过身份鉴别(静态/动态口令、生物特征)、存取控制(DAC的GRANT/REVOKE、MAC密级规则)、视图、审计和加密五层防护,防止非法访问和操作。完整性则通过实体完整性(主键约束)、参照完整性(外键约束)和用户定义完整性(CHECK等)确保数据正确性,高级机制如触发器可处理复杂约束。
2026-07-04 14:40:10
235
原创 操作系统期末大题预测合集
本文总结了操作系统期末考试的8大核心考点,包含高频大题类型和解题模板。主要内容包括:系统调用分析、PV操作(生产者-消费者等经典问题)、调度算法计算、银行家算法、分页地址变换、页面置换算法、文件索引分配和磁盘调度算法。每种题型都配有典型例题和详细解答,重点标注了必考内容(如PV操作、调度算法、页面置换等)。文章最后提供了复习清单,帮助学生快速检验知识点掌握情况。适用于期末突击复习和系统备考,是操作系统大题的全面指导手册。
2026-06-30 08:42:16
599
原创 操作系统期末简答题合集
本文整理了50道操作系统期末考试高频简答题,涵盖8大核心章节。内容包括:操作系统基本概念(定义、类型、中断等)、进程管理(状态转换、PCB、线程区别、IPC等)、处理机调度(三级调度、死锁条件、银行家算法)、内存管理(分页分段、TLB、虚拟内存)、文件系统(分配方式、链接类型)和磁盘管理(RAID、调度算法)。每道题均提供标准答案和采分点提示,帮助考生精准掌握答题要点。重点区分了易混淆概念(如进程/线程、分页/分段、硬/软链接等),并附有速记口诀,是考前突击的实用资料。
2026-06-30 08:40:41
222
原创 操作系统 | 磁盘存储器的管理
本文系统梳理了操作系统中的磁盘存储器管理技术。首先介绍了磁盘存储器的层次结构,对比了HDD、SSD等存储设备的特点。重点分析了磁盘物理结构及访问时间组成(寻道时间、旋转延迟、传输时间)。随后详细讲解了多种磁盘调度算法(FCFS、SSTF、SCAN等)及其优化策略,比较了不同外存分配方式(连续、链接、索引)的优缺点,并阐述了磁盘空间管理方法(空闲表、位示图等)。
2026-06-27 20:23:28
307
原创 操作系统 | 文件管理
这篇文章全面解析了操作系统的文件系统,从基础概念到实现细节,主要内容包括: 文件系统概述:承担按名存取、逻辑组织、物理存储、文件共享、保护及效率优化六大功能,采用三层模型(用户接口-逻辑系统-存取控制)。
2026-06-27 20:22:08
593
原创 操作系统 | 输入输出系统
怎么让高速的CPU和慢速的外设和谐共处。隐藏物理设备细节。写程序的时候,你只需要说"我要读文件",而不需要关心文件到底存在磁盘的哪个柱面、哪个磁道、哪个扇区。I/O系统把这些脏活累活全包了,程序员只需要面对一个"抽象设备"就好。这就好比你点外卖不需要知道骑手走的哪条路,你只需要知道"饭会到"。与设备的无关性(设备独立性)。同一段代码,今天输出到显示器,明天输出到打印机,后天输出到文件,代码一行都不用改。这就是设备独立性——程序不依赖于具体的物理设备。
2026-06-26 19:01:08
368
原创 操作系统 | 虚拟存储器
摘要: 本文从操作系统视角深入解析虚拟存储器的核心机制,涵盖请求分页、页面置换、抖动预防及请求分段等关键内容。文章首先回顾虚拟存储器的基本原理(局部性原理、页式/段式结构),重点剖析请求分页的硬件支持(扩展页表项、缺页中断流程)和策略(物理块分配算法、页面调入时机)。针对页面置换,对比了OPT、FIFO、LRU、Clock等算法的优劣,并探讨抖动的成因与工作集理论的解决方案。
2026-06-26 19:00:01
571
原创 操作系统 | 存储器管理
本文深入浅出地讲解了计算机存储器管理的核心原理与技术。文章首先介绍了存储器的层次结构金字塔,从高速寄存器到磁盘存储的各级存储介质及其作用。随后详细解析了程序的装入与链接方式,包括绝对装入、可重定位装入和动态运行时装入三种方法,以及静态链接、装入时动态链接和运行时动态链接三种链接策略。 在存储分配方面,文章系统阐述了连续分配管理的各种方案:从单一连续分配、固定分区分配,到动态分区分配及其首次适应、最佳适应等经典算法。针对碎片问题,介绍了紧凑技术和动态重定位解决方案。
2026-06-23 17:22:18
403
原创 算法日记 | 二分查找
本文介绍了二分查找算法的核心思想与实战应用,通过三道经典题目由浅入深地讲解: 基础入门:通过洛谷P1833模拟二分查找过程,展示如何通过中间值比较收缩区间,时间复杂度O(log n)。关键是用变量维护查找区间,注意大数溢出问题。 STL实战:在P1678高考志愿题中,利用lower_bound快速定位最接近分数线的学校,强调预处理排序和边界处理(如估分超出所有学校范围的情况)。
2026-06-23 17:20:50
263
原创 我的第一个开源项目:一个桌面小窗口,帮你看清此刻的世界
《一个计算机专业学生的开源项目:桌面热搜悬浮窗工具》 摘要: 计算机专业学生开发的桌面工具HotSearch,通过聚合百度、微博、IT之家三大平台实时热搜,以半透明悬浮窗形式展示在桌面角落,帮助用户高效获取多维信息。项目采用Python技术栈(tkinter+爬虫),实现了智能并行刷新、主题切换、点击跳转等功能。作者详细记录了技术实现中遇到的爬虫策略选择(静态/XPath、动态/Selenium)、多线程优化等实战经验,以及打包发布过程中的典型问题解决方案。
2026-06-18 19:33:00
613
原创 算法日记 | 01背包问题
本文系统介绍了01背包问题的核心思想与解题模板,通过五道经典题目帮助读者掌握动态规划中这一基础模型。01背包的核心在于每件物品的选择与否,其标准模板采用二维DP数组或一维滚动数组优化(需逆序遍历)。文章依次讲解了采药问题(标准01背包)、开心的金明(价值变形为价格×重要度)、装箱问题(求最小剩余空间)三道典型题目,分别给出对应的状态转移方程和C++实现代码。通过这三个由浅入深的例题,读者可以逐步掌握01背包的基本框架及其常见变体,为后续解决更复杂的动态规划问题奠定基础。
2026-06-18 19:28:52
256
原创 计算机组成原理 | MIPS指令系统
MIPS指令系统入门指南:RISC架构的极简哲学 MIPS作为精简指令集计算机(RISC)的代表,以"少即是多"的设计哲学著称。其核心特点包括:指令数量精简(不足100条)、所有指令等长(32位)、仅允许load/store指令访问内存。与复杂指令集(CISC)相比,MIPS采用三种规整的指令格式:R型(寄存器操作)、I型(立即数/内存访问)和J型(跳转指令),极大简化了硬件设计。
2026-06-16 18:21:31
508
原创 计算机组组成原理 | AT&T格式 和 Intel格式
摘要:本文详解x86汇编语言的两种语法格式——AT&T和Intel的主要区别。AT&T格式源于Unix系统,特点为操作数顺序"源,目的"、寄存器前加%、立即数前加$、圆括号表示内存地址;Intel格式由处理器厂商制定,采用"目的,源"顺序、无前缀符号、方括号表示内存地址。两者的核心差异包括操作数顺序、前缀符号、内存地址表示法、数据长度标识等。
2026-06-16 18:20:15
393
原创 计算机组成原理 | 高级语言与机器级代码之间的对应
文章摘要 高级语言代码与底层机器指令之间存在巨大鸿沟,计算机通过编译系统(预处理器、编译器、汇编器、链接器)将人类可读的代码逐步转换为CPU可执行的机器指令。指令集体系结构(ISA)作为软硬件接口,规定了CPU能理解的基本操作。通过典型案例分析可见:简单加法运算在汇编层面需处理栈帧和寄存器;if-else对应条件跳转指令;循环实质是条件跳转与无条件跳转的组合;函数调用涉及栈帧创建和参数传递;数组访问通过地址计算实现。
2026-06-15 15:32:01
268
原创 计算机组成原理 | 数据寻址
本文系统解析了计算机组成原理中的10种数据寻址方式。首先区分指令寻址与数据寻址,重点讲解数据寻址的10种类型:立即寻址(操作数在指令中)、直接寻址(指令含内存地址)、隐含寻址(默认寄存器)、间接寻址(地址的地址)、寄存器(直接/间接)寻址、基址/变址寻址(寄存器+偏移量)、相对寻址(PC+偏移量)和堆栈寻址(SP自动管理)。通过对比各类寻址的访存次数、应用场景及典型考题(如基址寻址计算、寄存器间接寻址判断),强调理解"CPU如何获取操作数"的核心逻辑。
2026-06-15 15:30:27
427
原创 计算机组成原理 | 指令寻址
《计算机组成原理》指令寻址机制解析:从PC+1误区到执行流控制 摘要:本文深入解析指令寻址的核心原理,重点剖析程序计数器(PC)的工作机制。在顺序寻址中,PC的增量并非简单+1,而是取决于指令长度与编址方式(按字节/字编址时增量不同)。跳跃寻址通过转移指令修改PC值,实现程序分支。文章通过典型例题演示了PC增量的正确计算方法(如32位指令在字节编址下PC应+4),并详解了相对寻址中目标地址=当前PC+偏移量的计算过程。理解这两种寻址方式对掌握CPU执行流控制至关重要,也是解决相关考题的关键。
2026-06-11 23:17:22
373
原创 计算机组成原理 | 指令格式全解析
【摘要】本文系统解析计算机指令格式设计原理,重点讲解指令的四大分类维度(地址码数目、指令长度、操作类型)及扩展操作码技术。核心内容涵盖:①零地址到四地址指令的适用场景;②定长与变长指令的优缺点对比;③通过操作码动态扩展技术解决指令编码空间不足的问题,并附典型计算题示例(16位指令字长下,13条二地址指令可扩展出192条一地址指令)。适合计算机组成原理学习者快速掌握指令系统的底层设计逻辑。
2026-06-11 23:12:53
555
原创 计算机组成原理 | 虚拟存储器
虚拟存储器的本质:是主存-辅存层次的逻辑扩展,利用局部性原理实现大容量、独立的地址空间。页式管理:核心是页表,将虚拟页号映射到物理块号。缺页中断:是性能杀手,也是系统调入数据的契机。TLB 的作用:作为页表项的高速缓存,解决了二次访存问题,是现代计算机性能的守护神。
2026-06-10 18:25:25
545
原创 计算机组成原理 | Cache 写策略
本文系统讲解了计算机Cache的两种核心写策略及其应用场景。全写法(Write-Through)实时同步更新Cache和主存,保证一致性但性能较差;写回法(Write-Back)仅修改Cache并在替换时才写回主存,性能更优但控制复杂。针对写不命中情况,介绍了写分配与非写分配两种策略的适用场景。文章重点分析了多级Cache架构中的黄金组合:L1-L2间采用"全写+非分配",L2-主存间采用"写回+分配"。
2026-06-10 18:23:34
218
原创 计算机组成原理 | Cache替换算法
摘要: Cache替换算法是计算机组成原理的核心知识点,用于解决Cache空间不足时的数据淘汰问题。本文深度解析了四大经典算法: RAND随机算法 - 简单随机替换,效果差但实现简单 FIFO先进先出 - 按进入顺序淘汰,可能误删常用数据 LRU最近最少使用 - 淘汰最久未访问的数据(最优算法,符合局部性原理) LFU最不经常使用 - 淘汰访问次数最少的数据(可能保留"过气"数据) 重点讲解了LRU的栈模拟实现方法,并通过408考研真题演示了实际应用场景。
2026-06-05 17:45:50
432
原创 计算机组成原理 | Cache和主存的映射方式
摘要: 本文深入解析了Cache的三种映射方式:全相联、直接映射和组相联。全相联映射自由但查找慢,Tag最长;直接映射速度快但易冲突,Tag最短;组相联是两者的折中方案,通过分组平衡性能与成本。文章通过停车场、宿舍分配等比喻形象说明原理,并详细拆解地址结构(Tag、组号/行号、块内地址)的计算方法。最后以408真题为例,演示了组相联映射的地址拆分流程,强调块内地址由块大小决定、Tag长度随映射方式变化的要点,帮助读者掌握核心考点。三种方式各有利弊,实际CPU多采用组相联(如8路)以兼顾效率与命中率。
2026-06-05 17:39:33
543
原创 计算机组成原理 | Cache的基本原理
摘要: Cache(高速缓冲存储器)是解决CPU与主存速度矛盾的关键技术。它基于局部性原理(时间局部性与空间局部性),预存高频访问数据,显著提升效率。CPU访问数据时,优先查找Cache,命中则快速返回,否则访问主存。核心指标包括命中率(H)与平均访问时间(Ta),计算公式为 ( T_a = H \times T_c + (1-H) \times T_m )。Cache与主存以“块”为单位交换数据,对程序员透明。
2026-06-04 15:16:29
841
原创 计算机组成原理 | 固态硬盘SSD
摘要: SSD凭借闪存技术实现高速读写,其核心在于**“页读写、块擦除”的物理特性。由于闪存需先擦除(整块)后写入,导致“写放大”现象**,使得写入速度低于读取。此外,SSD寿命受限于闪存单元的擦写次数(P/E Cycle),通过磨损均衡技术(动态/静态)平均分配写入负载以延长寿命。相比机械硬盘,SSD在速度、抗震、功耗上占优,但存在成本高、写入寿命有限等缺点。考试重点包括SSD结构、读写不对称原理及磨损均衡机制。
2026-06-04 15:03:36
345
原创 算法日记 | STL- sort排序
摘要:本文通过三道洛谷经典题目,系统讲解C++ STL中sort函数的实战应用。P2676奶牛书架问题展示如何使用sort进行降序排序实现贪心策略;P1093奖学金问题演示结构体多关键字排序技巧;P1068分数线划定则综合运用排序处理复杂业务逻辑。这些案例清晰展现了sort函数在算法竞赛中的高效用法,包括自定义比较函数、结构体排序等核心技巧,帮助读者快速掌握这一重要工具,提升编程效率。
2026-06-03 15:15:25
409
原创 计算机组成原理 | 磁盘存储器
摘要: 本文深入解析磁盘存储器的核心原理与RAID技术。首先剖析磁盘物理结构(盘片、驱动器、控制器)及三维寻址方式(柱面、盘面、扇区),对比格式化与非格式化容量的区别。其次,通过公式 $T_a = T_s + T_r + T_t$ 拆解磁盘读写性能瓶颈,强调寻道时间与旋转延迟的机械延迟特性。RAID部分重点对比RAID 0(条带化提速)、RAID 1(镜像备份)和RAID 5(校验冗余)的原理与适用场景。最后以经典计算题为例,演示磁盘容量、数据传输率及平均存取时间的计算方法,助力掌握408/期末考点。
2026-06-03 15:14:33
588
原创 计算机组成原理 | 位扩展、字扩展与片选逻辑
上一期我们聊了如何通过双端口和多模块技术让内存跑得更快(就像乐高积木一样,我们需要把小的存储芯片“拼”起来,才能满足CPU的需求。这就是本期要讲的**“主存与CPU的连接”字扩展**。
2026-06-02 17:01:11
420
原创 计算机组成原理 | 双端口RAM与多模块存储器
存取周期TTT。很多同学容易混淆“存取时间”和“存取周期”。我们可以把它想象成去银行柜台办业务存取时间 (rrr:你坐在柜台前,柜员帮你办理业务的时间(比如数钱、敲键盘)。恢复时间:你办完走了,柜员需要整理桌面、叫下一个号、系统刷新状态的时间。存取周期 (TTT存取时间 (rrr恢复时间。只有等整个周期TTT结束,存储器才能响应下一次请求。如果CPU想连续读写,必须得等这个“冷却CD”。为了让CPU少等一会儿,工程师们想了两个绝招!特性双端口 RAM单体多字。
2026-06-02 16:57:19
530
原创 计算机组成原理 | 只读存储器ROM
本文系统梳理了只读存储器(ROM)的演变历程和技术特点。从最初的掩膜式ROM(MROM)到现代闪存(Flash)和固态硬盘(SSD),ROM技术经历了从"只读"到可编程、可擦除的进化过程。文章重点解析了计算机组成原理中的关键概念:主存=RAM+ROM,并解释了ROM虽名"只读"但实际可写的特性差异。同时指出了闪存读写速度差异、易失性等常见考点,最后通过典型真题演示了存储容量计算和芯片选型方法。全文清晰区分了各类存储器的特性,帮助读者避免常见概念混淆。
2026-05-31 11:05:52
273
原创 计算机组成原理 | SRAM与DRAM
SRAM与DRAM技术全解析:存储界的"速度与容量"平衡艺术 本文深入对比计算机存储系统中两大核心技术:SRAM和DRAM。SRAM采用6晶体管双稳态触发器结构,具有非破坏性读取、无需刷新的特点,速度极快但集成度低,主要用作CPU缓存;DRAM则使用1晶体管+1电容结构,需要定期刷新且读取具有破坏性,凭借高密度和低成本优势成为主内存首选。文章通过生动比喻解释了两种存储原理,重点分析了DRAM的地址复用技术和三种刷新策略,并指出计算机系统通过存储层次结构实现性能与成本的平衡。最后提供了典型
2026-05-31 10:26:19
533
原创 计算机组成原理 | 主存储器的基本组成
文章摘要: 本文深入解析计算机主存储器(内存)的工作原理,将其比作精密工厂,拆解核心组件与流程。MOS管作为电子开关控制电流,电容以电荷存储0/1数据;存储芯片由译码器(地址导航)、存储矩阵(数据格子铺)、读写电路(数据搬运工)构成,通过地址/数据/片选/读写控制四类总线与外界交互。现代计算机多采用字节编址(每个字节唯一地址),需注意题目中的编址方式差异。文末结合真题解析SRAM芯片引脚计算及DRAM/SRAM特性(如DRAM需刷新、SRAM速度更快),帮助读者巩固考点。
2026-05-29 17:15:26
816
原创 计算机组成原理 | 存储系统基本概念
本文生动讲解了计算机存储系统的层次结构和分类方式。存储系统分为三层:高速缓存(Cache)作为CPU的"贴身秘书",主存(内存)相当于工作桌面,辅存(硬盘等)如同仓库。文章用六大"照妖镜"分类存储器:层次结构、存储介质(半导体/磁表面/光)、存取方式(随机/顺序/直接/相联)、可更改性、断电保存性、读出破坏性。最后介绍了存储容量、成本和带宽等性能指标的计算方法,并通过真题解析帮助理解。存储系统的分层设计巧妙平衡了速度与容量的矛盾,是计算机高效运行的关键。
2026-05-28 21:29:15
621
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅