自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

lx_Frolf的博客

文明交流,不喜勿喷。

  • 博客(20)
  • 收藏
  • 关注

原创 http,https协议

Http 协议的组成http请求分为两部分, 一个是客户端的请求信息,一个是服务端的响应信息。RequestPOST https://mp.csdn.net/mdeditor# HTTP/1.1方法 url/uri 协议的版本号 1.1ResponseHTTP/1.1 200 OK协议版本号 响应状态码 状态码对应的原因URL(Uniform Resource Locator...

2018-10-30 09:10:39 579

原创 TCP,IP通信协议

一个 http 请求,在整个网络中的请求过程当应用程序用T C P传送数据时,数据被送入协议栈中, 然后逐个通过每一层直到被当作一串比特流送入网络。其 中每一层对收到的数据都要增加一些首部信息当目的主机收到一个以太网数据帧时,数据就开始从协议 栈中由底向上升,同时去掉各层协议加上的报文首部。每 层协议盒都要去检查报文首部中的协议标识,以确定接收 数据的上层协议。这个过程称作分用为什么有了...

2018-10-30 09:01:32 356

原创 SOA架构和微服务架构的比较

SOA架构SOA全称(Service Oriented Architecture),中文意思为 “面向服务的架构”,它是一种设计方法,其中包含多个服务, 服务之间通过相互依赖最终提供一系列的功能。一个服务 通常以独立的形式存在于操作系统进程中,各个服务之间 通过网络进行调用。 跟 SOA 相提并论的还有一个 ESB(企业服务总线),简单 来说ESB就是一根管道,用来连接各个服务节点。为了集 成不...

2018-10-29 12:57:22 1184

原创 领域驱动设计

领域驱动设计的概念领域驱动设计(DDD,Domain-Driven Design):软件开发不是一蹴而就的事情,不可能在不了解产品或行业领域的前提下进行软件开发,在开发前,通常需要进行 大量的业务知识梳理,然后才到软件设计的层面,最后才 是开发。而在业务知识梳理的过程中,我们必然会形成某个领域知识,根据领域知识来一步步驱动软件设计,就是领域驱动设计的基本概念。为什么需要 DDD业务初期,功能...

2018-10-29 12:54:29 471

原创 分布式架构的基本理论和高可用设计

分布式架构的基本理论及应用分布式一致性对于不同业务的产品,我们对数据一致性的要求 是不一样的,比如12306要求的是数据的严格一致性,而银行转账要求的是数据的最终一致性,所以,用户在使用不同的产品的时候对数 据一致性的要求是不一样的 。在分布式系统中要解决的一个重要问题就是数据的复制,因为数据库复制期间存在延时。所谓的分布式一致性问题,是指在分布式环境中引入数据 复制机制之后,不同数据节点...

2018-10-29 12:51:31 479

原创 构建分布式架构的重要因素

一.冯诺依曼模型:计算机体系中的经典理论-冯.诺依曼体系:计算机硬件由运算器、 控制器、存储器、输入设备、输出设备五大部分组成。在分布式领域中,不管架 构怎么变化,计算机仍没有跳出该体系的范畴。二.分布式领域中冯诺依曼模型的变化1.输入设备的变化在分布式系统架构中,输入设备可以分两类,第一类是互相连接的多个节点,在接收其他节点传来的信息作为该节点的输入;另一种就是传统意义上的人机交互的输...

2018-10-29 12:44:37 749

原创 分布式架构的演进过程

一.分布式架构的发展过程1946年2月14 , 世界上第一台电子数字计算机诞生在美国宾夕法尼亚大学大学,它的名字是:ENIAC; 这台计算机占地170平米、重达30吨,每秒可进行5000次加法运算。 第 一台电子计算机诞生以后所带来的影响是单台计算机的性能每年都在提升:从最早的 8 位 CPU 到现在的 64 位 CPU ;从早期的 MB 级内存到现在的 GB 级 别 内 存 ;从 慢 速 的 ...

2018-10-29 09:08:14 577

原创 java中的数据结构——图

图是一种以网络形式相互连接的节点,图是一种与树有些相似的数据结构,图通常有一个固定的形状, 这是由物理或抽象的问题所决定的。图包含由边连接的顶点。类型,无向图,有向图(边有方向,通常用箭头表示)图可以用两种形式表示,邻接矩阵,邻接表,邻接矩阵或邻接表提供了关于当前顶点的位置信息,当前 顶点通过边与哪些顶点相连。深度优先搜索 在搜索到尽头的时候,深度优先搜索使用栈标记下一步的走向。 栈的内容就...

2018-10-24 09:13:06 5292

原创 java中的数据结构——栈

栈的工作原理,后进先出。栈,队列是比数组和其他数据结构更抽象的结构,主要通过接口对栈,队列进行定义,而他们的主要实 现机制对用户是不可见的。栈的主要机制可以用数组来实现,也可以用链表来实现。优先级队列的内部 实现可以用数组或一种特殊的树(堆)来实现。 栈只允许访问一个数据项,即最后插入的数据项。栈的应用,比如调用一个方法时,把它的返回地址和 参数压入栈,当方法结束返回时,那些数据出栈。操作...

2018-10-24 09:06:59 5494

原创 java中的数据结构——数组

在Java中,数组非常常用,大部分的数据结构也是基于数组来实现的。与数组有关的话题:1.在java中,声明一个数组过程中,是如何分配内存的?A. 当声明数组类型变量时,为其分配了(32位)引用空间,由于未赋值,因此并不指向任何对象;B.当创建了一个数组对象(也就是new出来的)并将其地址赋值给了变量,其中创建出来的那几个数组元素相当于引用类型变量,因此各自占用(32位的)引用空间并按其默认...

2018-10-24 09:01:15 1328

原创 java中的数据结构——树

树树形结构是一种层级式的数据结构,由节点和连接它们的边组成, java语言编写的程序中常常用引用来表示边。根是树中顶端的节 点:它没有父节点。节点表示保存在树中的数据对象。非平衡树是 指根左边的后代比右边多,或者相反。 区分树和图的主要特征是树中不存在环路。树的节点 Root,parent,child,leaf,sibling 。树的主要类型 N元树 平衡树 二叉树 二叉搜索树 AVL树 红...

2018-10-22 19:05:49 6234

原创 java中的数据结构——链表

链表链表也是线性数据结构,与数组相比,在内存分配、内部结构及数据插入和删除的操作上均有不同。 链表用途广泛,适用于许多通用的数据库,也可以取代数组,作为其他存储结构的基础。 在链表中,每个数据项都被包含在链节点中,一个链节点是某个类的对象,这个类叫做Link。因为一个 链表中有许多类似的链节点,所以要用一个不同于链表的类来表达链节点。每个Link对象都包含一个对 下一个链节点引用的字段,即nex...

2018-10-22 19:00:42 1069

原创 java中的数据结构——哈希表

哈希表哈希法是一个用于唯一标识对象并将每个对象存储在一些预先计算的唯一索引(键)中的过程,因此, 对象以键值对的形式存储,键值对的集合称为字典,可以使用键搜索每个对象。哈希法有很多不同的数 据结构,但最常用的是哈希表。 哈希表通常使用数组实现,它可以提供快速的查找和插入操作,哈希表不仅速度快(比树快),编程实 现也相对容易。缺点:基于数组,数组创建后难以扩展,某些哈希表被基本填满时,性能下降的...

2018-10-22 18:55:04 822

原创 java中的数据结构——队列

队列与栈相似,队列也是顺序存储元素的线性数据结构,但队列是先进先出。操作插入:put,add,enque删除:delete,get,deque 插入数据项的队尾:back,tail,end 移除数据项的队头:head查看:peek,返回队头数据项的值,并不从队中删除这个项。新建:new 队空移除,队满插入都会报错。 Enqueue,Dequue,isEmpty,top队列的效率 和栈...

2018-10-22 18:50:46 803

原创 java中的数据结构——堆

堆这里的堆是一种特殊的二叉树,不是java中用关键字new得到的计算机内存中的可用空间。堆的特点:1.它是完全二叉树,除了树的最后一层节点不需要是满的,其他的 每层从左到右都完全是满的;2.通常用一个数组表示;3.堆中的每个节点都满足堆的条件,即每个节点的关键字都大于或 等于这个节点的子节点的关键字。 堆是完全二叉树的事实说明表示堆的数组中的下标对应的每个单元 都有值。扩展堆数组 在程...

2018-10-22 18:47:29 1070

原创 java中的排序算法——冒泡排序

冒泡排序工作原理: 重复的访问要排序的序列,一次比较两个元素,如果他们的顺序错误就把它们交换过来,重 复进行访问,直到排序完成,越小的元素会经过不停的交换慢慢浮到序列的最上层。 即每轮循环把最大的数放在最后,与选择排序的区别,无需记录最大数的位置,一边比较一边交换位置。Java代码如下:输出结果:时间复杂度冒泡N-1轮,每轮最长N-1次,最短1次,总共(N-1)+(N-2)+……+1...

2018-10-22 18:40:58 230

原创 java中的排序算法——快速排序

快速排序快速排序是最流行的排序算法,在大多数情况下,快速排序都是最快的,执行时间为O(N*logN)级。快速排序通常比其他算法更快,因为它的内部循环在大部分的架构上效率很好。快速排序使用分而治之 的策略来把一个串行分为两个子串行。一般采用元素组合的第一个元素作为基准值,小的放在一边,大 的放在一边,在采用递归的方法分别对两边的元素集合进行循环排序。 理想状态下,应该有一半的数据项大于选择的枢纽...

2018-10-22 18:38:15 245

原创 java中的排序算法——基数排序

基数排序原理:将整数按位数切割成不同的数字,然后按每个位数分别比较。由于整数也可以表达字符串和特定 格式的浮点数,所以基数排序也不一定只能用于整数。当数据量很多,而数据值较小时具有效率优势。Java代码如下:运行结果:效率: 在绝大多数的情况下,算法的执行效率为O(N*logN),和快速排序算法相同,与归并排序类似,基数排序 所需要的存储空间是快速排序的两倍时间复杂度循环次数,...

2018-10-22 18:34:00 256 1

原创 java中的排序算法——堆排序

堆排序利用堆这种数据结构设计的一种排序算法。堆是一个近似完全二叉 树的结构,并同时满足堆的性质:子节点的键值或索引总是小于 (或大于)它的父节点。对于大(小)顶堆而言,堆顶元素的权值 大(小)。堆排序是一个非常稳定的算法,对于堆排序而言,数 据的初始顺序对它的复杂度并没有影响。原理:将待排序的数组建堆,然后不断的将堆顶元素与数组中的 后一个元素交换位置,就实现了按照大或小的排序。 代码实现...

2018-10-22 18:29:50 234

原创 Java中的各种数据结构和算法的比较

线性表相关:线性表是一种逻辑结构,相同数据类型的N个数据元素的有限序列,除了第一个元素外,每个元素有且仅有一个直接前驱,除了最后一个元素外,每个元素有且仅有一个直接后继。线性表的特点:1.元素个数有限2.逻辑上元素有先后次序3.数据类型相同4.仅讨论元素间的逻辑关系线性表的层次关系:栈和队列是两种操作受限的线性表:栈的插入和删除只能在表尾端进行,即栈顶;队列只能在表尾插入元素,在...

2018-10-22 18:24:51 1343

空空如也

空空如也

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

TA关注的人

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