自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 操作系统:大容量存储结构

目录一、磁盘概述二、磁盘结构1.磁盘结构2.磁盘类型3.磁盘访问时间三、磁盘调度及调度算法1.FCFS调度2.SSTF调度3.SCAN调度4.C-SCAN调度5.LOOK调度和C-LOOK调度6.N-Step-SCAN调度7.FSCAN调度8.调度算法的选择四、磁盘管理1.磁盘格式化一、磁盘概述磁头附着在磁臂上,磁臂将所有磁头作为一个整体而一起移动。盘片的表面逻辑地分为圆形磁道,再细分为扇区。同一磁臂位置的磁道集合形成了柱面。二、磁盘结构1.磁盘结构现代磁盘驱动器可以看做一个一维的逻辑块的数

2020-12-31 16:07:25 887

原创 操作系统:文件系统的实现

目录一、文件系统结构二、文件系统实现1.概述2.虚拟文件系统三、目录实现1.线性列表2.哈希表四、磁盘空间的分配方法1.连续分配2.链接分配3.索引分配五、磁盘空闲空间的管理1.位向量2.链表3.组4.计数六、文件系统的性能和效率七、文件系统的恢复一、文件系统结构磁盘的逻辑单元为块,内存和磁盘之间的I/O传输以块为单位执行。磁盘的特点可以原地重写,可以从磁盘上读一块儿,修改该块,并将它写回到原来的位置可以直接访问磁盘上的任意一块。因此,可以方便地按顺序或随机访问文件文件系统需要提供高效快捷磁

2020-12-31 14:39:13 7084 3

原创 操作系统:文件系统

目录一、文件概念1.文件属性2.文件操作二、访问方法1.顺序访问2.直接访问(相对访问)3.索引文件三、目录与磁盘的结构1.目录概述2.单级目录3.两级目录4.树形目录5.树形目录6.通用图目录四、文件系统安装五、共享文件1.多用户2.远程文件系统参考一、文件概念操作系统对存储设备的物理属性加以抽象,从而定义逻辑存储单位,即文件从用户角度看,文件是逻辑外存的最小分配单元;也就是说数据只有通过文件才能写到外存。通常,文件表示程序和数据根据文件类型的不同可以存储不同类型的信息,如源程序、文本数据、照片、

2020-12-27 15:42:00 700

原创 操作系统:虚拟内存管理

目录一、背景二、请求调页1.基本概念三、写时复制四、页面置换1.基本页面置换2.FIFO页面置换虚拟内存允许执行进程不必完全处于内存一、背景虚拟内存是内存管理的一种技术,它允许执行进程时不必完全载入内存,可以部分程序载入到内存优点:逻辑地址空间可大于物理地址空间可以被多个进程共享地址空间可以提供更有效的进程创建虚拟内存将用户逻辑内存和物理内存分开,这在现有物理内存有限的情况下,为程序员提供了巨大的虚拟内存。虚拟内存大于物理内存的图例进程的虚拟地址空间就是进程如何在内存中存放的逻

2020-12-26 17:17:21 773

原创 数据库系统概论:数据库设计

目录数据库设计分为以下六阶段1.需求分析数据字典2.概念结构设计3.逻辑结构设计E-R图向关系模型的转换4.物理结构设计5.数据库实施6.数据库运行和维护数据库设计分为以下六阶段1.需求分析需求分析任务是通过详细调查现实世界要处理的对象,充分了解原系统的工作状况,明确用户的各种需求,然后在此基础上确定新系统的功能调查重点是“数据”和“处理”,通过调查、收集和分析,获得用户对数据库的如下要求:信息要求:用户需要从数据库中获得信息的内容和性质,有信息要求可以导出数据要求,即在数据库需要存储哪些数据

2020-12-25 16:48:19 637

原创 操作系统:内存管理

目录一、背景二、交换三、连续内存分配1.内存分配2.碎片四、分段五、分页1.基本方法2.硬件支持3.保护一、背景二、交换进程必须在内存中以便执行,不过进程可以暂时从内存中交换到备份存储上(通常是快速磁盘),当需要再次执行时再调回到内存交换算法,如优先级调度算法:低优先级交换出,高优先级交换进;滚出(roll out), 滚入(roll in)交换时间(转移时间):转移时间与交换内存空间量成正比问:将交换出的进程再交换回来的时候,应该调回哪个内存空间?编译时绑定和加载时绑定。必须回到原位

2020-12-25 15:37:42 1057 4

原创 数据库系统概论:并发控制

目录前言一、并发控制概述二、封锁三、封锁协议1.一级封锁协议2.二级封锁协议3.三级封锁协议四、活锁和死锁1.活锁2.死锁五、并发调度的可串行性六、两段锁协议参考前言在单片机系统中,事务的并发执行实际上是这些事务的并行操作轮流交叉执行,这种执行方式称为交叉并发方式多个事务真正的并行运行,这种并行执行方式称为同时并发方式。一、并发控制概述事务是并发控制的基本单位,保证事务ACID特性是事物处理的重要任务,而事务的ACID特性可能遭到破坏的原因之一是多个事务对数据库的并发操作造成的。为保证事务的隔离性

2020-12-24 17:05:51 1788

原创 数据库系统概念:数据库恢复技术

目录前言一、事务的基本概念1.事务2.事务的ACID特性前言事务处理技术主要包括数据库恢复技术和并发控制技术这章讲述数据库恢复技术一、事务的基本概念1.事务所谓事务是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。一个事务可以是一条SQL语句、一组SQL语句、整个程序事务通常以BEGIN TRANSACTION开始,以COMMIT或ROLLBACK结束。COMMTI表示提交,即提交事务的所有操作,具体的说是将事务中所有对数据库的更新写回到磁盘上的物理数据

2020-12-24 15:12:11 2034 1

原创 操作系统:死锁

目录前言一、系统模型二、死锁特征三、死锁处理方法四、死锁预防五、死锁避免前言在多道程序环境中,多个进程可以竞争有限数量的资源。当进程申请资源时,如果没有可用资源,那么这个进程进入等待状态。有时,如果所申请的资源被其它等待进程占有,那么该进程可能再也无法改变状态。这种情况称为死锁一、系统模型资源分为多种类型,每种类型有一定数量的实例。资源类型R1, R2, . . ., Rm, 如CPU, 内存空间, I/O 设备,文件每个资源类型Ri有Wi个实例正常操作模式下,进程只按如下顺序使用资源:

2020-12-24 10:46:20 494

原创 数据库系统概论:数据库安全性

目录一、数据库安全性概述二、数据库安全性控制1.用户标识与鉴别2.存取控制3.视图控制4.审计5.数据加密一、数据库安全性概述数据库的安全性是指保护数据库以防止不合法使用所造成的数据泄露、更改或破坏数据库的不安全因素非授权用户对数据库的恶意存取和破坏为阻止非法操作,保证数据免受未授权访问和破坏,数据库管理系统提供安全措施主要包括用户身份鉴别、存取控制和视图等技术数据库中敏感信或重要数据被泄露为防止数据泄露,数据库管理系统提供的主要技术有强制存取控制、数据加密存储和加密传输等另外安全要求较高

2020-12-23 15:39:50 1615 1

原创 操作系统:同步

目录前言一、背景二、临界区问题三、Peterson解决方案四、硬件同步五、互斥锁六、信号量七、经典同步问题八、管程前言协作进程能与系统内的其他执行进程互相影响。协作进程或能共享逻辑地址空间,或能通过文件或消息来共享数据。然而,共享数据的并发访问可能会导致数据的不一致。本章讨论多种机制,以便确保共享同一逻辑地址空间的协作进程能有序执行,从而维护数据的一致性。一、背景如果没有进程间的同步保障机制会发⽣什么样的问题?发生竞争条件问题,即多个进程并发访问和操作同一数据并且执行结果与特定的访问顺序有关。

2020-12-22 14:54:16 1453 1

原创 操作系统:进程调度

目录前言一、基本概念二、调度准则三、调度算法四、线程调度五、多处理器调度六、实时CPU调度参考前言CPU调度是多道程序操作系统的基础。对于支持线程的操作系统,操作系统实际调度的是内核级线程而非进程,不过,术语进程调度和线程调度常常交替使用。本章在讨论一般调度概念时,采用进程调度;在针对线程特定概念时,采用线程调度一、基本概念多道程序的目的是,始终允许某个进程运行以最大化CPU的利用率。1.CPU-I/O执行周期进程执行包括周期进行CPU执行(CPU区间)和I/O等待(I/O区间)。进程在执行

2020-12-18 22:06:40 1074 1

原创 操作系统:多线程

目录一、概述二、多线程模型三、线程库四、多线程问题参考一、概述用pthread_create() 创建线程相对创建进程,创建线程比较简单,只需要复制堆栈和寄存器的内容线程是运行在应用进程里的、比进程更小的运行单位一个应用程序通常作为具有多个控制线程的一个进程实现。每个线程是独立的调度对象。 一个进程可以拥有单个或多个线程,并共享内存空间。一个进程可以拥有多个线程,而且线程之间共享以下内容代码段,全局变量打开的文件标识符工作环境,包括当前目录,用户权限等线程的运行是进程内部的执行轨迹

2020-12-17 20:40:05 715

原创 JavaIO流学习总结

JavaIO流文章目录JavaIO流一、什么是IO流?二、IO流的分类三、IO流的分析总结一、什么是IO流?IO,即输入和输出,是指应用程序和外部设备间的数据传输。流:代表任何有能力产出数据的数据源对象或者是有能力接受数据的接收端对象 < Thinking in Java>流的本质:数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。流的特征:先进先出顺序存取。即顺序读或顺序写(RandomAccessFile除外)只读或只写。即流通道是单向的,只能读或写。

2020-12-15 20:07:35 134

原创 LeetCode 225. 用队列实现栈---Java题解

思路:Queue的特性是先进先出Stack的特性是先进后出如何让进入Queue的数据后出呢?反转整条队列,也就是每进入一个数据,对整个队列进行反转如何反转?1.使用另一个队列辅助反转2.原地反转使用另一个队列辅助反转class MyStack { /** Initialize your data structure here. */ //outQueue作为辅助队列,同时保存已经反转好的队列 private Queue<Integer> inQu

2020-12-14 10:54:19 85

原创 Java基础-二叉树的遍历

二叉树的遍历以下代码以遍历二叉树并将其值加入list中返回为例//节点代码public class TreeNode { int val; TreeNode left; TreeNode right; TreeNode() {} TreeNode(int val) { this.val = val; } TreeNode(int val, TreeNode left, TreeNode right) { this.val =

2020-12-13 23:04:14 101

原创 Java设计模式之观察者模式

Java观察者模式文章目录Java观察者模式一、什么是观察者模式二、具体实现参考一、什么是观察者模式当对象间存在一(被观察者)对多(观察者)的依赖关系时,使用观察者模式。观察者模式:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新,是一种对象行为型模式。观察者模式包含的四个角色:抽象被观察者角色:把所有对观察者对象的引用保存在一个集合中,每个被观察者角色都可以有任意数量的观察者。被观察者提供一个接口,可以增加和删除观察者角色。一般用一个抽象

2020-12-12 12:56:00 119

原创 操作系统:程序的编译、链接、加载、地址绑定

文章目录一、基本概念二、编译三、地址绑定四、动态链接和静态链接五、动态加载参考一、基本概念程序是有代码、数据、进程控制块组成的1.什么是数据?数据指程序中的全局变量、静态变量、常量。2.什么是指令?除了数据剩下的就都是指令。int main(){ int a=10;}注意:a是局部变量,它并不是数据,而是一条指令,指令功能是在函数栈帧上开辟四个字节,并向其中写入指定值。3.什么是符号?在程序中,所有数据都会产生符号,而对于代码段只有函数名会产生符号。而且符号的作用域有global和

2020-12-11 23:09:26 2600 1

原创 Java:Comparator和Comparable使用

Comparable//源码public interface Comparable<T> { public int compareTo(T o);}Comparable位于包java.lang下Comparable是排序接口,实现该接口的的类支持排序,接口中通过x.compareTo(y)比较大小。若返回负数,意味着x比y小;返回零,意味着x等于y;返回正数,意味着x大于y。Comparable是在集合内部实现方法来实现的排序,相当于内部比较器一些支持排序的类(Stri

2020-12-10 15:01:22 229

原创 Java设计模式之策略模式

Java策略模式文章目录Java策略模式前言一、策略模式是什么?二、策略模式的简单实现三、策略模式的优缺点四、参考前言今天在学习时遇到了Comparator,发现之前记忆的有些模糊了,便重新温习,发现了Comparator便使用了策略模式,所以又简单学习了策略模式,用本篇来简单记录。一、策略模式是什么?策论模式(StrategyPattern),简单地说就是对象动态切换不同“策略”,使对象有不同的行为。策略模式封装了变化。策略模式又叫算法簇模式。它定义了一系列的算法用来完成相同的工作。策略模式让算

2020-12-08 22:40:47 559

原创 Java设计模式之装饰者模式

装饰者模式文章目录装饰者模式一、什么是装饰者模式?二、装饰者模式实现一、什么是装饰者模式?即动态的给对象增加额外的功能,也就是动态对对象进行增强。要点: 装饰者与被装饰者拥有共同的超类,继承的目的是继承类型,而不是行为。由于继承关系,无论我们包装多少层,都是 is-a的关系(即被装饰后的被装饰者is a 被装饰者)三种增强方式:继承、装饰者模式、代理模式继承的缺陷:如果拓展功能很多,势必会有很多子类,增加系统复杂性;并且子类实现需求后,增强的内容是固定的。二、装饰者模式实现基本步骤:定义

2020-12-07 22:47:56 145

原创 Java设计模式之代理模式

Java代理模式文章目录Java代理模式一、什么是代理模式?二、静态代理三、动态代理三、CgLib代理四、参考一、什么是代理模式?代理模式是对象的结构模式。代理模式(Proxy)就是给某个对象提供一个代理对象,通过代理对象控制对原对象的引用。这样可以在原对象的基础上增强格外的功能。生活中处处都是代理。 举个例子:某明星可以去拍电影,唱歌,但不能什么事都自己干,所以他/她请了个经纪人替他排期,给明星安排什么时候拍戏,什么时候录歌。(可能不太恰当~~)二、静态代理身为明星,唱歌演戏不能少,所以

2020-12-06 10:19:51 193

原创 LeetCode 215. 数组中的第K个最大元素---Java(优先队列、快速排序)

题目:在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例2:输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4说明: 你可以假设 k 总是有效的,且 1 ≤ k ≤ 数组的长度。一般求解第K大或第K小的问题都可以通过快排和优先队列(最小堆、最大堆)来解决。方法1:使用快速排序进行分治众所周知,每次快排都可以固定某个元

2020-12-05 17:36:47 395

原创 Java反射学习总结

Java反射文章目录Java反射一、反射是什么?1.Java反射机制2.Class类二、如何获得Class对象三、获取类实例及成员四、反射的其它使用五、参考一、反射是什么?1.Java反射机制在程序运行时动态加载类并获取类的详细信息(属性,构造方法,方法等),并且可以操作类或对象的属性和方法。本质:JVM得到class对象,再通过class对象进行反编译,从而获取对象的各种信息。反射最重要的用途就是开发各种通用框架。搞懂了反射以后,可以帮助理解框架的一些原理。所以说有一句很经典的话:反射是框架设

2020-12-04 20:10:01 162

原创 使用QueryRunner连接数据库获取数据为null

存数据的类(如:Student类)要有正确的setter方法(set+对应列名)。如: QueryRunner queryRunner=new QueryRunner(Demo3.comboPooledDataSource); String sql = "SELECT * FROM S"; try { List<Student> list=(List) queryRunner.query(sql,new BeanListHandler

2020-12-04 15:12:53 713 2

原创 Javaweb项目报错java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver

没有找到驱动包。解决方法:项目–>web–>WEB-INF–>lib–>sqljdbc.jar驱动包百度网盘:https://pan.baidu.com/s/1gC8jiQKlJeEuzkPRtSPiig提取码:sog6网盘整理了sqlserver驱动包以及DBCP连接池包、C3P0连接池包、Dbutils工具类包...

2020-12-04 15:01:47 180

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除