自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 运输层:帮你理解TCP、UDP的相关知识

运输层位于网络层之上、应用层之下,向它上面的应用层提供通信服务;属于面向通信部分的最高层,也是用户功能中的最底层。从网络层来说,通信的两端是主机;IP数据报的搜捕明确标志了两个主机的IP地址,但是这种说法还不够清楚。通常一个主机中会同时有多个应用程序,数据发送给主机之后又将要发送给哪个应用程序?所以,从运输层的角度来看,通信的真正端点不是主机而是主机的进程,也就是说,端到端的通信是应用进程之间的通信。学习运输层的协议之前我们先来了解一下其功能;运输层的功能运输层有一个很重要的功能:复用...

2020-05-29 10:52:46 404

原创 一篇文章帮你理解网络层功能

文章目录虚电路服务和数据报服务数据报服务虚电路服务网际协议IPIP地址的分类IP地址与硬件地址地址解析协议ARPIP数据报的格式IP层的转发分组网络层位于数据链路层之上,运输层之下;也就是说网络层是基于数据链路层的服务为运输层提供服务的。虚电路服务和数据报服务虚电路服务和数据报是网络层所提供的两种服务,那么究竟什么是虚电路服务?什么是数据报服务?数据报服务为网络层提供无连接服务(无连接服务:不事先为分组的传输确定传输路径,每个分组独立确定传输路径,不同分组传输路径可能不同);每个分组都携带源地

2020-05-28 09:09:30 976

原创 一篇文章帮你搞清楚数据链路层在网络中的作用

文章目录封装成帧透明传输字符计数法字符填充法零比特填充法违规编码法差错控制循环冗余检验CRC海明码(汉明码)流量控制停止等待协议滑动窗口协议可靠传输传输数据使用的链路使用点对点信道(PPP协议)使用广播信道(CSDA/CD协议)计算机网络是很重要的一部分知识,之前也认为很难,因为要分那么多层(五层或七层),而且每一层还有自己的功能和协议,一大堆的东西很不好学;但是后来发现了一个很好的学习方法,就是先熟悉每一层的作用,然后再顺着思考他为了实现这个功能要怎么办?要使用哪些协议?这样不仅能帮助很好的理解,也能

2020-05-27 08:13:27 740

原创 理解摩尔投票法

算法题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字(数组非空,一定存在这个数字)。摩尔投票法算法的本质思想就是:抵消,抵消,抵消,到不能再抵消为止。首先,我们先来了解一下是如何抵消的,抵消就是让数组中任意两个不同的元素进行抵消,一直抵消到最后剩下的就是出现次数唱过数组长度一半的数字了;具体的我们可以举一个例子来说明一下,给定的数组为{1, 2, 3, 2, 2, 2, 5, 4, 2 },具体抵消的过程为:先声明一个数组array,用来存放当前无法抵消的数字; 遍历...

2020-05-25 09:25:11 294

原创 数据链路层功能总结【轻松理解数据链路层】

计算机网络是很重要的一部分知识,之前也认为很难,因为要分那么多层(五层或七层),而且每一层还有自己的功能和协议,一大堆的东西很不好学;但是后来发现了一个很好的学习方法,就是先熟悉每一层的作用,然后再顺着思考他为了实现这个功能要怎么办?要使用哪些协议?这样不仅能帮助很好的理解,也能很高效的去学习。首先,了解过计算机网络的同学都知道,计算机网络的每一层都是基于下层提供的服务为上层提供服务的,所以数据链路层是在物理层提供的服务上向网络层提供服务的;因此数据链路层的作用是将源自网络层来的数据可靠地传输到相邻节.

2020-05-22 17:51:22 939

原创 通过前、中、后序遍历序列中的任意两个构造二叉树【Java实现】

二叉树的前序、中序和后序遍历是二叉树学习中的一个重点,也是二叉树中很基础的一部分,需要我们熟练的运用;通常已知二叉树,很多同学都能很轻松的得到其前序、中序和后序遍历的队列,甚至层序遍历也不在话下,如果是反过来呢?如果是理解不够的同学就会觉得头疼,有点不知道怎么下手,这里我将分享一下我的汇总,可能方法不是最优的,但是一定能帮助理解。在此之前呢,我们需要再回顾一下二叉树的前序、中序和后序遍历的特点;前序遍历:遍历后的序列中节点按照[ 根节点 | 左子树 | 右子树 ]排序,以上图所示为例[ 1 .

2020-05-20 13:56:13 556 2

原创 HTTP和HTTPS的区别【面试常考】

这个是根据查阅别人的博客,并结合自己的思想总结的,发出来是对自己的检验也希望可以帮到大家;如有错误欢迎指出HTTP和HTTPS是计算机网络中很重要的知识点,面试的时候很容易被问他们的区别,可能每个人都会有自己理解;HTTP是明文传输的,传输过程中容易被拦截、修改或者伪造请求;HTTPS则是在HTTP基础上进行进行了一些信息保护,相比HTTP来说更为安全。这是一个简单的回答,但是比较笼统,如果想要找到好的工作,中间的很多细节还是需要我们去仔细研究的。HTTPS和HTTPHTTP是什..

2020-05-19 23:53:05 7188

原创 循环队列的相关条件和公式

已知图个循环队列,队尾指针是rear,队头是front,其中QueueSize为循环队列的最大长度;则:队空条件:rear==front 队满条件:(rear+1)%QueueSize==front 计算队列长度:(rear-front+QueueSize)%QueueSize 入队:(rear+1)%QueueSize 出队:(front+1)%QueueSize...

2020-05-12 21:21:09 463

原创 不使用乘除和任何判断、循环计算1+2+...+n【逻辑符短路】

题目来自于《剑指offer(第2版)》,原题是:求1+2+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。首先,如果我们只是求1+2+...+n的话,正常情况下会有三种方法:公式计算、迭代、递归//方法一:公式计算,利用等差数列前n项和的公式就即可public int sumNums(int n){ return (1 + n) * n / 2;}//方法二:迭代计算public int...

2020-05-10 10:22:40 380

原创 数据结构查找算法

查找算法查找表是由同一类型的数据元素构成的集合。 静态查找表和动态查找表: 静态查找表:在查找表中只做查找操作,而不改动表中的数据元素 动态查找表:在查找表中做查找操作的同时还进行插入数据和删除数据的操作 平均查找长度(SAL):查找成功时,查找的关键字和查找表中的数据元素中进行过比较的个数的平均值 对于具有 n 个数据元素的查找表,查找成功的平均查找长度的计算公式为: Pi 为第 i 个元素被查找的概率;Ci 表示在查找第 i 个元素之前已经进行过比较的次数1、顺序查找.

2020-05-10 09:35:44 890

原创 数据结构之B-树、B+树

1、B-树一颗 m 阶的 B-树,或者本身是空树,否则必须满足以下特性: 树中每个结点至多有 m 棵子树; 若根结点不是叶子结点,则至少有两棵子树; 除根之外的所有非终端结点至少有棵子树; 所有的非终端结点中包含下列信息数据:(n,A0,K1,A1,K2,A2,…,Kn,An); n 表示结点中包含的关键字的个数,取值范围是:⌈m/2⌉-1≤ n ≤m-1。Ki (i 从 1 到 n)为关键字,且 Ki < Ki+1 ;Ai 代表指向子树根结点的指针,且指针 Ai-1 所指的子树

2020-05-10 09:35:09 388

原创 数据结构查找算法之红黑树

基本概念红黑树,本身是一棵二叉查找树,在其基础上附加了两个要求: 树中的每个结点增加了一个用于存储颜色的标志域; 树中没有一条路径比其他任何路径(指的是从任何一个结点开始,一直到其子孙的叶子结点的长度)长出两倍,整棵树要接近于“平衡”的状态。 红黑树对于结点的颜色设置不是任意的,需满足以下性质的二叉查找树才是红黑树: 树中的每个结点颜色不是红的,就是黑的; 根结点的颜色是黑的; 所有为 nil 的叶子结点的颜色是黑的;(注意:叶子结点说的只是为空(nil 或 NULL)的叶子结点!

2020-05-09 16:10:16 284

原创 数据结构查找算法之平衡二叉树【附Java代码实现,图解】

平衡二叉树,又称为 AVL 树。实际上就是遵循以下两个特点的二叉树: 每棵子树中的左子树和右子树的深度差不能超过 1; 二叉树中每棵子树都要求是平衡二叉树; 平衡因子:每个结点都有其各自的平衡因子,表示的就是其左子树深度同右子树深度的差。平衡二叉树中各结点平衡因子的取值只可能是:0、1 和 -1。 二叉排序树转化为平衡二叉树;当平衡二叉树由于新增数据元素导致整棵树的平衡遭到破坏时,就需要根据实际情况做出适当的调整,假设距离插入结点最近的“不平衡因子”为 a。则调整的规律可归纳为以下 4 种情况

2020-05-09 10:36:03 329

原创 数据结构查找算法之二叉查找树(二叉排序树)【附Java代码实现,图解】

基本思想:二叉查找树是先对待查找的数据进行生成树,确保树的左分支的值小于右分支的值,然后在就行和每个节点的父节点比较大小,查找最适合的范围。 这个算法的查找效率很高,但是如果使用这种查找方法要首先创建树。 二叉查找树或者是空树,或者是具有以下特征: 若任意节点的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若任意节点的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 任意节点的左、右子树也分别为二叉查找树。 复杂度分析:它和二分查找一样,插入和查找的时间复杂度均为O(l

2020-05-08 22:13:23 1088

原创 数组地址计算

1、一维数组设数组为A = a1,a2,a3,a4…ai…an;每个数据元素占d个存储单位,则元素a[i]的存储地址为Loc(A[i])=Loc(A[1])+(i−1)∗dLoc(A[i])=Loc(A[1])+(i−1)∗dLoc(A[i]) = Loc(A[1]) + (i-1)*dLoc(A[i])=Loc(A[1])+(i−1)∗dLoc(A[i])=Loc(A[1])+(i−1...

2020-05-07 10:17:36 4150 1

原创 图解设计模式+代码(六):行为型模式

访问者模式1、定义与特点定义:将作用于某种数据结构中的各元素的操作分离出来封装成独立的类,使其在不改变数据结构的前提下可以添加作用于这些元素的新的操作,为数据结构中的每个元素提供多种访问方式。它将对数据的操作与数据结构进行分离,是行为类模式中最复杂的一种模式。 优点: 扩展性好。能够在不修改对象结构中的元素的情况下,为对象结构中的元素添加新的功能。 复用性好。可以通过访问者来定义...

2020-05-06 08:44:23 132

原创 通过位运算实现加法(不使用加减乘除实现加法)

能否不使用加减乘除而实现两数的相加呢?当然可以,接下来将以最简单的方式理解用位运算实现两数相加。首先,十进制的加法大家都非常熟悉,下面我们将十进制的加法进行解析,可分为下面这三步:将数字的各位分别相加,先不管进位的问题 计算产生进位的数字 把上面两步的结果进行相加例如:12 + 15个位和十位数字相加,先不管进位的问题:2 + 5 = 7(个位相加),1 + 1 =...

2020-05-05 21:52:57 702

原创 图解设计模式+代码(五):行为型模式

状态模式1、定义与特点定义:对有状态的对象,把复杂的“判断逻辑”提取到不同的状态对象中,允许状态对象在其内部状态发生改变时改变其行为。 优点: 状态模式将与特定状态相关的行为局部化到一个状态中,并且将不同状态的行为分割开来,满足“单一职责原则”。 减少对象间的相互依赖。将不同的状态引入独立的对象中会使得状态转换变得更加明确,且减少对象间的相互依赖。 有利于程序的扩展。通过定义...

2020-05-05 16:25:48 263

原创 图解设计模式+代码(四):行为型模式

模板方法模式1、定义与特点定义:定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。它是一种类行为型模式 优点: 它封装了不变部分,扩展可变部分。它把认为是不变部分的算法封装到父类中实现,而把可变部分算法由子类继承实现,便于子类继续扩展。 它在父类中提取了公共的部分代码,便于代码复用。 部分方法是由子类实现...

2020-05-05 16:18:53 327

原创 图解设计模式+代码(三):结构型模式

外观模式迪米特法则的典型应用1、定义与特点定义:是一种通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。该模式对外有一个统一接口,外部应用程序不用关心内部子系统的具体的细节,这样会大大降低应用程序的复杂度,提高了程序的可维护性。 优点: 降低了子系统与客户端之间的耦合度,使得子系统的变化不会影响调用它的客户类。 对客户屏蔽了子系统组件,减少了客...

2020-05-03 20:40:06 406

原创 图解设计模式+代码(二):结构型模式

代理模式结构型模式描述如何将类或对象按某种布局组成更大的结构。它分为类结构型模式和对象结构型模式,前者采用继承机制来组织接口和类,后者釆用组合或聚合来组合对象。由于组合关系或聚合关系比继承关系耦合度低,满足“合成复用原则”,所以对象结构型模式比类结构型模式具有更大的灵活性。1、定义与特点定义:由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接...

2020-05-02 08:46:26 314

原创 图解设计模式+代码(一):创建型模式

单例设计模式指一个类只有一个实例,且该类能自行创建这个实例的一种模式 Java中Runtime的源码就是使用单例模式实现的,初次之外还有Windows 的回收站、操作系统中的文件系统、多线程中的线程池、显卡的驱动程序对象、打印机的后台处理服务、应用程序的日志对象、数据库的连接池、网站的计数器、Web 应用的配置对象、应用程序中的对话框、系统中的缓存等常常被设计成单例。 特点: 单例类只有...

2020-05-01 09:31:58 446

空空如也

空空如也

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

TA关注的人

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