自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(85)
  • 收藏
  • 关注

原创 网络工程-POE概述

按照IEEE标准的定义,PSE设备分为MidSpan(PoE功能模块在设备外)和Endpoint(PoE功能模块集成到设备内)两种类型。Endpoint类型的PSE设备依据使用的供电线对不同分为Alternative A(1/2和3/6线对)和AlternativeB(4/5和7/8线对)两种供电模式。•供电设备PSE(Power-sourcing Equipment):供电设备指通过以太网给受电设备供电的PoE设备,提供检测、分析、智能功率管理等功能。•PoE技术的供电标准是IEEE 802.3af。

2026-06-19 20:07:07 185

原创 进程虚拟空间浅析

虚拟内存区域(VMA,virtual memmory area):linux中进程虚拟空间中的一个段,在windows中将这个叫做虚拟段(virtual section)进程虚拟空间涉及操作系统的内存管理和进程管理,虚拟空间是在进程执行时根据装载和执行步骤为进程分配的空间。如4GB的虚拟空间,1GB分给操作系统进程,3GB分给其他进程。注意:在装载时有两种映射关系,1.可执行文件和进程虚拟空间的段映射 2.进程虚拟空间与物理内存的页映射。虚拟空间的大小由CPU的位数决定。cache机制也只是对内存的映射。

2026-06-19 20:01:29 153

原创 网络工程-无线技术

原理:WLAN采用的是CSMA/CA机制,并发的无线用户数越多,无线报文相互冲突的概率迅速增大,导致上网速度急速下降。纯组播报文由于协议要求在无线空口没有ACK机制保障,且无线空口链路不稳定,为了纯组播报文能够稳定发送,通常会以低速报文形式发送。通常VIP区域 > -60dBm,普通区域 > -65dBm,简单区域 > -70dBm,就达到满足用户信号强度需求的条件。解决方案:有重叠覆盖区域的AP之间需要规划互不干扰的不同工作信道,1,6,11信道组网。

2026-06-19 14:25:54 185

原创 目标文件/可执行文件查看-C/C++

程序头:描述了ELF文件如何被操作系统映射到进程虚拟地址空间。生成的目标文件有全局符号可用,代码可直接使用这个段处理文件。

2026-06-19 14:24:03 32

原创 编译后文件格式-C/C++

系统定义的段会在编译时把对应内容放到对应段,如代码放到.text段,全局变量和静态变量放到.data和.bss段。但有时候可能希望变量或某些部分代码能够放到指定的段中。GCC提供了一个扩展机制,使得程序员可以指定变量所处的段。// 把global放到“FOO”段 # pragma data_seg("FOO") int global = 1;data_seg// 把global放到“FOO”段 # pragma data_seg("FOO") int global = 1;#pragma。

2026-06-19 14:19:12 238

原创 网络工程-路由策略概述

路由策略(Routing Policy)作用于路由,主要实现了路由过滤和路由属性设置等功能,它通过过滤路由控制路由范围,改变路由属性(包括可达性)来改变网络流量所经过的路径。路由重发布后路由如有业务需要,也通过路由策略来过滤或修改路由属性。

2026-04-12 15:27:05 238

原创 网络工程-VLAN变种

应用典型场景:在企业网络中,1.企业员工和企业客户可以访问企业的服务器。对于企业来说,2.希望企业内部员工之间可以互相交流,而3.企业客户之间是隔离的,不能够互相访问。普通VLAN技术应用局限:为了实现所有用户都可访问企业服务器,可通过配置VLAN间通信实现。如果企业规模很大,拥有大量的用户,那么就要为不能互相访问的用户都分配VLAN,这不但需要耗费大量的VLAN ID,还增加了网络管理者的工作量同时也增加了维护量。

2026-04-12 14:11:32 406

原创 网络工程-常用计算

如CA1表示用户A分配到的码片序列(-1,-1,-1,-1),CA0为其补码(+1,+1,+1,+1);CB1表示用户分配到的码片序列(+1,-1,+1,-1),CB0为(-1,+1,-1,+1)。收到一个叠加后的码片序列,判断是谁发送的,发送的0还是1:用已知用户的码片序列与叠加后的序列做点积运算,为0表示没发送,为1或-1表示发送1或0。校验位生成:用原始信息位后加生成多项式阶数相同位数的0,“除”生成多项式(模2除,或者说异或),最后余数即为校验位,个数也为生成多项式的阶数。

2026-03-30 21:33:58 397

原创 TCP/IP网络-网络接口层标准

网络接口层是TCP/IP网络的概念,对应的物理层+数据链路层是OSI标准的概念。

2026-03-15 22:41:44 118

原创 网络工程-地址

如主机地址为192.0.2.142,对应的IPv6的链路本地地址为FE80::C000:28E。IPv6的链路本地地址的格式前缀为FE80::/64,在其后加上64位的IPv4接口地址标识符就形成了完整的IPv6链路本地地址。注意:全0地址代表任意主机不能作为目标地址是指IP数据包里的目标地址,和默认路由里的目标网络全0不同。6to4地址:2002:IPv4::EUI-64, 把不使用此前缀的IPv6地址称为原生地址。如果MAC地址是原厂的,可通过抓包出的MAC地址前24位解析出网卡厂商。

2026-03-15 22:02:23 306

原创 二分搜索-C

【代码】二分搜索-C。

2026-02-25 21:01:48 251

原创 什么是线程安全?

为什么要写什么是进程这一节:进程由一到多个线程组成为什么需要进程:进程在操作系统上运行。可以理解为一个任务,完成一个任务以肯定需要资源(CPU、存储、IO等),因此进程是资源管理的最小单位。操作系统内运行的各进程之间相对独立,因此操作系统才能同时运行多个任务,充分利用CPU资源。线程(Thread)概念:有时被称为轻量级进程(Lightweight Process, LWP),是程序执行流的最小单元。

2026-02-01 15:45:37 724

原创 24.设计模式-访问者模式

访问者模式使用场景?访问者模式适用于数据结构相对稳定的系统。访问者模式的目的是要把处理从数据结构分离出来。很多系统可以按照算法和数据结构分开,如果这样的系统有比较稳定的数据结构,又有易于变化的算法的话,使用访问者模式就是比较合适的,因为访问者模式使得算法操作的增加变得容易。访问者模式的优势?增加新的操作很容易,因为增加新的操作就意味着增加一个新的访问者。访问者模式将有关的行为集中到一个访问者对象中。访问者模式解耦了数据结构和作用于结构上的操作。

2026-01-26 09:00:00 370

原创 23.设计模式-解释器模式

解释器模式使用场景?如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子。这样就可以构建一个解释器,该解释器通过解释这些句子来解决该问题。如当有一个语言需要解释执行,并且你可将该语言中的句子表示为一个抽象语法树时,可使用解释器模式。解释器模式的优点?用了解释器模式,就意味着可以很容易地改变和扩展文法,因为该模式使用类来表示文法规则,你可使用继承来改变或扩展该文法。

2026-01-25 15:33:08 331

原创 22.设计模式-享元模式(Flyweight)

享元模式使用场景?如果一个应用程序使用了大量的对象,而大量的这些对象造成了很大的存储开销时就应该考虑使用;对象的大多数状态是外部状态,如果删除对象的外部状态,那么可以用相对较少的共享对象取代很多组对象,此时可以考虑使用享元模式。实际使用场景,我理解动态库(windows系统的dll库,linux的so库)就是享元模式思想的运用享元模式让软件设计者在设计类时会思考哪些是外部状态,哪些是内部状态。

2026-01-25 13:22:38 89

原创 21.设计模式-中介者模式

中介者模式优缺点?优点:Mediator的出现减少了各个Colleague的耦合,使得可以独立地改变和复用各个Colleague类和Mediator,比如任何国家的改变不会影响到其他国家,而只是与安理会发生变化。由于把对象如何协作进行了抽象,将中介作为一个独立的概念并将其封装在一个对象中,这样关注的对象就从对象各自本身的行为转移到它们之间的交互上来,也就是站在一个更宏观的角度去看待系统。

2026-01-25 09:00:00 256

原创 20.设计模式-职责链模式

职责链模式的优点?职责模式的处理过程是当客户提交一个请求时,请求是沿链传递直至有一个ConcreteHandler对象负责处理它。这就使得接收者和发送者都没有对方的明确信息,且链中的对象自己也并不知道链的结构。结果是职责链可简化对象的相互连接,它们仅需保持一个指向其后继者的引用,而不需保持它所有的候选接受者的引用。

2026-01-24 16:59:34 348

原创 19.设计模式-命令模式

命令模式的优点?第一,它能较容易地设计一个命令队列;第二,在需要的情况下,可以较容易地将命令记入日志;第三,允许接收请求的一方决定是否要否决请求;第四,可以容易地实现对请求的撤销和重做;第五,由于加进新的具体命令类不影响其他的类,因此增加新的具体命令类很容易;有这些优点的原因是命令模式把请求一个操作的对象与知道怎么执行一个操作的对象分割开。什么场景使用命令模式?命令模式支持撤销/恢复操作功能,但你还不清楚是否需要这个功能时,建议不要使用该模式。

2026-01-24 13:52:24 555

原创 leetcode-887. 鸡蛋掉落-C

每次操作,你可以取一枚没有碎的鸡蛋并把它从任一楼层 x 扔下(满足 1 <= x <= n)。如果鸡蛋碎了,你就不能再次使用它。如果某枚鸡蛋扔下后没有摔碎,则可以在之后的操作中 重复使用 这枚鸡蛋。已知存在楼层 f ,满足 0 <= f <= n ,任何从 高于 f 的楼层落下的鸡蛋都会碎,从 f 楼层或比它低的楼层落下的鸡蛋都不会破。给你 k 枚相同的鸡蛋,并可以使用一栋从第 1 层到第 n 层共有 n 层楼的建筑。请你计算并返回要确定 f 确切的值 的 最小操作次数 是多少?

2026-01-21 23:08:59 262

原创 18.设计模式-桥接模式

合成/聚合复用原则的好处:优先使用对象的合成/聚合将有助于你保持每个类被封装,并被集中在单个任务上。这样类和类继承层次会保持较小规模,并且不太可能增长为不可控制的庞然大物。

2026-01-18 15:18:54 338

原创 17.设计模式-单例模式(Singleton)

无。

2026-01-18 13:08:35 166 1

原创 16.设计模式-迭代器模式

迭代器模式使用场景?当你需要访问一个聚集对象,而且不管这些对象是什么都需要遍历的时候,你就应该考虑用迭代器模式。

2026-01-12 11:00:00 472

原创 15.设计模式-组合模式

组合模式使用场景?“当你发现需求中是体现部分与整体层次的结构时,以及你希望用户可以忽略组合对象与单个对象的不同,统一地使用组合结构中的所有对象时,就应该考虑用组合模式了。

2026-01-11 14:38:19 408

原创 14.设计模式-备忘录模式

备忘录模式使用场景?“Memento模式比较适用于功能比较复杂的,但需要维护或记录属性历史的类,或者需要保存的属性只是众多属性中的一小部分时,Originator可以根据保存的Memento信息还原到前一状态。

2026-01-11 12:23:27 368

原创 13.设计模式-适配器模式

适配器使用场景?想使用一个已经存在的类,但如果它的接口,也就是它的方法和你的要求不相同时,就应该考虑用适配器模式。即两个类所做的事情相同或相似,但是具有不同的接口时要使用它。使客户代码可以统一调用同一接口。但注意要在双方都不太容易修改的时候再使用适配器模式适配,而不是一有不同时就使用它。

2026-01-10 22:47:21 348

原创 12.设计模式-状态模式

状态模式使用场景?“状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复杂的判断逻辑简化。当然,如果这个状态判断很简单,那就没必要用‘状态模式’了。

2026-01-10 13:10:03 411

原创 leetcode-174. 地下城游戏

有些房间由恶魔守卫,因此骑士在进入这些房间时会失去健康点数(若房间里的值为负整数,则表示骑士将损失健康点数);其他房间要么是空的(房间里的值为 0),要么包含增加骑士健康点数的魔法球(若房间里的值为正整数,则表示骑士将增加健康点数)。我们英勇的骑士最初被安置在 左上角 的房间里,他必须穿过地下城并通过对抗恶魔来拯救公主。注意:任何房间都可能对骑士的健康点数造成威胁,也可能增加骑士的健康点数,包括骑士进入的左上角房间以及公主被监禁的右下角房间。如果他的健康点数在某一时刻降至 0 或以下,他会立即死亡。

2026-01-06 22:47:51 234

原创 leetcode-动态规划-买卖股票

记录下买卖股票类型动态规划题目使用的状态转移方程。

2026-01-06 22:39:27 861

原创 11.设计模式-抽象工厂模式

抽象工厂模式和工厂方法模式的区别?直观上看,工厂方法模式只有一种业务,而抽象工厂模式有多种,如需求中的user和department。抽象工厂模式的优点?1.易于交换产品系列,由于具体工厂类,例如IFactory factory = new AccessFactory(),在一个应用中只需要在初始化的时候出现一次,这就使得改变一个应用的具体工厂变得非常容易,只需要改变具体工厂即可使用不同的产品配置。

2026-01-04 11:00:00 433

原创 10.设计模式-观察者模式

观察者模式的使用场景?当一个对象的改变需要同时改变其他对象,且它不知道具体有多少对象有待改变时,应该考虑使用观察者模式。如当一个抽象模型有两个方面,其中一方面依赖于另一方面,这时用观察者模式可以将这两者封装在独立的对象中使它们各自独立地改变和复用。

2026-01-03 11:00:00 500

原创 9.设计模式-建造者模式

建造者模式的使用场景?主要是用于创建一些复杂的对象,这些对象内部构建间的建造顺序通常是稳定的,但对象内部的构建通常面临着复杂的变化。建造者模式的优势?使得建造代码与表示代码分离,由于建造者隐藏了该产品是如何组装的,所以若需要改变一个产品的内部表示,只需要再定义一个具体的建造者就可以了。

2026-01-02 17:44:35 484

原创 8.设计模式-外观模式(Facade)

外观模式使用场景?这要分三个阶段来说,首先,在设计初期阶段,应该要有意识的将不同的两个层分离,比如经典的三层架构,就需要考虑在数据访问层和业务逻辑层、业务逻辑层和表示层的层与层之间建立外观Facade,这样可以为复杂的子系统提供一个简单的接口,使得耦合大大降低。其次,在开发阶段,子系统往往因为不断的重构演化而变得越来越复杂,大多数的模式使用时也都会产生很多很小的类,这本是好事,但也给外部调用它们的用户程序带来了使用上的困难,增加外观Facade可以提供一个简单的接口,减少它们之间的依赖。

2026-01-02 12:58:15 372

原创 leetcode-460. LFU 缓存

当缓存达到其容量 capacity 时,则应该在插入新项之前,移除最不经常使用的项。在此问题中,当存在平局(即两个或更多个键具有相同使用频率)时,应该去除 最久未使用 的键。当一个键首次插入到缓存中时,它的使用计数器被设置为 1 (由于 put 操作)。对缓存中的键执行 get 或 put 操作,使用计数器的值将会递增。为了确定最不常使用的键,可以为缓存中的每个键维护一个 使用计数器。int get(int key) - 如果键 key 存在于缓存中,则获取键的值,否则返回 -1。

2026-01-02 11:48:37 178

原创 7.设计模式-模板方法模式

模板方法模式应用场景?当不变的和可变的行为在方法的子类实现中混合在一起的时候,不变的行为就会在子类中重复出现。我们通过模板方法模式把这些行为搬移到单一的地方,这样就帮助子类摆脱重复的不变行为的纠缠。

2026-01-02 11:45:46 272

原创 leetcode-1373. 二叉搜索子树的最大键值和

给你一棵以 root 为根的 二叉树 ,请你返回 任意 二叉搜索子树的最大键值和。每个节点的键值在 [-4 * 10^4 , 4 * 10^4] 之间。每棵树有 1 到 40000 个节点。

2025-12-31 11:30:00 252

原创 算法-最短路径算法-dijkstra-C

注:不同“最短路径”要求的修改点主要在BFS遍历时的权重更新上。

2025-12-30 11:30:00 650

原创 算法-最小生成树-Kruskal算法

【代码】算法-最小生成树-Kruskal算法。

2025-12-29 11:30:00 196

原创 算法-拓扑排序-C

拓扑排序算法是将有向图看成一条序列。

2025-12-28 12:47:12 259

原创 算法-并查集-C

记录算法使用场景和算法实现。

2025-12-28 12:25:15 216

原创 6.设计模式-原型模式

代码实现clone时深复制和浅复制的问题?深复制和浅复制的定义:‘浅复制’,被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用都仍然指向原来的对象。深复制把引用对象的变量指向复制过的新对象,而不是原有的被引用的对象。把握深复制要复制多深:如一个类的成员引用了很多层,需要注意要拷贝到哪一层。

2025-12-22 11:30:00 414

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除