- 博客(52)
- 收藏
- 关注
原创 计网-TCP拥塞控制
发送1个报文 → ACK → cwnd=2 → 发送2个报文 → ACKs → cwnd=4 → ...(指数增长)。是核心机制之一,用于动态调整发送方的数据传输速率,避免网络因过载而出现性能急剧下降(如丢包、延迟激增)。检测到拥塞(如丢包)时,重置ssthresh = cwnd/2,cwnd = 1,重新慢启动。若收到3个重复ACK,重传丢失报文,设置cwnd=10(假设原cwnd=20),继续线性增长。假设初始参数:cwnd=1 MSS,ssthresh=16 MSS,MSS=1460字节。
2025-07-26 11:12:32
719
原创 计网-TCP可靠传输
TCP通常对按序到达的连续数据批量确认(如ACK=1001表示1000及之前的所有字节已接收)。A收到ACK=1001后,窗口向右滑动,继续发送Seq=1001、2001、3001的数据。:发送一个1000字节的数据,若Seq=1,则下一个报文段的Seq=1001。(如连续收到ACK=1001),说明后续数据可能丢失,立即重传而不等待超时。:收到Seq=1、长度=1000的数据,则返回ACK=1001。若Seq=2001丢失,B仍返回ACK=1001(重复ACK)。
2025-07-26 10:30:08
305
原创 计算机网络-UDP协议
的协议,适用于对实时性要求高、能容忍少量数据丢失的场景(如视频流、DNS查询等)。(Google开发的协议,用于HTTP/3,结合UDP+TLS+重传机制)。游戏状态更新需要低延迟,偶尔丢包可接受(如UDP+自定义重传)。查询请求和响应通常使用UDP(端口53),因为只需一次往返。:整个UDP数据报的长度(头部+数据,最小为8字节)。UDP添加头部(源端口、目的端口、长度、校验和)。(流媒体协议,部分使用UDP+自定义丢包恢复)。(基于UDP的TLS,用于安全通信)。网络层(IP)将数据报传递给UDP。
2025-07-25 14:01:33
902
原创 计算机带宽与信号带宽
一个放大器的频率响应在 100 Hz ~ 10 kHz 范围内平坦,超出后衰减,则其带宽 B=10 kHz−100 Hz≈9.9 kHzB=10 kHz−100 Hz≈9.9 kHz。:信号频率集中在某个高频范围 [fmin,fmax][fmin,fmax],带宽 B=fmax−fminB=fmax−fmin。,通常用来衡量数据传输的能力。例如:音频信号(20 Hz ~ 20 kHz),带宽 B=20 kHzB=20 kHz。到某个最高频率 fmaxfmax,带宽 B=fmaxB=fmax。
2025-07-03 19:41:00
622
原创 计组-流水线的分类
用于高速运算(如浮点运算),分解算术操作。允许指令根据资源就绪情况动态调度,提高效率(如现代CPU的Tomasulo算法)。将指令执行分为多个阶段(如取指、译码、执行、访存、写回),现代CPU普遍采用。可配置不同功能(如TI TMS320系列DSP的流水线可执行不同运算)。允许不同功能同时占用不同段,灵活性高但控制复杂(如超标量处理器)。专为向量运算设计(单指令多数据,SIMD),如GPU中的流水线。存在数据复用或前馈/反馈路径(如循环展开时的流水线优化)。数据顺序通过各段,无反馈(如简单指令流水线)。
2025-06-30 21:22:44
233
原创 计组-中断和异常
异常(Exception)和中断(Interrupt)是计算机系统中两种重要的事件处理机制,它们允许 CPU 在正常执行指令流时响应内部或外部事件。直接或间接引发的同步事件,通常与程序执行过程中的错误或特殊条件相关(如除零、缺页、非法指令等)。触发的异步事件,用于通知 CPU 有重要事件需要处理(如键盘输入、磁盘 I/O 完成)。的,因为它是由 CPU 在执行某条指令时检测到的,必须立即处理。:同步事件,由 CPU 执行指令时触发,用于错误处理或系统调用。:CPU 在处理一个异常时又触发另一个异常。
2025-06-29 17:27:00
820
原创 Java-字符串分割习题
1.编写一个应用程序,用户从键盘输入一行字符串,程序输出该字符串中与模式“[24680]JA[13579](2)]” 配的子字符串。2.编写一个应用程序,用户从键盘输入一行含有数字字符的字符串,程序仅仅输出字符申中的全部数字字符。
2025-06-29 10:02:34
172
原创 Java-Matcher类
类是Java正则表达式API的核心组件之一(位于。避免在循环中重复创建Matcher,优先调用。类配合使用,提供查找、替换、分组提取等功能。的区别:前者查找子串,后者要求完全匹配。表示非捕获分组(不占用分组编号)。多次使用的正则表达式应编译为。Matcher对象必须通过。方法创建,不能直接实例化。(匹配的起始和结束索引)缩小匹配范围提升性能。
2025-06-28 21:29:23
605
原创 Java-Scanner类
它通过正则表达式将输入分解为标记(tokens),并提供了多种方法来读取和转换这些标记。关闭(或用try-with-resources)。:解析键盘输入、文件内容或字符串,支持按类型读取。是Java中一个实用的文本扫描工具类(位于。使用了底层I/O资源,使用后需调用。方法设置分隔符(支持正则表达式)。若输入与预期类型不匹配(如用。读取时,程序会等待用户输入。跳过匹配正则表达式的部分。复杂场景可结合正则表达式。读取非数字),会抛出。处理类型不匹配异常(
2025-06-28 20:05:11
429
原创 Java-正则表达式
正则表达式(Regular Expression)是处理字符串的强大工具,Java通过。正则表达式是一种描述字符串模式的语法,用于匹配、查找、替换或分割字符串。是正则表达式的两大核心应用场景。正则表达式是字符串处理的瑞士军刀,但需注意性能。根据正则表达式分割字符串,返回数组。进行非贪婪匹配,避免过度匹配。用于复杂的匹配和提取操作。:替换第一个匹配的子串。:替换所有匹配的子串。
2025-06-28 17:58:01
1019
原创 Java-StringTokenizer
适合简单的、高性能的字符串分割(如空格或单字符分隔)。虽然功能较为基础,但在某些简单场景下仍有用武之地。包),它通过指定的分隔符将字符串拆分为多个。默认忽略连续分隔符产生的空字符串,而。:不支持正则表达式,功能较基础。简单分割(如按空格或逗号)→。复杂分割(如正则匹配)→ 使用。需要更多功能 → Guava的。是非线程安全的,需自行同步。或第三方库(如Guava)。// 需引入Guava库。是Java中一个用于。
2025-06-28 17:28:18
749
原创 Java-StringBuffer类
的内容可以动态修改,适用于需要频繁进行字符串拼接、插入、删除等操作的场景。:线程安全的可变字符串类,适合多线程环境或需要频繁修改字符串的场景。:在末尾追加任意类型的数据(自动转为字符串)。:同步锁会降低单线程下的性能,此时可用。:避免频繁扩容(默认扩容代价高)。可直接修改内容,无需创建新对象。:替换指定区间的字符为新字符串。不可变,每次修改生成新对象。:如果在单线程下操作字符串。是 Java 中用于处理。:删除指定位置的字符。
2025-06-28 17:15:46
758
原创 Java-对象的字符串表示
/ 输出 "User: Person{name='Charlie', age=40}"// 若p为null,返回"Default"是指将对象转换为人类可读的字符串形式,通常用于调试、日志输出或用户界面显示。// 输出 "Info: null"// 输出 "null"是对象字符串表示的核心方法,默认实现无意义,建议重写。:提供更有意义的对象描述(如显示对象的关键字段)。
2025-06-28 17:01:05
541
原创 CPU内部总线方式对比
连接CPU的主要功能部件(如寄存器、ALU、存储器接口等),数据和控制信号通过总线传输。高频宽总线(如AXI)、多总线层级(L1/L2缓存总线)缓解性能瓶颈。:总线传输PC值到指令存储器(IM),指令通过总线加载到IR。:使用多条总线(如数据总线、地址总线、控制总线)提高并行性。:总线分时复用,同一时间只能进行一次数据传输(串行操作)。:多个部件需竞争总线使用权,需仲裁逻辑(如总线控制器)。:所有部件共享一条总线(如MIPS的多周期数据通路)。:部件通过标准接口(总线)连接,易于扩展。
2025-06-28 11:38:41
855
原创 数据通路-单/多周期对比
每条指令在一个完整的时钟周期内完成所有操作(取指、译码、执行、访存、写回)。将指令执行分解为多个较短的时钟周期,每个周期完成一个特定步骤。指令被拆分为操作码(opcode)、寄存器编号(rs, rt, rd)、立即数等。:所有控制信号在指令译码后立即生成(组合逻辑),并贯穿整个时钟周期。:同一信号在不同阶段复用(如ALU用于地址计算和算术运算)。一个ALU在不同阶段执行不同任务(如地址计算、算术运算)。:每个功能部件(如ALU、存储器)有独立的控制信号。时钟周期更短(按最慢阶段设计),吞吐量更高。
2025-06-28 11:26:59
448
原创 Java-泛型类
泛型类是指使用类型参数定义的类,可以在类定义时不指定具体类型,而在实例化时指定。// T是类型参数,可以是任何非关键字标识符Java泛型类的主要特点:通过类型参数实现通用编程提供编译时类型安全检查消除强制类型转换支持类型边界限制通过类型擦除实现合理使用泛型类可以:提高代码的类型安全性增强代码的可读性和可维护性减少重复代码构建更灵活的API。
2025-06-27 20:42:47
556
原创 Java-异常类
/ 自定义受检异常super("资金不足,缺少: " + amount);// 自定义非受检异常Java异常处理的关键点:理解异常类层次结构和分类掌握try-catch-finally基本处理机制合理使用throws和throw遵循异常处理最佳实践必要时创建自定义异常利用Java 7+的增强特性。
2025-06-27 20:11:27
900
原创 Java-内部类
内部类(Inner Class)是定义在另一个类内部的类。它可以访问外部类的所有成员,包括私有成员。// 成员内部类System.out.println("访问外部类字段: " + outerField);// 静态内部类System.out.println("访问外部类静态字段: " + staticField);// 局部内部类System.out.println("访问局部变量: " + localVar);// 匿名内部类@Override。
2025-06-27 19:59:57
544
原创 Java-接口(interface)
接口是一种完全抽象的类,使用interfacepublic interface 接口名 {// 抽象方法// 常量// 默认方法(Java 8+)// 静态方法(Java 8+)// 私有方法(Java 9+)jJava接口是面向对象设计中的核心概念:定义行为规范,实现多继承Java 8+增强了接口能力(默认方法、静态方法)Java 9+增加了私有方法广泛应用于设计模式中是实现松耦合和可扩展架构的关键。
2025-06-27 12:29:15
932
原创 Java-抽象类
Java抽象类是面向对象设计中的重要工具:提供了一种部分实现的机制强制子类实现特定的行为支持代码复用和扩展是模板方法模式等设计模式的基础合理使用抽象类可以使代码结构更清晰,更易于维护和扩展。理解抽象类的特性和适用场景,有助于设计出更加灵活和健壮的Java应用程序。
2025-06-27 12:12:48
823
原创 Java-上转型对象
上转型对象是Java多态性的重要实现方式,它:允许父类引用指向子类对象可以调用父类中定义的方法实际执行的是子类重写的方法无法直接调用子类特有的方法广泛应用于需要统一处理不同子类对象的场景。
2025-06-27 11:46:29
229
原创 Java-继承下构造函数调用次序
Java继承体系下的构造函数调用顺序遵循以下规则:静态代码块优先执行(类加载时)从继承树的最顶层开始构造每层的构造函数按继承顺序依次执行默认调用父类无参构造函数,除非显式指定构造函数的显式调用(super()或this())必须是第一条语句。
2025-06-27 10:50:12
232
原创 Java-super关键字的应用
是Java中的一个关键字,主要用于在子类中访问父类的成员(属性、方法、构造方法)。,可以更清晰地管理父子类之间的关系,避免命名冲突,并确保对象的正确初始化。:主要用于继承关系中,解决父子类命名冲突或方法重写后的父类访问需求。,即父类的无参构造方法)。:调用父类的构造方法(必须放在子类构造方法的第一行)。:调用父类的方法(即使子类重写后仍能调用父类逻辑)。:访问父类的属性(避免子类同名属性覆盖)。,并确保父类的构造方法被正确调用。先调用父类的构造方法(默认调用。调用父类的原始方法。super.方法()
2025-06-27 10:42:04
322
原创 Java-this关键字的用法
它的主要用途包括解决变量命名冲突、调用当前类的构造方法或成员方法,以及作为参数传递当前对象。,可以使代码更清晰、减少冗余,并支持更灵活的编程模式(如 Builder 模式)。在某些情况下,需要将当前对象传递给其他方法,可以使用。,仅在必要时使用(如变量名冲突或构造方法调用)。,但必须放在构造方法的第一行(否则编译错误)。明确指定访问的是当前对象的成员变量。如果方法需要返回当前对象,可以使用。代表对象,而静态方法属于类)。将当前对象传递给另一个方法。有同名的变量,可以使用。访问外部类的成员变量。
2025-06-26 20:41:47
317
原创 Java-中断流程控制
在循环中break语句的使用方法: (1)独立使用,中断当前循环。基本格式为:break;作用:使程序的流程从一个语句块内部跳转出来。即从switch语句的分支中跳出,或从循环体内部跳出。continue语句的使用方法: 基本格式为:continue;其作用是结束本轮循环,接着开始判断决定是否执行下一轮循环。break语句仅出现在switch语句或循环体中。continue语句只能出现在循环体中。1、产生一个70-80之间的随机整数。
2025-06-25 23:15:34
182
原创 Java课后习题(编程题)
需要计算极大整数阶乘的和(如密码学、组合数学)。第3项:888 = 88 × 10 + 8。可以处理任意大小的整数,但计算速度较慢。会生成一个非常大的数(约374位),但。运算比基本数据类型慢,但对大数必不可少。第2项:88 = 8 × 10 + 8。(最大值 ~9.2 × 10¹⁸)和。循环10次,每次计算当前项并累加到。(Java 提供的任意精度整数类)。...,而不是对每个数单独求阶乘。第n项:前一项 × 10 + 8。和部分和,观察是否按预期增长。+ 对数变换,但精度会损失。存储阶乘和累加结果。
2025-06-25 22:56:47
474
原创 如何用好 DeepSeek 工具:入门指南
如果 DeepSeek 生成的结果不完全符合你的需求,可以通过调整输入描述或提供更多上下文来优化结果。2. **验证结果**:对于重要任务(如学术论文、法律文件),建议人工验证生成的内容。3. **合理使用**:DeepSeek 是辅助工具,不能完全替代人类的思考和判断。- **查找资料**:快速获取学术资料、解答学习中的疑问。3. **数据分析**:处理和分析数据,生成可视化结果。5. **学习助手**:解答学习中的疑问,提供学习资源。- **生成笔记**:将复杂的内容简化为易于理解的笔记。
2025-02-21 20:20:21
456
原创 Linux编程题
编写一个shell脚本,从键盘上输入若干数,计算其平均值用户输入: 用于从用户输入接收数字。如果用户输入的是 ,则退出循环。 验证输入: 使用正则表达式 检查输入是否为数字,包括正负数和浮点数。 求和与计数: 如果输入有效数字,程序会累加求和并增加计数器 。 计算平均值: 当用户输入完成后,计算平均值并输出。如果没有有效的数字输入,脚本会提示无法计算平均值。编写一个shell脚本,对输入的整数序列排序,实现插入排序解释: 读取输入: 会将用户输入的整数序列(以空格分隔)读取到数
2024-12-27 11:05:15
183
3
原创 如何判断同一以太网交换机下的主机能否互相访问
是否处于同一广播域。是否在同一 IP 子网内。是否在同一 VLAN 内。交换机端口是否没有被隔离或受访问控制列表(ACL)限制。
2024-12-05 19:39:43
1695
原创 unity实现计数器
通过这种方式,你可以用一个3D 按钮(如 Cube)来触发计时器的开始,而不是依赖传统的 UI 按钮。只需要在该物体上添加Collider和事件,并通过显示计时结果即可。
2024-12-01 16:38:13
976
原创 Unity中,Canva的三种渲染模式
渲染模式说明使用场景屏幕空间 - 覆盖 (Overlay)UI 元素直接覆盖在屏幕上,与相机无关。适用于传统的 2D UI(得分、菜单、HUD 等)。屏幕空间 - 摄像机 (Camera)UI 元素根据指定的摄像机视角进行渲染。适用于 3D 游戏中,UI 根据摄像机视角变化。世界空间 (World Space)UI 元素作为 3D 对象放置在世界空间中。适用于 VR/AR 或者 3D 游戏中的互动式 UI。选择哪种渲染模式,取决于你的 UI 元素是如何与场景交互的,以及你希望 UI 元素如何表现。
2024-12-01 15:50:55
1838
原创 unity如何让一个物体拥有按钮功能
3D 物体按钮:如果你有一个 3D 物体并希望让它响应点击,可以通过为物体添加Collider和使用射线检测来实现点击事件。UI 按钮:如果你使用的是 UI 按钮,可以直接使用 Unity 的UI Button组件,并为它设置点击事件。3D 模型转 UI 按钮:通过使用,你可以将 UI 元素放置在 3D 空间中,并将它们作为按钮进行交互。
2024-11-28 13:34:42
1893
原创 unity创建一传感器,当物体经过时,计数加一
通过这些步骤,你现在已经创建了一个简单的传感器,它能够检测物体进入并进行计数。你可以根据需求对传感器进行更多自定义,例如改变物体标签、设置不同的触发条件或做更复杂的事件响应。
2024-11-27 23:18:04
837
原创 unity修改视野范围后,场景中按钮无响应
修改摄像机视野(FOV)后,如果按钮点击没有反应,通常涉及到 UI 渲染模式、摄像机设置、Raycast Target、Canvas Scaler 等因素。通过逐步检查摄像机、UI配置、事件系统等,通常可以找到并修复问题。如果有详细的场景或设置,可以根据具体情况进一步排查。
2024-11-27 22:10:43
872
原创 在unity中实现一个传感器,当有物体经过该传感器发出的射线时,将会计数一次
射线检测:使用发射射线来检测物体经过传感器区域并增加计数。每帧检测或定时检测:根据需要,选择每帧检测或定时检查射线。触发器方式:使用事件来检测物体进入传感器区域,适合不需要射线的情况。
2024-11-17 21:55:22
512
1
原创 用户登录程序的实现
用户登录程序的实现:程序执行后,给出操作提示,请用户输入用户名和密码;用户在输入密码时,程序不回显输入字符;只有当用户输入的用户名、密码字符串和程序内定的字符串相同时,才显示欢迎界面,并返回DOS。界面颜色自定(彩色或黑白)。
2024-11-17 21:17:55
902
原创 计算机组成原理习题
解答:三地址指令29条,说明操作码至少5位,所以剩下2^5-29=3种操作码给二地址指令调配。此种情况下,二地址能实现的指令数为:3*2^6=192>107,显然是够用的,所以操作码5位完全够用,指令字长即5+6*3=23,取8的倍数则为24.。解答:变址寻址固定形式地址D,变化寄存器的值,适用于堆、块访问,便于程序设计。由题意得:三地址操作码位数:16 - 4*3 = 4。三地址剩余状态: 2^4 - 15 = 1。
2024-11-17 15:59:04
357
空空如也
结构体数组的初始化。
2023-02-03
TA创建的收藏夹 TA关注的收藏夹
TA关注的人