【软考】上午题7-设计模式-中级软件设计师备考笔记
为复用成功的设计采用设计模式 创建型设计模式 工厂方法模式(类模式) 意图,定义使类的实例化延迟到子表 抽象工厂模式 意图,创造一系列接口,无需执行他们具体的类,以便让一系列对象联合使用 系统独立于产品创建、组成和表示 建造者模式 Builder 意图,将复杂对象的构建和表示分离,同样的构建过程创建不同表示 原型模式 Prototype 让对象复制自身 系统独立于对象创建、构成和表示 单例模式 Singleton 保证类仅有一个实例,提供一个全局访问点 结构型设计模式 适配器模式(可能有类模式,会用的多重继承,但很少) Adapter 意图,把一个类接口转换成客户希望的例外一个接口 想使用一个已有类的接口,但接口不符合要求 桥接模式 Bridge 意图,将抽象部分与实现部分分离 组合模式 Composite 意图,把对象组合成树型结构表现部分-整体的层次结构,使用具有一致性(一个方法处理不同对象) 装饰模式 Decorator 意图,动态给对象添加一些额外职责 不影响其他对象,动态、透明地给对象添加职责 外观模式...
【软考】上午题6-UML-中级软件设计师备考笔记
事物(少) 四种:结构事物(静态)、行为事物(动态)、分组事物(其他食物可以放成包)、注释事物(解释部分) 关系(中) 依赖关系,虚线箭头 — > ,若 A依赖B,则A为依赖事物,B为独立事物,A调用 func(B),也就是独立事物的变化影响依赖事物的语义, 比较偶然一点,比如人依赖食物,吃完就暂时不依赖了 关联关系,实线箭头 —>,是链,可以标注多重度(0..*)和角色,比依赖更强的关系,比如人关联氧气聚集关系,描述了整体和部分的结构关系,整体和部分生命周期不一致,空心菱形箭头表示组合关系,更强的聚合,整体和部分生命周期一致,实心菱形实线箭头表示 泛化关系,父类泛化子类,有带空心箭头的实线,子类指向父类 实现关系,实现内容实现接口,带空心箭头的虚线 图(多) 类图 最常见,静态设计视图 +:public-:private#:protected~:package 支持系统功能建模,对词汇、协作、逻辑数据库模式建模 对象图 类图的实例的静态快照 用例图 用例、参与者和她们之间关系,静态,对系统语境/需求建模 ...
【软考】上午题5-面向对象-中级软件设计师备考笔记
类 实体类:核心类,储存信息接口类(边界类):媒介控制类:控制活动流,协调者 一组对象的抽象定义 对象 通常由对象名,属性(状态)、方法(行为)组成 从属一个类的对象,共享属性与行为 消息 对象之间通信的构造(用 set 之类设置对象中的属性也算吧) 封装 是一种信息隐藏技术 对象是封装数据与行为的整体 继承 父类和子类之间共享非私有化数据和方法的机制 多重继承可能使成员产生二义性,即父母同时有的属性和方法不知调用哪个 多态 父类指针指子类对象,编译时视作父类,运行时视为子类(继承支持) 调用时发通用消息,调用不同方法 参数多态:最纯的多态包含多态:很多语言存在,最常见的是子类型化(一个类型是另一个类型的子类型)过载多态:同一个名字在不同的上下文中代表的含义不同强制多态 ...
【软考】上午题4-数据库-中级软件设计师备考笔记
结构数据模型 层次模型,用树结构 网状模型,用图结构 关系模型,用二维表格结构 三级模式结构 概念模式(模式) 基本表 外模式(用户模式,子模式) 视图 内模式 存储文件 表示层、业务层、数据层 两级映像 模式/内模式映像,与物理有关,改物理改映像 外模式/模式映像,与逻辑有关,改逻辑改映像 保证逻辑独立性和物理独立性 关系模式基本知识 {:height 338, :width 597} 重点是:什么是候选码、主码、主属性 完整性 实体完整性:主码不能为空或部分为空 参照完整性:外码在主码对应,要么找到,要么为空值 连接 西塔连接,也就是在笛卡尔积的基础上有比较的筛选 等值连接,也就是西塔连接中,= 自然连接,去除重复属性的等值连接(相同属性相等) 外连接:左外连接,沙漏左边有长横,左边信息必须有留,对应右侧若无信息可留空右外连接和全外连接同理 答案 SQL 数据定义语言 DDL 数据操纵语言 DML 数据查询语言 DQL 数据控制语言 DCL 一堆 SQL...
【软考】上午题3-知识产权-中级软件设计师备考笔记
著作权 有人身权和财产权 人身权:署名权、修改权和保护作品完整权等(永久) 发表权(时间限制:作者终身及其死亡后五十年) 专利地域性 知识产权只在本国领域受法律保护 计算机软件著作权 基本法律文件《中华人民共和国著作权法》...
【软考】上午题2-程序设计语言-中级软件设计师备考笔记
低级语言和高级语言 汇编和机器语言是低级语言 编译程序和解释程序 解释器:解释源程序不产生独立的目标程序,解释程序和源程序要参与到程序运行过程中编译器:解释源程序产生独立的目标程序,解释程序和源程序不参与到程序运行过程中 基本成分 结构:顺序结构、选择结构、循环结构 编译器 词法分析语法分析语义分析中间代码生成代码优化目标代码生成 ...
【软考】上午题1_计算机系统_中级软件设计师备考笔记
计算机系统硬件 由运算器,控制器,存储器,和输入输出设备五大部件组成 CPU 是硬件系统核心 运算器 *算术逻辑单元(ALU),可以算术运算和逻辑运算*累加寄存器(AC),简称累加器,暂存运算中的数字数据缓冲寄存器(DR)作为 CPU 和内存、外部设备的中转站,也可兼做寄存器状态条件寄存器(PSW),保存运算结果建立各种条件码内容 控制器 不仅保证程序(指令)的正确执行,也要能够处理异常事件 指令寄存器(IR)暂存正在执行指令,指令从内存先到 DR,再到 IR (对用户完全透明,不能访问)(注意所存的是指令,不是指令地址)*程序计数器(PC)有寄存信息和计数两个功能,保存要执行下一条指令地址地址寄存器(AR)保存 CPU 正在访问内存地址指令译码器(ID)翻译指令的操作码来执行 答案 计算机基本单位 位(比特) bit b 字节 byte B 1B = 8b 最小数据单位 bit 最小存储单位 byte 进制 十(D) 二(B) 八(O) 十六(H) 计算区域时,记得求其大小,要大数减小数加一 {:height...
【Conda】 miniconda 使用手册
前言本文是陆爻齐平时经常使用 conda 的一些记录,且作为复习笔记罢 正文创建环境 conda create -n name python=3.9.* 这条语句的意思是创建名字为 name,python 版本为 3.9 中最新的版本的环境,-n 后面跟名字,python 也可先不确定,但还没试过后面安 python。 查看环境 conda env list 会列出所有已有的虚拟环境 删除环境 conda remove -n name --all 删除名字为 name 的环境 克隆环境 conda create -n name --clone other 将名为 other 的环境复制到新环境 name...
【CS61A-Fall-2020】学习记录七 Homework2 题解思路分享
前言观前提示,笔者写的代码答案放在 GitHub仓库 中,此处仅记录过程与心得。 此外,请最好在尝试独立完成该任务后再看本文,否则就很可能失去了体验本项目精华的机会 Higher-Order FunctionsQ1: ProductWrite a function called product that returns the product of the first n terms of a sequence. Specifically, product takes in an integer n and term, a single-argument function that determines a sequence. (That is, term(i) gives the ith term of the sequence.) product(n, term) should return term(1) * … * term(n). 1234567891011121314151617181920def product(n, term): ...
【CS61A-Fall-2020】学习记录六 Lab2 题解思路分享
前言观前提示,笔者写的代码答案放在 GitHub仓库 中,此处仅记录过程与心得。 此外,请最好在尝试独立完成该任务后再看本文,否则就很可能失去了体验本项目精华的机会 正文Q1: WWPD: Lambda the Free有两个问题有点意思。 lambda 与参数1234>>> b = lambda x: lambda: x # Lambdas can return other lambdas!>>> c = b(88)>>> c______ 该问题看似只是普通的 lambda 中传 x,c 还传入了 x 参数值为 88 所以答案是 88 吗? 当然不是,这个问题结合下面这个问题就很显然了。 12>>> c()______ 那么想清楚这个问题的关键,就在于能否分辨 c 和 c() 的含义。 把 88 代入 c 的 lambda 式子,可以换成 c = lambda : 88 本质上,c 其实还是个 lambda 式子,只不过无参数,所以直接调用 c 不会得到...
【播客笔记】《爱的艺术》我要如何学会爱,尤其是,学会爱自己 纵横四海
前言这是陆爻齐收听了 纵横四海 的播客 《爱的艺术》我要如何学会爱,尤其是,学会爱自己...
Hello World
这是陆爻齐用 github page 和 hexo 搭建的自己的博客! 是参考了 0xffff、b站视频教程 和 fluid 使用手册 慢慢开始完善的 陆爻齐后续也写一篇 blog 来总结下博客的配置好了 总之,先把博客园的文章按时间顺序慢慢搬过来好了 Hello,World!
【播客笔记】《我们为什么会受骗》强烈建议每个女生看完这本书再去恋爱! 纵横四海
前言这是陆爻齐收听了 纵横四海 的播客...
【CS61A-Fall-2020】学习记录五 Project1 The Game of Hog 中有意思的点
前言观前提示,笔者写的代码答案放在 GitHub仓库 中,此处仅记录过程与心得。 此外,请最好在尝试独立完成该任务后再看本文,否则就很可能失去了体验本项目精华的机会 函数参数前的*在项目原文件中的dice.py 里的 make_test_dice函数采用这样的方式传参 123def make_test_dice(*outcomes): # 省略内容 pass 我记得python中没像c那样的指针,于是查询资料,小结如下函数参数前一颗*会识别为元组,两颗则识别为字典 比如我要是传 make_test_dice(1, 2, 4, 3),outcomes就是元组(1, 2, 4, 3) 举一个稍微复合一点点的例子 1234567def foo(a, b=10, *args, **kwargs): print (a) print (b) print (args) print (kwargs)foo(1, 2, 3, 4, e=5, f=6, g=7) 上述例子来自菜鸟教程,运行结果为 123412(3, 4){'e': 5,...
【Datawhale AI 夏令营】 机器学习 Task1 体验记录 思考 补充
前言首先感谢 Datawhale 组织这个活动,让我有机会入门机器学习。 嘛,不过这个 Task1 只要跟着速通手册运行给定程序,再拿结果去提交,体验下过程而已,于我而言,更为宝贵的地方是后续的“加餐”,也就是分析题目,精读代码的部分 “加餐”小结分析题目赛题任务是:通过多个房屋历史电力消耗数据等信息,预测房屋对应电力的消耗。 这是所谓的“时间序列问题”,简单地说就是分析数据和预测趋势。 说起来,大一的课程设计也简单做过所谓的“酒吧销量预测”功能,当时是采用“线性回归”来着。 而要解决这样的问题,就大致有建立传统时间序列模型、机器学习模型、深度学习模型的方法。 这三种方法各有利弊,按适合处理数据集规模大小和预测能力升序,按解释性和计算资源降序。 分析代码先贴出代码好了 123456789101112131415161718192021# 1. 导入需要用到的相关库# 导入 pandas 库,用于数据处理和分析import pandas as pd# 导入 numpy 库,用于科学计算和多维数组操作import numpy as np# 2. 读取训练集和测试集# 使用...
【CINTA】 具体数论与代数阅读笔记——第一章 整数和二进制(含加、乘、除)
前言这本书说自己是计算机专业数学入门之入门,成为读者攻读其他经典著作的垫脚石,但个人以为足矣替换掉本校内不知所云的、抽象的、让学生考完后马上全忘的那些课程。本书的 GitHub 仓库在这里。 该笔记并非单纯的整理归纳,而是记录陆爻齐在书中找到的对自己很有感触的部分。 闲话少说,下面是笔记正文。 第一章 整数与二进制1.1 二进制基本性质首先,有两条基本的性质 偶数二进制最末尾的比特是 0;奇数二进制最末尾的比特是 1; 在一个二进制数末尾增加一个 0 等同于在十进制中对这个数乘 2。反过来说,对一个十进制数进行乘 2 操作等同于对其二进制表达左移一个比特。 显然,比如 2 的二进制表示为 0010,3 为 0011, 4即 2*2 为0100。 思考随后提出思考:请问,你认为对一个十进制数进行除 2 等于对其二进制表达右移一个比特吗? 陆爻齐的回答是:是的,对 3,出 2 得 1.5,0011 右移一个比特得 0001.1,正好为 1.5。对 2, 除 2 得 1,0010 右移一个比特得 0001,正好为1。 性质接着在基于“考虑任意自然数 n,所谓 2 的 n 次方...