自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

吟游诗人——吟唱生命的不朽

八百里分麾下炙,五十弦翻塞外声,沙场秋点兵

  • 博客(55)
  • 资源 (7)
  • 收藏
  • 关注

原创 模拟信号,数字信号,基带信号,宽带信号,频带信号

如题所示几种信号均为计算机网络中出现的信号,且易搞混,在这里进行简单梳理。模拟信号:形状连续,可以设想形如sin(x)的形状数字信号:不连续在链路上传输的信号分成两种:基带信号,宽带信号基带信号(对应数字信号):将数字信号0和1直接用两种不同的电压表示,然后传到数字信道上传输,这种传输叫做基带传输。宽带信号(对应模拟信号):将基带信号调制后形成模拟信号,并在模拟信道上传输,而这种传输...

2019-02-28 16:20:28 12711 3

原创 OSI七层模型与TCP/IP模型的比较

OSI七层模型与TCP/IP模型的背景故事就略过吧,直接进入正题。首先,OSI有七层模型,而TCP/IP模型只有四层,不过一般书上为了方便讲解则将这两者的优点合在一起分为了五层,这里直接按五层进行讨论。OSI模型:层次简介物理层数据链路层网络层运输层会话层表示层应用层...

2019-02-28 16:10:24 471

原创 计算机网络的拓扑模型

计算机网络的拓扑模型有五种,如下表所示:名称优点缺点总线型结构简单,易于组网,成本低传输距离有限,错误检测困难环型...

2019-02-28 10:34:00 673

原创 数据库事务浅析 + 隔离级别分析

数据库事务,简称为ACID,它是用来保证在对数据库进行并发操作时的数据安全,就像java中在并发时为保证线程安全而采用的锁一样,数据库中为保证线程安全则采用了事务,事务本身也是以锁和并发结合为基础的。事务之所以又称为ACID,是因为这是它必须要满足的四个性质的首字母的缩写,那么是哪四个性质呢?1、原子性(Atomicity)所谓原子性就是指事务中的所有操作,要么全部完成,要么全部不完成,不能...

2019-02-27 11:23:33 198

原创 数据库视图浅析

关系型数据库中存在三种关系:基本关系(又叫“基本表”,或“基表”),查询表,视图表。在这儿我们就讲讲视图。视图是一张虚表,它并没有真正地保存数据,而是通过一些操作将多个表的数据通过选择、投影、连接、笛卡尔积等方法组合在一起,形成了一张虚拟的符合表,用来简化查询。举个不是很恰当的例子,一个视图就相当于一个函数,我可以将常用的查询操作做成一个视图,那么以后需要进行这个查询就不再需要写一大堆复杂的代...

2019-02-27 09:30:15 177

原创 数据库五大约束

所谓约束,其实就是一种保障,比如一个属性添加了主键约束,那么就强制保障了它的唯一性和非空性,请带着这样正确的理解去阅读后文。数据库有五大约束,分别是:主键约束(Primay Key Coustraint):唯一,非空唯一约束 (Unique Counstraint):唯一,可以为空,但即便为空也只能有一个检查约束 (Check Counstraint) :申明该列数据的取值范围(如:年龄...

2019-02-26 23:05:24 1038

原创 数据库的三大范式+BC范式

数据库有三大范式和BC范式,我们来详细探讨一下:首先三大范式:第一范式第一范式(1NF):表中所有属性都不能再分,都应该是原子值。这也是数据表的最低的最基本的要求。第二范式第二范式(2NF):在满足第一范式的前提下,还要求每一个非主属性都要完全依赖于任何一个候选码。上面这句话听起来比较抽象,其实也好理解。(下面的主键(限第二范式中)其实指:主键或候选码,这么写的看起来太绕就简写成主键...

2019-02-26 22:15:29 15971 3

原创 where,group by, having order by

使用说明:select 列x[,聚合函数] from 表名 where 筛选条件 group by 列x(是select那里的列x) having 过滤条件 order by 列名(或聚合函数,需要时select那里出现的) [desc | asc]执行顺序:1、 where返回符合条件的结果集2、 group by返回分类结果集3、 select返回选择后的结果集4、h...

2019-02-26 19:50:15 267

原创 数据库性能优化技法

数据库大家都熟悉,但是一般很少会去考虑它的性能问题,毕竟几万几十万条记录的处理,即便性能有差异那也几乎感觉不到,但是若是进入某些大企业,需要处理的数据量非常大,那样如何保证数据库能够持续高速运行、使得用户满意呢?下面介绍两个方面,一个是大量数据插入的优化,一个是数据查询时的优化。大量数据插入优化技法本部分参考资料:https://blog.csdn.net/qq_22855325/ar...

2019-02-26 17:17:10 260

原创 数据库索引总结

注:本文大部分内容为网络资料的转载,我对其进行了整理与总结。如果出处不可考则未标明出处。一、啥叫索引?定义:索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。说白了,索引就是一种能够在数据库查询中,加快查询速度的工具。使用索引需要使用特定的数据结构,来提高查询效率。二、索引有啥?前面提到,索引需要采用特定的数据结构来提高查询效率,那么究竟采...

2019-02-26 11:29:19 151

转载 聚集索引与非聚集索引的总结

本文转载自:https://www.cnblogs.com/s-b-b/p/8334593.html一.索引简介众所周知,索引是关系型数据库中给数据库表中一列或多列的值排序后的存储结构,SQL的主流索引结构有B+树以及Hash结构,聚集索引以及非聚集索引用的是B+树索引。这篇文章会总结SQL Server以及MySQL的InnoDB和MyISAM两种SQL的索引。SQL Sever索引类...

2019-02-26 10:39:19 143

转载 深入浅出数据库索引原理

本文转载自:https://www.cnblogs.com/aspwebchh/p/6652855.html#!comments以下为原文:前段时间,公司一个新上线的网站出现页面响应速度缓慢的问题, 一位负责这个项目的但并不是搞技术的妹子找到我,让我想办法提升网站的访问速度 ,因为已经有很多用户来投诉了。我第一反应觉的是数据库上的问题,假装思索了一下,摆着一副深沉炫酷的模样说:“是不是数据库...

2019-02-26 09:45:13 113

原创 SQL语法基础

每个关系型数据库都有自己的一套SQL语言,但是尽管有部分不同,但是85%以上的语法都是相同的,了解基本语法能极大提高具体数据库的学习效率和编程效率(不过在使用具体的数据库之前最好还是先看看对应的文档),好了那就不多说了,开始吧。1、 数据定义操作对象创建删除修改模式CREATE SCHEMADROP SCHEMA不支持表CREATE TABLEDROP ...

2019-02-25 15:53:12 128

原创 关系数据库的操作

众所周知,关系数据库常见的关系操作有:查询,插入,删除,修改这四种操作,而这四种操作有可以分为两大类数据查询:选择,投影,连接,除,并,交,差,笛卡儿积数据更新:插入,删除,修改在查询操作中,选择,投影,并,差,笛卡儿积是5种基本操作,其他操作可以由这几种操作导出,就比如乘法可以用加法来定义和导出一样。在详细讲述之前,我要着重说明的是,关系模型的操作具有一个非常鲜明的特点,即它操作的对...

2019-02-25 11:15:05 7329

原创 数据库关系模型的三类完整性约束

关系模型中有三类完整性约束,分别是:实体完整性,参照完整性,用户定义完整性实体完整性定义:实体完整性是用于保证关系数据库中每个元组都是可区分的,唯一的。它的意思就是说数据表中每一行都应该有办法将其唯一区分开来,这自然指的就是主键了,而且主键必须不能为空或部分为空。那么它大可以直接叫一些诸如“要有主键”等通俗的名字,但是为何要叫实体完整性呢?首先第一点,“实体完整性”这个名字听起来就很高...

2019-02-25 10:12:10 16147

原创 稀疏矩阵的存储方式

稀疏矩阵就是指一个矩阵中的大部分元素都是0或者是某一个相同的元素,而稀疏矩阵往往有一些有规律的形式,比如上三角、下三角等等,这种有规律的矩阵又称为特殊矩阵。特殊矩阵的储存需要根据特殊矩阵哪点特殊,然后用数学的手段来进行存储,这里就不展开了。我们只讲一般情况下的稀疏矩阵的储存方式。存储方式常见的有两大类,大家也都知道,分别是顺序存储结构和链式存储结构。对于稀疏矩阵,顺序存储结构中常用的方式有...

2019-02-24 23:13:11 5622

原创 数据库的基本关系(基本表)

数据库中有三种关系,分别是:基本关系(又称基本表或基表),查询表,视图表基本表是实际存在的表,查询表是查询结果对应的表,视图表是由基本表和其他视图表导出的表,是虚表,不对应实际存储的数据。下面我们来讲一下基本表所具有的6条性质:列是同质的,即每一列中的分量都是同一类型的数据,来自同一个域不同的列可以来自同一个域,每一列又称之为属性,不同的属性要有不同的属性名列的顺序无关紧要行的顺序也...

2019-02-24 22:19:06 7593

原创 数据库的三级模式与二级映像

在数据库中,模型是数据库中全体数据的逻辑结构和特点的描述,这种描述仅涉及“型”,而不涉及“值”,因此模式是相对稳定的。而现实世界中的数据库,尽管使用的语言、存储的策略、支持的数学模型等等方面都有不同,但是他们的体系结构大都是一样的,即所谓的三级模式结构。三级模式结构分别是:外模式、模式、内模式二级映像功能分别是:外模式/模式映像、模式/内模式映像从下图我们就可以分别看到这三级模式和两级映像...

2019-02-24 21:38:26 2104 1

原创 KMP算法(超容易理解的next数组求法)

我想,既然知道KMP算法了,自然对于其具体如何运作也是有一定的了解的,我也没必要再大费口舌讲废话,大家一定查过很多资料,但是其实也都看的一知半解,好像自己懂了但是又没有理解透,特别是next数组的求法感觉很蛋疼,那么我就来给大家解决一下这个next数组的问题吧,如果对KMP算法没有概念的同学请先去查清楚再过来看看。先讲一下我们后续讲解的一些规范,我们next数组、以及模式串都是从数组的下标1开始...

2019-02-24 12:36:34 687

原创 软件危机(含通俗理解帮助记忆)

软件危机:计算机软件的开发和维护过程中遇到的一系列严重问题。(正常、不正常运行软件都具有这种问题)软件危机的典型表现:对软件开发成本和进度的估计常常很不准确用户对完成的软件系统不满意的现象经常发生软件产品的质量往往靠不住软件常常是不可维护的软件通常没有适当的文档资料软件成本在计算机系统总成本中所占的比例逐年上升软件开发生产率提高的速度跟不上计算机应用的发展趋势我对于上述的理解...

2019-02-23 21:51:21 3656 1

原创 O(1)复杂度求一个栈的最小值

要求一个栈的最小值,第一反应肯定是一个个出栈,那样太蠢了,如何更优呢?第一个思路就是自己定义一个指针,始终指向保存了最小值的那个节点不就行了。看似正确,但是当你最小值的那个节点出栈了,那么如何找到下一个最小值呢?因此,我们需要一个数据结构来保存每一个状态下的最小值。即我们应当知道每当栈中插入一个新元素后的最小值位置,也应当知道每当栈中删除一个元素后的最小值的位置。做法很简单,用另一个栈来记录...

2019-02-23 16:44:08 317

原创 操作系统进程状态模型

操作系统中的进程有三个基本状态,分别是:就绪、运行、阻塞就绪:万事俱备,只欠CPU运行:正在执行阻塞:进程因为等待某些事件的发生而处于等待状态这三个状态合起来,就是操作系统的“三状态进程模型”,如下图:然后我们可能会疑惑,进程难道天生就是就绪态吗?而且进程执行完后又是什么态呢?实际上,进程还具有创建态和终止态。创建态:系统已经为该进程分配PID和PCB,但是还没有给进程提供运行所需...

2019-02-23 13:22:13 6026

原创 判断单链表是否有环,如果有环则找到其环的入口

判断单链表是否有环,有一个很简单的算法,即快慢指针算法。我们可以创建两个指针,一个慢指针slow,一个快指针fast,都是从头结点开始往后遍历。其中满指针一次走一步,即slow = slow->next;,而快指针一次走两步,即fast = fast->next->next;,如果链表有环,那么这两个指针必然会相遇,否则fast指针若先指向了NULL,那么显然链表是可以穷尽的...

2019-02-23 11:36:09 431

原创 两个单链表判断是否相交

本题看似简单,但其实暗藏玄机,有篇博客对这个问题讲的很详细,且分析了很多种方法,我也不打算再重复造轮子了,我这里就算是对他的一个精简版。他的博客地址:https://blog.csdn.net/dawn_after_dark/article/details/73864643开篇借他的一张图:或许我们看到这个题目的时候,马上就能想到这张图,并且以为很简单,因为只要是相交,最后一个节点一定是相...

2019-02-22 21:30:50 311

原创 合并两个有序列表

本来很简单一题,很久没写算法题了居然在细节上纠结了我好久,唉~这种简单题就应该用简单的思路来做…在这也提醒各位,有的题真的只是看起来容易,真的写起来又会有好多乱七八糟的问题了。闲话少说,上题吧,这是leetcode的第21题,各位可以去网站上面刷刷,经过那个测试才知道你的代码会不会有你没发现的问题。分析:首先,题目所给的函数如下,返回是一个指针,如果我在函数内部动态malloc一个链表,...

2019-02-22 21:08:40 753

原创 数据结构及算法知识点与题目整理(答案慢更)

本篇博文将对数据结构及算法的常见的题目进行总结,适合作为工作面试、考研机试与复试、自我检验、期末考试等的一份参考资料,囊括的知识点可能不会很全面,题目和答案都会在日后慢慢更新。栈和队列两个栈模仿一个队列– 思路:栈1为入队,栈顶表示队尾;栈2为出队,栈顶表示队首。入队直接入栈1;出队时,如果栈2不为空,则直接弹出栈首,如果栈2里面没有元素,则将栈1的元素依次弹出并压入栈2。入队时若栈...

2019-02-22 12:02:16 310

原创 C++的重写(覆盖)、重载、重定义(隐藏)、多态

“重写(覆盖)、重载、重定义、多态” 绝对称得上是C++里一个比较经典的问题了,下面我们来层层剖析它。重写(覆盖)override重写又名覆盖,常见于子类继承父类的时候,子类重写父类的某些方法。有如下要求:父类中被重写的方法必须是virtual的子类中进行重写操作的那个方法,访问修饰符和父类的可以不同(即根据自身需要选择public、protected、private), 但是返回值...

2019-02-21 18:17:58 896

原创 纯虚函数和抽象类

虚函数的定义就不啰嗦了,纯虚函数和虚函数类似,但是不提供实现!!!啥意思呢?见下面的例子:这个方法就是纯虚函数,别丢了后边那个=0,它是用来留给子类去实现的。这下大家或许会疑惑,那么包含了这个函数的类怎么创建对象呢?事实上这个类是创建不了实例的,因为包含了一个及以上个纯虚函数的类被称为抽象类。抽象类是不能创建实例的,但是可以创建指向其的指针和引用。它只能通过子类继承,并实现其所有纯虚...

2019-02-21 17:32:41 135

转载 C++的虚拟继承

2019-02-21 16:42:47 145

转载 派生类构造函数、析构函数的定义和调用次序

2019-02-21 16:29:01 193

原创 c++的继承方式——公有、保护、私有

c++的继承方式有三种,这点和java是不一样的,分别是公有、保护、私有。格式如下:class A {...};class B: [private | protected | public] A{ ...}其作用也很简单,就是改变父类的成员的可访问性。可访问性:public > protected > private因此三种继承方式下,子类对于父类的成员的可访问性为...

2019-02-21 15:57:53 239

原创 操作系统中系统调用的执行过程

1、硬件接收到中断信号,立刻保存现场,并查找中断向量表,将CPU控制权转交给系统调用总入口程序。2、对于系统调用总入口程序,也要先保存现场,将参数保存在内核的堆栈中。然后查找系统调用表,将CPU控制权转交给对应的系统调用处理程序或者是内核函数。3、执行系统调用处理程序4、恢复现场,返回用户程序。参考资料:陈向群老师的《操作系统原理》...

2019-02-21 12:56:59 10956 1

原创 C++的类

C++中既然有结构体了,并且在C语言基础上对结构体进行了优化,可以给结构体里面添加方法了,也可以设置访问权限了,那么为何还需要一个类呢?其实首当其冲的原因就是为了安全性,结构体默认访问类型是public的,而类的默认访问类型是private的。虽然在使用上类和结构体大同小异,但是也方便了不少,并且还是有一些需要注意的地方。首先,使用结构体时往往会要typedef xxx,否则用起来名称很长很...

2019-02-21 12:50:27 199

原创 C++函数的默认参数

C++在函数上面花了不少功夫,这个默认参数确实是挺实用的。所谓默认参数就是在不给实参、或者不给够实参的情况下,正常调用函数,且函数那些没给的参数自动赋上默认值。它有几个要求:必须给全部形参设置默认参数,或者就只能从右往左设置默认参数(不这样的话编译器不知道在传实参的时候究竟是传给谁的)如果某个函数存在函数声明,那么就不要在函数定义的地方设置默认参数了,而应该在函数声明的地方设置默认参数。...

2019-02-20 22:48:07 628

原创 C语言与C++的函数原型(函数声明)的区别

所谓函数原型,又称函数声明,就是在调用这个函数之前要先声明一下这个函数,才能让别的函数能够访问到它(如果这个函数定义在调用它的代码块的前面则不用声明)C语言和C++都保留了函数声明这一需求,在声明时都有如下要求:返回值类型与原函数必须相同形参表的类型与顺序必须与原函数相同,但是函数原型可以不写形参名称,即便写了形参名称也可以和原函数不一样但是有一个很细微但是很重大的区别(以下代码均为函...

2019-02-20 22:39:30 4963

原创 C++的引用

“引用”即“别名”,即是某对象的另一个名字。引用的主要用途是为了描述函数的参数(就是形参)和返回值。特别是用于运算符的重载。引用的定义格式:类型& 引用名=变量名;废话少说,看个例子:#include<iostream>using namespace std;int main(){ int i=9; int& ir=i; cout&

2019-02-20 22:26:35 160

原创 指针函数与函数指针

指针函数是函数,函数指针是指针指针函数是返回值为指针的函数函数指针是指向函数的指针关于用法就不造轮子了:https://blog.csdn.net/luoyayun361/article/details/80428882...

2019-02-20 21:42:12 126

原创 void指针

void指针是一种非常特殊的指针,它可以指向的类型是不确定的,可以作为函数的形参,用来表示可以接受任意类型的参数,也可以作为函数的返回值,表示返回值类型的不确定性,而在使用到返回值的时候再对其加以显式转换。举个例子:int a = 6;double b = 5.9;void* c = &a;cout<<"a: "<<a<<endl;cou...

2019-02-20 18:53:16 260

原创 const* 和 *const

const*和*const的区别也是老生常谈了,其实也很简单。比如int const*a;,实际上可以看成是int const (*a),这表示指针a所指向的地址可以变,但是所指向的那个值不能变。而int *const a;,可以看成int* (const a);,我们都知道a的值其实是一个地址,这就表示a所保存的地址是不可以变的,但是这个地址对应的值是可以变的。举个*const的例子: ...

2019-02-20 18:35:46 30339 14

原创 指针数组和数组指针

指针数组是一个数组,数组里的每一个元素都是一个指针如:int *a[10];数组指针是一个指针,这个指针指向这个数组。如:int (*a)[10];注意两者写法上的区别,这是因为()优先级高于[],而[]优先级高于*下面简单讲一下用法:指针数组:将指针数组b指向二维数组aint a[2][3];int *b[2];for(int i = 0; i < 2; i++)...

2019-02-20 18:16:06 100

软件学报模板2016.zip

本文档为《软件学报》2016版的论文模板,也是目前为止(2019年12月底)的最新版本,里面详细介绍了论文写作格式与写作规范,是难得的论文写作范本!

2019-12-28

Simon游戏的制作(详细注释)

Simon游戏,FCC前端学习的最后一个项目

2017-08-14

当地天气(local weather)网页,jQuery,api

网页获取当前位置,并通过当前位置获取现在天气。使用了和风天气的api

2017-08-01

jQuery实现随机颜色弹幕墙

利用jQuery实现的弹幕墙,注释特别详细,支持弹幕的关闭与开启功能,弹幕颜色是随机的,且同一条弹幕可以重复显示,但不会引起弹幕遮挡屏幕的情况

2017-07-12

利用bootstrap与jQuery制作的响应式自适应导航栏

利用bootstrap和jQuery制作的一个响应式导航栏,即能够监听页面滚动事件,当页面滚动到页面某位置时导航栏会自动发生变化。同时点击导航栏滚动时利用简单的jQuery实现了平滑滚动。而且能自适应屏幕大小的变化,监听了onresize事件。

2017-07-11

bootstrap实现响应式自适应导航栏,并实现平滑滚动

利用bootstrap和jQuery制作的一个响应式导航栏,即能够监听页面滚动事件,当页面滚动到页面某位置时导航栏会自动发生变化。同时点击导航栏滚动时利用简单的jQuery实现了平滑滚动。而且能自适应屏幕大小的变化,监听了onresize事件。

2017-07-11

空空如也

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

TA关注的人

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