1-操作系统基础
操作系统基础操作系统概念计算机系统结构
可以看到用户与操作系统是存在直接交互的
操作系统(Operating System OS)是指控制和管理整个计算机系统的硬件和软件资源,并合理组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境,它是计算机系统中最基本的系统软件
通过操作系统提供的内存管理器可以直观的看到操作系统同时管理着软件与硬件
操作系统的功能和目标作为系统资源的管理者(进程:程序的执行过程,执行前需要将程序放到内存中,才能被CPU处理)
提供的功能
处理机管理(CPU处理进程等)
存储器管理(对内存进行管理)
文件管理(文件资源管理器等)
设备管理(摄像头,鼠标,键盘等设备进行管理)
目标安全,高效
作为用户和计算机硬件之间的接口提供的功能
命令接口:允许用户直接使用
联机命令接口:即交互式命令接口(Terminal命令行等),特点是用户输入一条指令,计算机立即做出应答
脱机命令接口:即批处理命令接口(.bat文件等),特点是用户将多条指令以文件等形式保存,通过运行文件,计算机逐条执行指令
程序接口:允许用户通过程序间接使用。如C:\Window ...
5-Springboot进阶1
Springboot进阶1Springboot依赖管理特性利用父项目进行依赖管理利用Springboot开发不可避免的要涉及到使用许多的依赖,而涉及到的依赖一多就可能由于依赖之间的版本问题导致错误的产生。这种时候对于依赖的管理就显得十分重要。
而我们实际开发中可以看到,许多的依赖在配置过程中并不需要指定其版本号,这是因为Springboot已经考虑到由于版本问题导致的依赖引用乱象。所以已经提前进行了依赖管理,而具体的方式就是利用父依赖进行依赖管理。
以上图为例,在Maven配置文件pom.xml中,Springboot一般都已经自动配置了父依赖:spring-boot-starter-parent,查看父依赖文件我们可以看到,其内部还依赖于另外一个父依赖:spring-boot-dependencies
而spring-boot-dependencies则详细的声明了我们日常可能使用到的各种依赖的版本号,即该文件为我们进行了依赖管理
这里需要注意另一个问题,我们使用父项目进行依赖管理的过程中不可避免的涉及到项目需要使用的依赖版本与父项目内部定义的版本号冲突,这种时候我们就可以利用m ...
3-Vue网络应用
Vue网络应用axios基本使用axios是一款易用、简洁且高效的http库,是一个可以用在浏览器和Node.js中的异步通信框架,其主要作用就是实现Ajax异步通信,由于Vue只关注视图层内容,所以作者推荐使用该框架完成网络通信内容
axios功能特点
从浏览器中创建XMLHttpRequests
从node.js创建http请求
支持Promise API(在JS中进行链式编程)
拦截请求和相应
转换请求数据和响应数据
取消请求
自动转换JSON数据
客户端支持防御XSRF
Vue实例的生命周期每一个Vue实例都拥有完整的生命周期,即从开始船舰,初始化数据,编译模板,挂载DOM,渲染以及之后的不断更新渲染直到最后的卸载一系列过程,也就是一个Vue实例从创建到销毁的整个过程
在Vue实例的生命周期中,提供了一系列事件,可以让我们在事件触发时,注册相应的JS方法,利用我们注册的JS方法,更好的控制整个Vue实例(在这些事件响应方法中的this直接指向的是Vue实例),这些JS方法也被称为钩子,下面这幅图中展示了Vue的整个生命周期以及对应位置可以使用的钩子函数
1234567891 ...
2-本地应用:Vue指令
Vue指令v-text指令v-text指令用于设置标签的文本值,有两种设置标签文本值的方式,方式一就是通过v-text指令向标签传入值,但这种传入方式会整个替换掉标签内的全部文本信息,如果我们需要特殊化的修改某一部分文本值,就需要用到第二个方式,使用插值表达式传入值
12345678910111213141516171819<body> <div id="app"> <!--使用v-text指令--> <p v-text="message"></p> <!--使用插值表达式--> <p>{{message}}--使用插值表达式</p> </div> <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script> ...
1-Vue基础
Vue基础
Vue.js是一套构建用户界面的渐进式框架。Vue只关注视图层,采用自底向上增量开发的设计。Vue的目标是通过尽可能简单的API实现响应的数据绑定和组合的视图组件。
基本使用
导入开发版本/生产版本的Vue.js
创建Vue实例对象,设置其el属性和data属性
使用模板语法将数据渲染到页面上
1234567891011121314151617181920212223242526272829<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> & ...
1-JVM基础
JVM基础
JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。
通过上图的结构内容可以看到,JVM是运行在操作系统上的Java虚拟机,其本身并不具备直接执行Java程序的能力,通过在JVM中引入相应的基础类库形成JRE(Java Runtime Environment Java运行环境),JRE才是具备执行Java程序能力的运行环境。在JRE基础上结合相应的编译开发工具就构成了JDK(Java Development Kit Java 语言的软件开发工具包)。而我们实际日常的开发中,正式采用了JDK与相应IDE工具进行开发的模式
JVM的有点主要有以下几点:
一次编写,处处运行
自动内存管理,垃圾回收机制 ...
1-Electron基础
Electron基础安装Electron
NodeJS官网安装node js环境:http://nodejs.org/,安装后可以通过npm -v或node -v检查是否正常安装
创建新文件夹,在文件夹内首先初始nodejs环境:npm init
创建Electron环境,在全局安装:npm install -g electron
检测Electron是否安装成功,electron -v查看Electron版本号
启动Electron服务,在对应文件夹下: electron .
完成一个HelloWorld页面
首先创建html页面并编写相关内容
创建main.js或index.js作为主进程控制文件,编写整个应用进程的启动逻辑
初始化nodejs文件
启动electron服务
测试界面123<body> <h1>Hello World</h1></body>
main.js主进程控制文件1234567891011121314151617var electron =require('electron')va ...
7-数据链路层-逻辑链路控制子层
数据链路层概述保证数据传输的有效,可靠性
差错的检测和控制
流量控制(基于速率/基于反馈)-在数据链路层通常采取基于反馈的模式,即由接收方向发送方提供处理能力大小,发送方根据处理能力提供对应流量
帧(数据链路层处理的协议数据单元PDU)帧的组成:帧头+载荷+帧尾
帧头:包含定位所需要的地址,物理地址信息
载荷:上层网络层传递下来的包
帧尾:校验和,做帧的校验
数据链路层使用物理层提供的服务,所以要将物理层处理的位流(bits)转换成数据链路层能够处理的帧,这个过程就叫做“成帧”。成帧将原始的位流分散到离散的帧中
常见的四种成帧方法
字符计数法
字节填充的标志字节法
比特填充的比特标记法
物理层编码违例法
字符计数法发送方:
在每个帧头部中的第一个字段,标识该帧的长度共有多少字符
接收方:
通过第一个字段,就知道这个帧有几个字符,在哪里结束该帧
优点: 实现简单
缺点: 没有考虑重新同步问题,一旦出错,无法恢复,工程中极少使用
字节填充的标志字节法考虑了重新同步问题,每一帧采用一个特殊字节做帧界,即当前帧的开始与上一个帧的结束
标记
数据
标记
数据
…
将这个特殊 ...
6-数据链路层-介质访问控制子层
介质访问控制子层(MAC子层)概述MAC子层要解决的问题1. 介质的多路访问控制/介质访问控制MAC2. 数据通信方式(单播/广播/组播)
单播(unicast):一对一的通信,是客户端与服务器之间的点到点连接
广播(broadcast):一堆所有的通信,发出的信息,要送达到所有对象
组播(multicast):一对一个组的通信,发出的信息送达到特定组的用户
局域网中采用了共享传输介质的方式来降低成本,共享传输介质上通常采用的就是广播的通信方式
广播网络面临问题一条信道上有多个站点,所以会出现在共享信道(多路访问信道,广播信道)上同时有两个甚至更多的站点同时请求占用网络解决方法:介质的多路访问控制:在多路访问信道上确定下一个使用者(分配信道)
分配信道方式:
静态分配:预先分配信道给用户,对于不同用户也采用相同的信道分配方式
动态分配:信道开放,没有预分配,按照需求临时分配给用户
静态分配已经学习过的静态分配方式:
频分多路复用 FDM(Frequency Division Multiplexing)
时分多路复用 TDM(Time Division Multiplexing ...
5-网络层(下)
链路状态路由选择(Link State Routing)简称LS距离矢量路由法由于不能从全局把握问题,只能从邻居节点获取信息导致了无穷计数,路由环等问题
这些问题可以通过链路状态路由选择加以解决
LS主要思想
发现:发现邻居节点,了解它们的网络地址
设置:设置规定到每个邻居的成本度量
构造:构造分组,包含所了解到的所有信息
发送:将这个分组发送给其他路由器
计算:计算到每个路由器的最短路径
发现发现邻居节点当一个路由器启动时,会向每条点对点线路发送一个特别的HELLO分组,收到HELLO分组的路由器会回送一个应答,应答中包含自己的名字(采用全球唯一的一个名字Globally Unique Name)
设置设置链路成本(开销/量度/代价)可以自动发现设置或是采用人工设置,常见的量度是设置为与链路带宽成反比
延迟也可以作为量度
路由器会发送一个特别的ECHO分组,另一端立刻回送一个应答
通过测量往返时间RTT,可以获得一个合理的延迟估计值
可以通过多次测量,取平均值,保证结果有效性
构造构造链路状态分组:Link State Packet/Adevertisement(LSP/LSA) ...