研distance——数据结构部分
概念
数据
数据
:信息的载体,在计算机中是符号的集合数据元素
:数据的基本单位,一个整体,由一些不可分割的数据项组成,例如一个学生档案数据对象
:有相同性质的数据元素集合,是数据的子集数据类型
:数据值的类型,和对这个类型特定操作的集合数据结构
:相互之间存在特殊关系的数据元素的集合,这种特殊关系就是所谓的结构。
数据结构包括三个方面
逻辑结构
(数据的逻辑关系,和怎么存储在计算机中无关)存储结构
(数据在计算机中的表示)顺序存储
:元素存储在相邻的地址间,不需要额外索引,可以随机读写,但容易产生外部碎片链式存储
:每个元素不仅存储值,还存储指向下一个元素的指针,不会产生碎片,但占用空间较大索引存储
:建立一个外部索引表,利用索引表对数据进行读写,需要额外空间并管理表格散列存储
:对每个元素用一个哈希函数计算其存储的地址,需要恰当的哈希函数
数据的运算
ADT
(抽象数据类型)构成一个完整的数据结构定义
研distance——计算机组成部分
概论
历史: 电子管->晶体管->集成电路 比较成熟的集成电路出现于1972
冯诺依曼机:
- 采用“存储程序”的工作方式。程序和原始数据送入主存后才能执行,计算机自动逐条执行指令,直至执行结束
- 计算机硬件系统由运算器、存储器、控制器、输入设备和输出设备5大部件组成。
- 存储器分为主存和辅存,对应现在的内存和硬盘,由存储单元组成,存储单元可存储一串二进制代码,称这串代码为存储字,称这串代码的位数为存储字长
- 主存由地址寄存器MAR和数据寄存器MDR以及时序控制逻辑组成,MAR用于寻址,其位数对应着存储单元的个数,存放访问地址,需要译码才能定位到存储单元,MDR的位数和存储字长相等,暂存要从存储器读写的信息,时序控制逻辑产生操作的时序信号
- 运算器的核心是算术逻辑单元ALU,运算器包含若干通用寄存器,用于暂存操作数和中间结果,程序状态寄存器(PSW),也称标志寄存器用于存放运算中的一些状态信息
- 控制器由程序计数器(PC)、指令寄存器(IR)和控制单元(CU)组成
- PC用来存放当前欲执行指令的地址,可以自增1来寻址到下一个指令
- IR用来存放当前的指令,其内容来自主存的MDR,指令中操作码送到CU,地址码送至MAR
- CU通过操作码产生需要的命令序列
- 指令和数据以同等地位存储在存储器中,形式上没有区别,CPU用指令周期的不同阶段区分他们
- 指令和数据均用二进制代码表示。指令由操作码和地址码组成,操作码指出操作的类型,地址码指出操作数的地址
研distance——计算机网络
概论
概念
主流定义:以能够相互共享资源的方式互连起来的自治计算机系统的集合
- 从组成部分上看,一个完整的计算机网络主要由硬件、软件、协议三大部分组成。其中硬件主要由主机(也称端系统)、通信链路(如双绞线、光纤)、交换设备(如路由器、交换机等)和通信处理机(如网卡)等组成
- 从工作方式上看,计算机网络(这里主要指Internet,即因特网)可分为边缘部分和核心部分,边缘系统是由用户主机组成用于通信和资源共享;核心系统为边缘部分提供互联服务
- 从功能组成上看,计算机网络由通信子网和资源子网组成。通信子网由各种传输介质、通信设备和相应的网络协议组成,实现联网计算机之间的数据通信。资源子网是实现资源共享功能的设备及其软件的集合,向网络用户提供共享服务。
基于vue文档的笔记
前置知识
ES
ES modules 是原生 JavaScript 提供的模块功能,逐渐被更多的浏览器支持
形如:
1 |
|
vue基础
应用
每个 Vue 应用都是通过createApp函数创建一个新的应用实例,例如:
1 | import { createApp } from 'vue' |
createApp 的对象实际上是一个组件,每个应用都需要一个“根组件”,其他组件将作为其子组件,最后得到一个树状结构
模板
当根组件没有设置 template 选项时,Vue 将自动使用容器的 innerHTML 作为模板
模板中可以使用指令,指令由 v- 作为前缀,表明它们是一些由 Vue 提供的特殊 attribute,指令最常用的功能是绑定html属性到某个元素
双大括号会将数据解释为纯文本,而不是 HTML。若想插入 HTML,需要使用 v-html 指令:
<span v-html="rawHtml"></span></p>
想要响应式地绑定一个 attribute,应该使用 v-bind 指令<div v-bind:id="dynamicId"></div>
简写语法为:<div :id="dynamicId"></div>
同名简写(3.4以上版本):<div :id></div>
js表达式支持:
1
2
3
4
5
6
{{ number + 1 }}
{{ ok ? 'YES' : 'NO' }}
{{ message.split('').reverse().join('') }}
<div :id="`list-${id}`"></div>
响应式
选项式api使用data 选项来声明组件的响应式状态。此选项的值应为返回一个对象的函数
在 Vue 3 中,数据是基于JavaScript Proxy 实现响应式的,也就是通过一个代理来更新对象状态,vue3中原始对象不会变成响应式代理
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
export default {
data() {
return {
count: 0
}
},
methods: {
increment() {
this.count++
}
},
mounted() {
// 在其他方法或是生命周期中也可以调用方法
this.increment()
}
}
当你修改了响应式状态时,DOM 会被自动更新。但是需要注意的是,DOM 更新不是同步的。Vue 会在“next tick”更新周期中缓冲所有状态的修改,以确保不管你进行了多少次状态修改,每个组件都只会被更新一次
创建有自己状态的方法:
如果需要多个有独立状态的方法,则要在created期间创建这样的函数:
1 |
|
常用api
vue内置指令 常用的用v-bind,v-model,v-if,v-for等,语法都很符合直觉 在组合式 API 中,通过setup脚本块来初始化需要的数据和函数(包括响应式状态),常用 ref()
函数来声明响应式状态:const count = ref(0)
脚本中访问count的值需要解包,即通过count.value
访问,但在模板块中可以自动解包(只有顶级的 ref 属性才会被解包,被包裹在一个列表中的ref不会解包)
vue3提供两种声明响应式变量的方法,reactive和ref,由于响应式都是通过某种代理变量的方法实现的,因此不严谨地说,ref的代理能力更强一点,这包括:
- ref支持基本数据类型 + 引用数据类型(对象和数组) ;reactive只支持引用数据类型
- ref重新分配一个新对象不会失去响应;reactive会
- 还有其他一些场合reactive会失去响应……
因此现在的官方文档中更推荐使用ref
要在组件模板中访问 ref,需要从组件的 setup()
函数中声明并返回它们:
1 | import { ref } from 'vue' |
计算属性 ref:形如以下的ref,computed()
方法期望接收一个 getter 函数,返回值为一个计算属性 ref,用法类似数据的ref,与function的区别是能追踪响应式状态,且响应式状态不改变就不会重新计算
1 | const publishedBooksMessage = computed(() => { |
路由
创建: history
选项控制了路由和 URL 路径是如何双向映射的,详见不同的历史记录模式
1 | import { createMemoryHistory, createRouter } from 'vue-router' |
路由作为一个插件被使用: 1
2
3const app = createApp(App)
app.use(router)
app.mount('#app')useRouter() ;useRoute()
两个函数获取路由器实例和当前路由;组件 RouterView
和 RouterLink
都是全局注册的,可以直接调用,最简单地做法是APP.vue直接整个渲染当前路径的RouterView
routes可以使用参数或者正则匹配,详见官网文档
Pinia
Pinia 是 Vue 的专属状态管理库,可以帮助我们管理共享状态,也就是一些我们希望定义在组件外部,全局可用的状态
引入:
1 | import { createApp } from 'vue' |
研distance——操作系统部分
概论
操作系统
:控制管理计算机的硬件,协调控制资源分配,并为应用程序和用户提供接口以供使用
基本特征
操作系统
的基本特征包括并发,共享,虚拟和异步
并发
并发
是指两个或多个事件在同一时间间隔内发生。操作系统的并发性是指计算机系统中同时存在多个运行的程序,因此它具有处理和调度多个程序同时执行的能力。这是通过类似时间片轮转的机制实现的。
并行性
是指系统具有同时进行运算或操作的特性,在同一时刻能完成两种或两种以上的动作,需要相关硬件的支持,如多流水线或多处理机硬件环境共享
共享
:系统内的某些资源可以供并发的不同进程使用,分为以下几种方式
基于苏大ppt的计算机硬件笔记
`冯·诺依曼计算机特点
– 计算机由五大部件组成
• 输入数据和程序的“输入设备”
• 记忆程序和数据的“存储器”
• 完成数据加工处理的“运算器”
• 控制程序执行的“控制器”
• 输出处理结果的“输出设备”