自定义博客皮肤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)
  • 收藏
  • 关注

原创 Web技术3:Cookie与Session

Session与CookieSession与Cookie的作用都是为了保持访问用户与后端服务器的交互状态。各有优点也各有缺点。Cokkie当一个用户通过HTTP访问一个服务器时,这个服务器会讲一些key/value键值对返回给客户端浏览器,并给这些数据加行一些限制条件,在条件符合时这个用户下次访问这个服务器时,数据又被完整地呆会给服务器。这样服务器就知道这次请求的一些特殊的信息了Cooki...

2018-09-30 12:00:43 274

原创 Web技术2:DNS域名解析

DNS域名解析过程当用户在浏览器中输入域名按下回车之后,比如,请求www.baidu.com。DNS解析大概有以下10个步骤1、浏览器会检查缓存中有没有这个域名对应的解析过的IP地址,如果缓存中有,这个解析过程就结束。浏览器缓存域名也是有限制的,不仅浏览器缓存大小有限制,而且缓存的时间也有限制,通常情况下为几分钟到几小时不等,域名被缓存的时间限制可以通过TTL属性来设置。这个缓存时间太长和太短...

2018-09-26 21:50:20 758

原创 Web技术1:http协议详解

Httphttp协议:Hyper Text Transfer Protocl,即插我文本传输协议,是用于万维网www服务器传输超文本到本地浏览器的传输协议。Http协议是基于TCP/IP协议来进行传递数据的主要特点Http协议是属于应用层的面向对象的协议,有着一下特点简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户...

2018-09-26 16:11:56 472

原创 Java 数据结构7:快速排序算法详解

快速排序快速排序是对冒泡排序的一种改进,采用分治策略,以减少排序过程中的比较次数。快速排序的平均运行时间是O(NlogN)。他的最坏庆幸性能为O(N2)。快速排序的思想就是分治递归,将原数组按照枢纽元分成左边小右边大的情况,在对分成的2个子数组在进行相同的操作,直至子数组中只有一个元素,这时,所有的数字都被成功排序。他的优先就在时间复杂度比较低。快速排序的基本思路第一趟排序,将数组按...

2018-09-25 21:49:24 404

原创 Java 数据结构6:插入,选择,冒泡排序算法

插入排序直接插入排序基本思想是每一步将一个待排序的记录,插入到前面已经排好序的有序序列中去,直到插完所有元素为止。private static void insertionSort(int[] array) { int j; for (int i = 0; i < array.length; i++) { int temp = ar...

2018-09-25 21:19:05 186

原创 Java 数据结构5:Hash详解

哈希表哈希表也称散列表(Hash),Hash表是基于健值对(key - value)直接进行访问的数据结构。但是他的底层是基于数组的,通过特定的哈希函数把key映射到数组的某个下标来加快查找速度,对于哈希表来说,查找元素的复杂度是O(1)我们来看一下HashMap里面的Hash函数是怎么实现的static final int hash(Object key) { int h;...

2018-09-25 14:29:11 338 1

原创 Java 数据结构4:二叉搜索树详解

二叉树什么是树,为什么使用树我们知道,对于数组,查找很快,有序的还可以通过二分法查找,但是插入数据却需要移动一些数据的位置。而链表的插入和删除很快,但是查找数据却需要从head开始遍历,那么有没有一种数据结构能同时具备数组查找快的优点以及链表插入和删除快的优点呢?有,就是树,Hello,树先生!树(tree)是一种抽象数据类型(ADT),用来模拟具有树状结构性质的数据集合。一棵树是一些节点的...

2018-09-18 20:03:16 280

原创 Java 数据结构3:队列及Queue源码详解

队列想栈一样,队列(queue)也是表。然而,使用队列时插入在一端进行而删除在另一端进行,遵循先进先出,后进后出原则,就像排队一样应用1、打印机队列2、还有之前线程里面讲到的,线程池的实现,有有界的和无界的阻塞队列Java中队列的实现其中ArrayBlockQueue的源码,在并发的时候已经介绍过了,可以参考https://blog.csdn.net/qq_2279...

2018-09-15 23:38:58 1610

原创 Java 数据结构2:栈及Stack源码详解

栈栈,相信大家都非常熟悉了,先进先出,后进后出,又叫做LIFO(先进先出)表,一般栈的模型是,存在某个元素位于栈顶,而该元素是唯一的可见元素栈的实现方式1、通过单链表,通过在表的顶端插入实现朴实,通过删除表顶端元素实现pop,top操作知识考察表顶端元素并返回他的值。2、数组实现,就常规push,pop最后的元素,没什么特别的Java中是怎么实现的栈来看一下Stac...

2018-09-13 20:36:32 197

原创 Java 数据结构1:数组及ArrayList源码详解

数组和链表数组的实现使得printList以线性时间执行,但是findKth操作花费常熟时间,这是我们众所周知的。但是插入和删除操作的花费却有着很大的开销,这主要看插入或者删除的位置,如果是在位置0上插入,则需要将整个表都后移一位,最坏的情况是O(N)。链表的出现解决了数组中插入和删除的开销,链表由一系列节点组成,每一个节点均包含表元素和到包含该元素后继元的节点的链,我们称之为next链,...

2018-09-12 21:19:32 347

原创 LdapTemplate对AD域进行查询1000条记录限制,实测有效!

公司的一个项目要从AD上取数据,但是用SpringLdap获取所有用户的时候会默认显示1000条数据,ldapTemplate.search(query().base("OU=xxxx,DC=xxxx").where("objectclass").is("person"), new AdUSerAttributeMapper());原因其实是windows AD域控做的默认限制而已,尝...

2018-09-12 14:53:42 3554

原创 Java设计模式23:访问者模式(Visitor)

访问者模式意图表示一个作用于某对象结构中的各元素的操作。他使你可以在不改变各元素的类的前提下定义中作用于这些元素的新操作适用性1、一个对象结构包含很多类操作,它们有不同的接口,而你想对这些对象实施一些依赖于其具体类的操作。2、需要对一个对象结构中的对象进行很多不同的并且不相关的操作,而你想避免让这些操作污染这些对象的类。3、定义对象结构的类很少改变,但经常需要在此结...

2018-09-10 21:42:46 184

原创 Java设计模式22:模版方法模式(TemplateMethod)

模版方法意图定义一个操作中的算法骨干,而将一些步骤延迟加载到子类中,TemplateMethod使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。换句话讲,就是某些事情可以抽象成一系列方法的顺序执行,有些方法是公用的,有些特殊的可以改变某一个方法的实现(重写),就可以了适用性1、对一些复杂的算法进行分割,将其算法中固定不变的部分设计为模板方法和父类具体方法,而...

2018-09-10 20:44:05 187

原创 Java设计模式21:策略模式(Strategy)

策略模式意图定义一系列算法,把他们一个个封装,并且使得算法可独立于他的客户而变化适用性1、许多相关的类仅仅是行为有异,策略模式提供了一种用多个行为中的一个行为来配置一个类的方法2、需要使用一个算法的不同编特3、算法使用客户不应该知道的数据,可食用策略模式避免暴露复杂的,与算法相关的数据结构4、一个类定义了多种行为,并且这些行为在这个类的操作中以多个条件语句的形式...

2018-09-10 20:11:18 181

原创 Java设计模式20:状态模式(State)

State意图允许一个对象在其内部状态改变时改变他的行为,对象看起来似乎修改了他的类适用性1、一个对象那个的行为取决于他的状态,并且它必须在运行时刻根据状态改变他的行为2、一个操作中含有庞大的多分支条件语句,且这些分支依赖于该对象的状态。这个状态通常用一个或多个枚举常量表示。通常,有多个操作包涵这一相同的条件结构。State模式将每一个条件分支放入一个独立的类中,这使得...

2018-09-10 17:17:29 205

原创 Java设计模式19:观察者模式(Observer)

观察者模式意图定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于他的对象都得到通知并被自动更新适用性1、当一个抽象模型有两个方面,其中一个依赖另外一个2、当对一个对象的改变需要同时改变其他对象,而不知道具体有多少对吸纳个有待改变3、当一个对象那个必须通知其他对象,而它又不能假定其他对象是谁,换言之,你不希望这些对象时紧密耦合的结构...

2018-09-06 21:25:39 190

原创 Java设计模式18:备忘录模式(Mementor)

备忘录模式意图在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以后可将该对象恢复到原先保存的状态。顾名思义,就是提供备忘功能。适用性1、必须保存一个对象在摸一时刻的状态,便于后续对他的恢复2、如果一个用接口来让其他对象直接得到这些状态,将会暴露对象的实现细节并破坏对象的封装性结构Memento备忘录存储原发器对象的内部状态...

2018-09-06 19:37:20 231

原创 Java设计模式17:中介者模式(Mediator)

中介者模式意图用一个中介对象来封装一些列的对象交互。中介者是哥哥对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变他们之间的交互适用性1、一组对象以定义良好但是复杂的方式进行通信。产生的相互依赖关系结构婚恋且难以理解2、一个对象引用其他很多对象并且直接与这些对象通信,导致难以复用该对象3、定制一个分布在多个类中的行为,又不想生成太多子类温馨提示...

2018-09-05 21:27:00 234

原创 Java设计模式16:迭代器模式(Iterator)

迭代器模式意图提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示,其实这个我们就一直在使用List中的Iterator就是迭代器模式实现适用性1、访问一个聚合的对象的内容而又无绪暴露他的内部表示2、支持对聚合对象的多种遍历3、为遍历不同的聚合结构提供一个统一的接口结构Iterator迭代器定义访问和遍历元素的接口Con...

2018-09-04 21:36:51 191

原创 Java设计模式15:解释器模式(Interpreter)

解释器模式意图给定一个语言,定义他的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子动机目前计算机编程语言有好几百种,但有时候我们还是希望能用一些简单的语言来实现一些特定的操作,我们只要向计算机输入一个句子或文件,它就能够按照预先定义的文法规则来对句子或文件进行解释,从而实现相应的功能。例如当输入字符串表达式为“1 + 2 + 3 ”时,将输出计算结...

2018-09-04 19:13:52 159

原创 Java设计模式14:命令模式(Command)

Command意图将一个请求封装成一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作动机开发中,我们经常需要向某些对象发送请求,但是我们并不知道接收者是谁,也不知道被请求的操作是哪个,此时,我们特别希望能够以一种松耦合的方式来设计软件,使得请求发送者与请求接收者能够消除彼此之间的耦合,让对象之间的调用关系更加灵活,可以灵活地指定...

2018-09-04 16:33:44 208

原创 Java设计模式13:职责链模式(Chain Of Responsibility)

Chain of Responsibility意图十多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,知道有一个对象处理它为止动机来看一个某公司请假的流程,按照请假天数,如果不大于1天,可有mentor审批,大于1天不大于2天,由leader审批,大于2天不大于5天,有项目经理审批,若大于5天需有CTO审批,...

2018-09-04 14:42:17 172

空空如也

空空如也

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

TA关注的人

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