BUAA_OO_Unit2_多线程电梯调度
BUAA_2025_Unit2_多线程电梯调度在正式开始之前,我们先简单回顾一下三次作业: 输入指定电梯的乘客请求,利用生产者-消费模式实现乘客运算 增加调度请求,不再指定乘客电梯,新增receive约束 实现双轿厢电梯改造 第一次作业分析1.1 UML类图 1.2架构分析通过对指导书的分析,我们可以将任务分为三个线程: InputHandler: 输入处理线程,将输入请求存储到主队列。 Schedule: 调度器线程,将主队列的请求分发至对应电梯的子队列 Elevator: 电梯线程,将乘客运送至目的地 调度器派发请求本次作业中,虽然对于每一个请求均指定了对应的电梯,可以在InputHandler中就将对应请求派发至对应电梯对应等待队列。但是考虑到后续迭代可能得复杂性以及降低耦合度等考虑,我还是设计了一个调度器——Schedule,主要负责将主队列的请求分配至对应电梯的子队列。 123public void dispatch(Person person) { ...
Java中equals方法探讨
Java中equals()方法探讨基本数据类型VS对象引用类型的相等性判断 基本数据类型:byte、char、 short、 int、 long、 float、 double、 boolean 对象引用类型:简单来说就是new出来的对象的名称就是一个对象引用 基本数据类型的相等性判断特点:直接比较值是否相等,使用==运算符 123int a = 5;int b = 5;System.out.println(a == b); // true(值相等) 基本数据类型的变量直接存储值,==直接比较两个变量的二进制值是否相等 对象引用类型的相等性判断对象引用类型的变量相等于一个指针,利用==相当于比较“这个指针变量”的值(是一个“地址”)是否相同,而利用equals方法类似于对C语言中指针解引用之后判断指针所指向的地方的内容是否相等,并且可以重写equals()方法(个人理解,有错勿喷) ==运算符:比较内存地址 123456String s1 = new String("hello");String s2 = new...
正则表达式
总述正则表达式有一系列字符和特殊字符(称为元字符)组合而成,用来匹配和描述特定字符串的特定模式,提供了一种灵活且强大的方式来查找、替换、验证和提取文本数据。正则表达式的组件可以是单个的字符、字符集合、字符范围、字符间的选择或者所有这些组件的任意组合。 正则表达式元字符和特性字符匹配 普通字符:普通字符指没有显示指定为元字符的所有可打印和不可打印字符,包括所有大写和小写字母、所有数字、所有标点符号和一些其他符号。普通字符按照字面意义进行匹配,例如匹配字母 “a” 将匹配到文本中的 “a” 字符。 元字符:元字符具有特殊的含义,例如 \d 匹配任意数字字符,\w 匹配任意字母数字字符,. 匹配任意字符(除换行符)等。 字符类一般字符类 字符 描述 [ ] 匹配括号内的任意一个字符,如果没有量词修饰时,代表方括号中元素有且仅有一个。例如,[abc] 匹配字符 “a”, “b” 或 “c”。 [^ ] 匹配除了括号内的字符以外的任意一个字符。例如,[^abc] 匹配除了字符 “a”, “b” 或 “c” 以外的任意字符。 \cx 匹配由x指明的控制字符。例如,\cM...
博客搭建
前期准备nodejs 安装及环境配置 参考链接 注意:如果在第五步使用npm config set registry https://registry.npmmirror.com 安装淘宝镜像时报错,建议通过管理员身份运行命令提示符重新运行该命令。 Git 的下载及配置安装及配置git并将ssh密钥绑定至github利用ssh -T git@github.com测试是否绑定成功 博客初始化 本地在合适位置创建名为Blog文件在其中右键启用git bash,输入 1hexo init 如若产生报错 1hexo: command not found 建议利用管理员身份在Blog目录下运行 1npx hexo init 或者可以在命令提示符中运行 1npm install -g hexo-cli 或者可以在hexo init后重新键入npm install 解决问题(具体选择以上几种尝试) hexo s生成本地博客界面在本地可以访问http://localhost:4000/得到本地博客初始界面按ctrl...