- 博客(127)
- 收藏
- 关注
原创 计算机组成原理笔记(十三)——3.3堆栈与堆栈操作
SP修改方向:自底向上时进栈先减,出栈后增。数据保存顺序:LIFO特性决定现场恢复的正确性。内存与寄存器堆栈的适用场景:高速缓存场景用硬件堆栈,大容量需求用软件堆栈。
2025-04-02 09:00:00
1362
原创 计算机组成原理笔记(十一)——3.1指令格式
机器指令的基本格式设计需平衡硬件复杂度、程序效率和操作灵活性。理解不同地址结构的优缺点及其应用场景,是学习指令系统的核心基础。
2025-04-01 10:00:00
532
原创 计算机组成原理笔记(十二)——3.2寻址技术
CPU通用寄存器主存储器输入输出设备(设备接口)指令寻址:保证程序顺序执行或在分支处跳转。数据寻址:核心是将形式地址转换为物理地址,不同方式在速度、灵活性和复杂度上有权衡。关键设计:合理选择寻址方式以平衡程序效率、硬件成本和编程便利性。
2025-04-01 10:00:00
1217
原创 计算机组成原理笔记(九)——2.5不同类型的数据表示举例
现代微型计算机通过标准化格式(如补码、IEEE 754)实现了数据高效存储与跨平台兼容性,理解这些表示方法对软硬件协同优化至关重要。设计程序时需特别注意内存对齐与存储格式,以发挥物理硬件的最大性能。
2025-03-31 08:00:00
909
原创 计算机组成原理笔记(七)——2.3非数值数据的表示
示例:示例(汉字“汉”):若有具体应用场景(如解析一段混合中英文的文本),需要根据编码规则逐字节解析处理!汉字的表示涉及多级编码转换。
2025-03-30 11:43:02
1032
原创 计算机组成原理笔记(六)——2.2机器数的定点表示和浮点表示
浮点优势:动态范围大,适合科学计算。精度局限:无法精确表示所有实数,金融计算需用定点数。移码通过映射真值到无符号数域,简化浮点数运算中的阶码比较,同时保证了零的唯一表示和异常值的清晰界限,是浮点数设计的核心机制之一。需重点理解偏移量计算及与补码的转换关系。在浮点数表示法中,尾数基数r是阶码的底,与尾数的基数相同。常见取值有2、4、8、16等。NM×rENM×rEE为阶码(纯整数,常用移码或补码)M为尾数(纯小数,常用原码或补码)尾数基数r的选择需要权衡范围、精度和效率优点。
2025-03-27 12:30:00
1298
原创 使用ProcessBuilder执行FFmpeg命令,进程一直处于阻塞状态,一直没有返回执行结果
如果父进程(Java进程)没有主动读取这些流,当缓冲区满了的时候,子进程就会暂停执行并等待父进程(Java进程)消费数据,然而我的Java程序并没有做消费数据的处理,因而形成了死锁。在终端命令行执行的时候是没有问题的,一下子就给我出结果了,但是我使用ProcessBuilder开辟的进程,等了半天一直出不来结果,进程陷入了阻塞状态。昨晚我在尝试使用Java的ProcessBuilder开辟一个进程执行FFmpeg相关命令对视频进行HLS切片处理的时候,遇到了一个进程阻塞的问题。无限卡住,无法返回退出码。
2025-03-27 10:04:00
633
原创 计算机组成原理笔记(五)——2.1数值数据的表示
类型表示方法示例(8位,-5)原码符号位 + 绝对值的二进制1000 0101反码符号位不变,数值位取反1111 1010补码反码 + 11111 1011通过流程图和示例,可以清晰理解数值数据的存储与运算原理。补码机制是计算机高效处理负数的关键设计!
2025-03-25 17:00:00
1615
原创 计算机组成原理笔记(四)——1.4计算机的工作过程和主要性能指标
为使计算机按预定要求工作,首先要编制程序。程序是一个特定的指令序列,它告诉计算机要做哪些事,按什么步骤去做。指令是一组二进制信息的代码,用来表示计算机所能完成的基本操作。
2025-03-25 09:00:00
745
原创 CRISPE框架
原理:CRISPE框架通过定义能力和角色(ChatGPT应扮演什么角色)、提供洞察(提供你请求的背后简介、背景和上下文)、明确声明(你要求GPT做什么)、设定个性(你希望GPT以何种风格、个性或方式回应)和进行实验(请求GPT为你回复多个示例)来创建结构化的Prompt。功能:确保Prompt具有明确的目的和结构,使大模型能够更有效地理解和回应用户请求。使用场景:适用于内容创作和决策支持,尤其是在需要模型提供多样化解决方案时。缺点:可能需要较多的时间和精力来构思和细化每个部分。
2025-03-22 20:29:14
165
原创 MongoDB 的 WriteConcern是什么?
MongoDB 的 是控制数据写入可靠性的核心机制,通过配置不同参数组合,可在性能与数据安全之间进行权衡。
2025-03-21 08:00:00
326
原创 计算机网络笔记(五)——1.5计算机网络的类别
计算机网络的精确定义并未统一。教材上给出的定义:计算机网络主要是由一些而成的,而这些硬件专门用来实现某一特定目的(例如,传送数据或视频信号)。
2025-03-19 09:00:00
592
原创 计算机网络笔记(四)——1.4计算机网络在我国的发展
中国计算机网络发展从科研需求起步,经历了技术引进、自主创新、商业化爆发和全球化拓展,现已成为全球互联网核心力量。未来,随着6G、量子计算等技术的突破,中国将在网络强国道路上持续引领创新。
2025-03-18 20:00:00
692
原创 计算机网络笔记(三)——1.3互联网的组成
互联网的拓扑结构虽然非常复杂,并且在地理上覆盖了全球,但从其工作方式上看,可以划分为以下两大块:(1)边缘部分:由所有在连接在互联网上的主机组成。这部分是用户直接使用的,用来进行通信(传送数据、音频或视频)和资源共享。(2)核心部分:由大量的网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务的(提供连通性和交换性)。
2025-03-18 12:00:00
1766
原创 操作系统笔记(一)——1.1操作系统的目标和作用
操作系统的目标与应用环境有关。例如在查询系统中所用的OS,希望能提供良好的人——机交互性;对于应用于工业控制、武器控制以及多媒体环境下的OS,要求具有实时性;而对于微机上配置的OS,则更看重其使用的方便性。
2025-03-17 09:00:00
627
原创 说说你对Java继承的理解
Java继承通过层级化的代码复用与扩展,成为构建复杂系统的基石。其与多态、抽象类、接口的结合,进一步提升了程序的灵活性和可扩展性。合理使用继承需遵循"组合优于继承"原则,避免过度设计,同时结合接口实现高内聚低耦合的架构。
2025-03-16 14:30:00
250
原创 说说你对Java多态的理解
Java多态通过动态绑定与向上转型实现了"面向对象编程"的思想,是构建高内聚、低耦合系统的基石。其核心价值在于将"做什么"(接口定义)与"怎么做"(具体实现)分离,从而赋予代码强大的适应能力。
2025-03-14 17:30:00
294
原创 说说你对Java抽象类的理解
使用abstract关键字声明,是一种不能被直接实例化的特殊类,只能通过子类继承来实现功能。例如:abstract class Animal 定义了一个表示动物的抽象概念,需要通过Dog或Cat子类具体化。
2025-03-14 11:45:00
1126
原创 LeetCode100之合并K个升序链表(23)--Java
这道题如果大家做过合并两个有序链表类似的题的话,一点也不难,再稍微加上一点二分(或者说是归并)的思路,这道题轻轻松松就能AC的。
2025-03-13 14:45:00
1520
原创 HTTP协议的9种请求方法
类似GET,但仅返回响应头部,用于检查资源元数据(如是否存在、修改时间等)。向服务器提交数据,常用于创建新资源或触发服务端处理操作(如提交表单)。获取服务器支持的HTTP方法,常用于跨域请求(CORS)的预检。用于请求指定资源,仅用于数据获取且不应对服务器数据产生副作用。用于完整替换或创建目标资源,具有幂等性(多次执行结果相同)。回显客户端请求,用于诊断请求路径中的中间服务器处理情况。建立与目标服务器的隧道连接,主要用于HTTPS代理通信。对资源进行部分更新,仅发送需修改的数据而非整体替换。
2025-03-13 11:11:31
216
原创 LeetCode100之二叉树的最大深度(104)--Java
这道求最大深度的题,十分简单,我们只需要求出左右子树的最大深度,然后取左右子树深度的最大值+1就是以当前节点为根的树最大深度。
2025-03-13 09:30:00
397
原创 LeetCode100之对称二叉树(101)--Java
这道对称二叉树的题目,分析好可能出现的情况之后,一点都不难,将分析得到的文字条件翻译成代码就好了。这道题我提供了递归和层序两种解法,有兴趣的可以看一下。
2025-03-12 09:00:00
1289
原创 LeetCode100之二叉树的直径(543)--Java
这道题,只需要理清几个概念直接的关系,就可以将问题简化成我们曾经做过的求深度问题,这样问题也就轻松解决了。
2025-03-11 17:30:00
1247
原创 LeetCode100之二叉树的层序遍历(102)--Java
这道题考察的是经典的层序遍历,总的来说不是很难,我提供了递归法和迭代法两种方法的代码,大家如果有兴趣的话,可以都看一看。
2025-03-11 10:00:00
600
原创 LeetCode100之验证二叉搜索树(98)--Java
这道题如果对树的遍历和二叉搜索树熟悉的话,一下子就能做出来,不熟悉的话,有可能会踩坑,是一道不错的题目。
2025-03-10 10:30:00
813
原创 说说你对Java中对象的理解
1.对象的本质对象是类的实例化结果,是内存中具体存在的实体。例如,若将"学生"定义为类(包含姓名、年龄等属性及学习方法等行为),则某个具体的学生(如"张三")就是一个对象。类比理解:类向蛋糕配方(定义原料和步骤),对象则是按配方做出的具体蛋糕。类提供模版,对象则是模版的具象化产物。Java中的对象是面向对象设计的基石,通过状态、行为和标识的封装,结合继承、多态等特性,实现了代码的灵活性、扩展性和可维护性。理解对象的核心在于将其视为现实实体的抽象,通过类模版构建具体实例,并在程序中通过交互完成复杂逻辑。
2025-03-09 10:53:00
360
原创 什么是面向对象、怎么理解面向对象
面向对象编程的设计思想是以对象为中心通过对象之间的交互来完成程序的功能,具有灵活性和可扩展性,通过封装和继承可以更好地应对需求的变化。面向对象是构建可扩展、易维护软件系统的基石,其核心价值在于用抽象思维解决复杂问题,而非局限于具体编程语法。
2025-03-09 10:48:23
373
原创 LeetCode100之二叉搜索树中第K小的元素(230)--Java
这道题考察的是二叉搜索树的特点和树的遍历方法,我在这里提供了使用迭代方法的中序遍历,这个迭代方法可以看成一个模版,和递归遍历差不多,递归遍历只需要改一下单层递归逻辑中的节点顺序,就可以实现不同方式的遍历,这里的迭代法也只需要改变一下存入栈中节点的顺序,就可以实现不同方式的遍历,注意在遍历时存入根节点的时候要加上一个空节点进行标记。
2025-03-09 10:43:14
691
原创 LeetCode100之二叉树的右视图(199)--Java
这道题难度不大,考察的是二叉树的层序遍历,只需要将每一层的最后一个节点取出来就可以解决问题了。
2025-03-09 10:42:48
288
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人