随笔分类 -  课程

摘要:一、概念 中介者模式(Mediator Pattern)又称为调节者模式或者调停者模式,定义了一个中介对象来封装一系列对象之间的交互关系,从而使各个对象之间不需要显式地相互引用,达到松耦合的目的。使得当某些对象之间的功能发生改变时,不会立刻影响其他的一些对象之间的功能。 核心思想:通过中介者对象解耦 阅读全文
posted @ 2022-12-15 14:01 ImreW 阅读(93) 评论(0) 推荐(0)
摘要:一、网关 (一)说法一 计算机的网关(Gateway)就是到其他网段的出口,也就是路由器接口IP地址。路由器接口使用的IP地址可以是本网段中任何一个地址,不过通常使用该网段的第一个可用的地址或最后一个可用的地址,这是为了尽可能避免和本网段中的主机地址冲突。 在如下拓扑图示例中,A与B,C与D,都可以 阅读全文
posted @ 2022-12-15 12:00 ImreW 阅读(603) 评论(0) 推荐(1)
摘要:文件的数据是要存储在硬盘上面的,数据在磁盘上的存放方式,就像程序在内存中存放的方式那样,有以下两种: 连续空间存放方式 非连续空间存放方式 其中,非连续空间存放方式又可以分为「链表方式」和「索引方式」。 不同的存储方式,有各自的特点,重点是要分析它们的存储效率和读写性能,接下来分别对每种存储方式说一 阅读全文
posted @ 2022-12-15 10:44 ImreW 阅读(1158) 评论(0) 推荐(0)
摘要:一、概念 访问者模式(Vistor Pattern)是用于数据结构与数据操作分离的一种设计模式。是指封装一些作用于某种数据结构中的各种元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新操作。 模式动机:对于存储在一个集合中的对象,他们可能具有不同的类型(即使有一个公共的接口),对于该集 阅读全文
posted @ 2022-12-15 08:51 ImreW 阅读(117) 评论(0) 推荐(0)
摘要:一、题目 在一个 m*n 的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格、直到到达棋盘的右下角。给定一个棋盘及其上面的礼物的价值,请计算你最多能拿到多少价值的礼物? 二、思路 设 f(i,j)为从棋盘左上角走至 阅读全文
posted @ 2022-12-15 08:29 ImreW 阅读(33) 评论(0) 推荐(0)
摘要:我们从用户角度来看文件的话,就是我们要怎么使用文件?首先,我们得通过系统调用来打开一个文件。 fd = open(name, flag); # 打开文件 ... write(fd,...); # 写数据 ... close(fd); # 关闭文件 上面简单的代码是读取一个文件的过程: 首先用 ope 阅读全文
posted @ 2022-12-14 21:54 ImreW 阅读(87) 评论(0) 推荐(0)
摘要:文件系统的种类众多,而操作系统希望对用户提供一个统一的接口,于是在用户层与文件系统层引入了中间层,这个中间层就称为虚拟文件系统(Virtual File System,VFS)。 VFS 定义了一组所有文件系统都支持的数据结构和标准接口,这样程序员不需要了解文件系统的工作原理,只需要了解 VFS 提 阅读全文
posted @ 2022-12-14 21:48 ImreW 阅读(78) 评论(0) 推荐(0)
摘要:文件系统是操作系统中负责管理持久数据的子系统,说简单点,就是负责把用户的文件存到磁盘硬件中,因为即使计算机断电了,磁盘里的数据并不会丢失,所以可以持久化的保存文件。 文件系统的基本数据单位是文件,它的目的是对磁盘上的文件进行组织管理,那组织的方式不同,就会形成不同的文件系统。 Linux 最经典的一 阅读全文
posted @ 2022-12-14 21:43 ImreW 阅读(212) 评论(0) 推荐(0)
摘要:一、题目 输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。 要求时间复杂度为O(n)。 二、思路 若 dp[i−1]≤0,说明 dp[i−1]对 dp[i]产生负贡献,即 dp[i−1]+nums[i]还不如 nums[i]本身大。 当 dp[i−1]>0时:执 阅读全文
posted @ 2022-12-14 12:39 ImreW 阅读(21) 评论(0) 推荐(0)
摘要:一、概念 状态模式(State Pattern)也称为状态机模式(State Machine Pattern),当控制一个对象状态的条件表达式过于复杂的时候,就可以考虑使用状态模式,通过把状态的判断逻辑转移到表示不同状态的一系列类中,这样就可以把复杂的逻辑简单化,使得对象的行为依赖于它的状态,并且会 阅读全文
posted @ 2022-12-14 11:34 ImreW 阅读(211) 评论(0) 推荐(0)
摘要:一、概念 备忘录模式(Memento Pattern)又称之为快照模式(Snapshop Pattern)或者令牌模式(Token Pattern),是指在不破坏封装的前提下,捕获一个对象的内部状态,并在对象之外保存这个状态,这样我们就可以在需要的时候将该对象恢复到原先保存的状态了 大白话: 备忘录 阅读全文
posted @ 2022-12-13 16:35 ImreW 阅读(109) 评论(0) 推荐(0)
摘要:跟 IP 协议相关的技术也不少,接下来说说与 IP 协议相关的重要且常见的技术。 DNS 域名解析 ARP 与 RARP 协议 DHCP 动态获取 IP 地址 NAT 网络地址转换 ICMP 互联网控制报文协议 IGMP 因特网组管理协 一、DNS 我们在上网的时候,通常使用的方式是域名,而不是 I 阅读全文
posted @ 2022-12-13 15:21 ImreW 阅读(108) 评论(0) 推荐(0)
摘要:我们来看看磁盘的结构,如下图: 常见的机械磁盘是上图左边的样子,中间圆的部分是磁盘的盘片,一般会有多个盘片,每个盘面都有自己的磁头。右边的图就是一个盘片的结构,盘片中的每一层分为多个磁道,每个磁道分多个扇区,每个扇区是 512 字节。那么,多个具有相同编号的磁道形成一个圆柱,称之为磁盘的柱面,如上图 阅读全文
posted @ 2022-12-13 15:00 ImreW 阅读(454) 评论(0) 推荐(1)
摘要:一、概念 命令模式(Command Pattern)是对命令的封装,每一个命令都是一个操作。首先请求的一方发出请求要求执行一个操作,然后接收的一方收到请求,并执行操作。 命令模式解耦了请求方和接收方,请求方只需要发送命令而不需要关心命令是如何被接收的,不关心命令怎么操作,也不关心命令是否被执行等。 阅读全文
posted @ 2022-12-13 08:25 ImreW 阅读(73) 评论(0) 推荐(0)
摘要:一、概念 责任链模式(Chain of Responsibility Pattern)是指将链中的每一个节点看作是一个对象,每个节点处理的请求均不同,且每个节点内部自动维护了一个下一个节点对象。当一个请求在链路的头部发出时,会沿着链的路径依次传递给每一个节点对象,直到有对象处理这个请求为止。 责任链 阅读全文
posted @ 2022-12-12 14:30 ImreW 阅读(91) 评论(0) 推荐(0)
摘要:一、题目 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。 答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。 二、思路 原理: 以斐波那契数列性质 f(n+1)=f(n)+f(n−1)为转移方程 阅读全文
posted @ 2022-12-12 14:12 ImreW 阅读(32) 评论(0) 推荐(0)
摘要:在了解内存页面置换算法前,我们得先谈一下缺页异常(缺页中断)。 当 CPU 访问的页面不在物理内存时,便会产生一个缺页中断,请求操作系统将所缺页调入到物理内存。那它与一般中断的主要区别在于: 缺页中断在指令执行「期间」产生和处理中断信号,而一般中断在一条指令执行「完成」后检查和处理中断信号。 缺页中 阅读全文
posted @ 2022-12-12 14:05 ImreW 阅读(211) 评论(0) 推荐(0)
摘要:一、概念 迭代器模式,最常见的就是开发中使用JDK自带的Iterator 遍历集合。这个模式在我们实际开发中用的场景并不多。另外增强的for循环虽然是循环输出数据,但是他不是迭代器模式, 迭代器具备对元素的删除等操作。而增强for循环是不可以的。 迭代器模式(Iterator Pattern)又称为 阅读全文
posted @ 2022-12-12 13:35 ImreW 阅读(213) 评论(0) 推荐(0)
摘要:进程调度算法也称 CPU 调度算法,毕竟进程是由 CPU 调度的。 当 CPU 空闲时,操作系统就选择内存中的某个「就绪状态」的进程,并给其分配 CPU。 什么时候会发生 CPU 调度呢?通常有以下情况: 当进程从运行状态转到等待状态;(阻塞状态) 当进程从运行状态转到就绪状态; 当进程从等待状态转 阅读全文
posted @ 2022-12-11 22:05 ImreW 阅读(59) 评论(0) 推荐(0)
摘要:一、题目 写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下: F(0) = 0, F(1) = 1 F(N) = F(N - 1) + F(N - 2), 其中 N > 1. 斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前 阅读全文
posted @ 2022-12-11 18:31 ImreW 阅读(29) 评论(0) 推荐(0)