<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[丹妮专栏]]></title><description><![CDATA[I have a dream]]></description><link>https://blog.youkuaiyun.com/u010796790</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; u010796790]]></copyright><item><title><![CDATA[【读书笔记】大话设计模式—代理模式]]></title><link>https://blog.youkuaiyun.com/u010796790/article/details/52927917</link><guid>https://blog.youkuaiyun.com/u010796790/article/details/52927917</guid><author>u010796790</author><pubDate>Tue, 25 Oct 2016 22:18:11 +0800</pubDate><description><![CDATA[代理模式（使用频率：4颗星）：

      代理模式(Proxy)：为其他对象提供一个代理以控制对这个对象的访问。






代理模式：给某一个对象提供一个代理或占位符，并由代理对象来控制对原对象的访问。

Proxy Pattern: Provide a surrogate or placeholder for another object to control acc]]></description><category></category></item><item><title><![CDATA[【读书笔记】大话设计模式—适配器模式]]></title><link>https://blog.youkuaiyun.com/u010796790/article/details/52927831</link><guid>https://blog.youkuaiyun.com/u010796790/article/details/52927831</guid><author>u010796790</author><pubDate>Tue, 25 Oct 2016 22:12:23 +0800</pubDate><description><![CDATA[适配器模式（使用频率：4颗星）：


 适配器模式可以将一个类的接口和另一个类的接口匹配起来，而无须修改原来的适配者接口和抽象目标类接口。适配器模式定义如下：





适配器模式(Adapter Pattern)：将一个接口转换成客户希望的另一个接口，使接口不兼容的那些类可以一起工作，其别名为包装器(Wrapper)。适配器模式既可以作为类结构型模式，也可以作为对象结构型模式。]]></description><category></category></item><item><title><![CDATA[【读书笔记】大话设计模式—六大设计原则]]></title><link>https://blog.youkuaiyun.com/u010796790/article/details/52927301</link><guid>https://blog.youkuaiyun.com/u010796790/article/details/52927301</guid><author>u010796790</author><pubDate>Tue, 25 Oct 2016 21:15:52 +0800</pubDate><description><![CDATA[1、设计原则概念
（1）单一职责原则：一个类只负责一个功能领域的相应职责或定义为只对外提供一种功能，即引起类变化的原因只有一个。
（2）开闭原则：软件实体对扩展开放，对修改关闭。即软件实体尽量在不修改原有代码的情况下进行扩展。
（3）里氏替换原则：任何使用基类的地方都可以使用其子类替换。是开闭原则的重要方式
（4）依赖倒置原则：抽象不依赖于细节，细节应该依赖于抽象。即要针对接口编程，而不是]]></description><category></category></item><item><title><![CDATA[排序算法六 快速排序]]></title><link>https://blog.youkuaiyun.com/u010796790/article/details/52919069</link><guid>https://blog.youkuaiyun.com/u010796790/article/details/52919069</guid><author>u010796790</author><pubDate>Tue, 25 Oct 2016 11:06:54 +0800</pubDate><description><![CDATA[1、快速排序基本思想
快速排序时C.R.A.Hoare在1962年提出的一种划分交换排序。采用分治策略（Divide-and-ConquerMethod）
该方法的基本思想是：
（1）先从数列中取出一个数作为基准数
（2）分区过程，将比这个数大的数全放到它的右边，小于或等于它的数全放到它的左边，获得一个index位置，将数组划分为左右两部分（挖坑填数+分治法）
（3）再对左右区间重复第二]]></description><category></category></item><item><title><![CDATA[排序算法五—归并排序]]></title><link>https://blog.youkuaiyun.com/u010796790/article/details/52914054</link><guid>https://blog.youkuaiyun.com/u010796790/article/details/52914054</guid><author>u010796790</author><pubDate>Mon, 24 Oct 2016 18:13:47 +0800</pubDate><description><![CDATA[1、归并思想——分治法


分治算法的基本思想是将一个规模为N的问题分解为K个规模较小的子问题，这些子问题相互独立且与原问题性质相同。求出子问题的解，就可得到原问题的解。

分治算法的一般步骤：

（1）分解，将要解决的问题划分成若干规模较小的同类问题；

（2）求解，当子问题划分得足够小时，用较简单的方法解决；

（3）合并，按原问题的要求，将子问题的解逐层合并构成原问题的]]></description><category></category></item><item><title><![CDATA[排序算法四 直接选择排序]]></title><link>https://blog.youkuaiyun.com/u010796790/article/details/52863724</link><guid>https://blog.youkuaiyun.com/u010796790/article/details/52863724</guid><author>u010796790</author><pubDate>Wed, 19 Oct 2016 22:07:18 +0800</pubDate><description><![CDATA[直接选择排序概念：
从无序区中选一个最小的元素直接放到有序区的最后。
直接选择排序和直接插入排序类似，都将数据分为有序区和无序区，所不同的是直接插入排序是将无序区的第一个元素直接插入到有序区以形成一个更大的有序区，而直接选择排序是从无序区选一个最小的元素直接放到有序区的最后。
简单选择排序特性：
时间复杂度：O(n^2)(最好时间复杂度：O(n^2) 最坏时间复杂度O(n^2) )
空间]]></description><category></category></item><item><title><![CDATA[【读书笔记】大话设计模式—UML类图]]></title><link>https://blog.youkuaiyun.com/u010796790/article/details/52863029</link><guid>https://blog.youkuaiyun.com/u010796790/article/details/52863029</guid><author>u010796790</author><pubDate>Wed, 19 Oct 2016 21:07:57 +0800</pubDate><description><![CDATA[类图显示了系统的静态结构，用于描述系统中所包含类以及它们之间的相互关系，帮助人们更好的理解系统构造，是系统分析和设计阶段的重要产物，也是系统编码和测试的重要模型依据。
1、类
类封装了数据和行为，是面向对象的重要组成部分，它是具有相同属性、操作、关系的对象集合的总称。在系统中，每个类都具有一定的职责，职责指的是类要完成什么样的功能，要承担什么样的义务。类包含类的属性和操作行为。在程序运行中，类]]></description><category></category></item><item><title><![CDATA[【读书笔记】大话设计模式—UML类与类的关系]]></title><link>https://blog.youkuaiyun.com/u010796790/article/details/52857846</link><guid>https://blog.youkuaiyun.com/u010796790/article/details/52857846</guid><author>u010796790</author><pubDate>Wed, 19 Oct 2016 20:25:13 +0800</pubDate><description><![CDATA[一、类与类之间的关系
类与类之间的关系通常有4种，即依赖关系（Dependency）、泛化关系（Generalization）、关联关系（Association）、实现关系（Realization）
1、关联关系
【概念】类与类之间最常用的一种关系，表示一类对象与另一类对象之间有联系。如班级和学生、图书馆和图书等。在使用Java等编程语言实现关联关系时，通常将一个类的对象作为另一类的成员变量]]></description><category></category></item><item><title><![CDATA[【读书笔记】大话设计模式—UML九种图]]></title><link>https://blog.youkuaiyun.com/u010796790/article/details/52857701</link><guid>https://blog.youkuaiyun.com/u010796790/article/details/52857701</guid><author>u010796790</author><pubDate>Wed, 19 Oct 2016 11:16:36 +0800</pubDate><description><![CDATA[一、UML概念

 UML的全称，统一建模语言（UML是 Unified Modeling Language的缩写）是用来对软件系统进行可视化建模的一种语言。UML为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言。

UML的七种视图：





二、UML的常用图

1、用例图（use case diagrams）



【概念】描述用户需求，从]]></description><category></category></item><item><title><![CDATA[SQL语句的解析顺序]]></title><link>https://blog.youkuaiyun.com/u010796790/article/details/52856844</link><guid>https://blog.youkuaiyun.com/u010796790/article/details/52856844</guid><author>u010796790</author><pubDate>Wed, 19 Oct 2016 10:09:15 +0800</pubDate><description><![CDATA[SQL语句的解析顺序
1、FROM  FROM后面的表标识了这条语句要查询的数据源。和一些子句如，（1-J1）笛卡尔积，（1-J2）ON过滤，（1-J3）添加外部列，所要应用的对象。FROM过程之后会生成一个虚拟表VT1。
(1-J1)笛卡尔积 这个步骤会计算两个相关联表的笛卡尔积(CROSS JOIN)
，生成虚拟表VT1-J1。
(1-J2)ON过滤 这个步骤基于虚拟表VT1-J1这一]]></description><category></category></item><item><title><![CDATA[计算机网络（五）常见面试题]]></title><link>https://blog.youkuaiyun.com/u010796790/article/details/52856456</link><guid>https://blog.youkuaiyun.com/u010796790/article/details/52856456</guid><author>u010796790</author><pubDate>Wed, 19 Oct 2016 09:57:45 +0800</pubDate><description><![CDATA[1、session和cookie的区别
相同：都是用来跟踪浏览器用户身份的会话方式。
不同：
（1）session是保存在服务器端，跟踪用户状态，可保存在集群、数据库、文件等。Cookie是保存在客户端的，是session的一种实现方式。
（2）Cookie不是很安全，别人可以分析存放在本地的cookie并进行cookie欺骗，如果考虑到安全应该使用session.
（3）Session]]></description><category></category></item><item><title><![CDATA[计算机网络（四）应用层]]></title><link>https://blog.youkuaiyun.com/u010796790/article/details/52853673</link><guid>https://blog.youkuaiyun.com/u010796790/article/details/52853673</guid><author>u010796790</author><pubDate>Tue, 18 Oct 2016 22:21:28 +0800</pubDate><description><![CDATA[超文本http，文件ftp和邮件smtp，域名解析服务DNS都是应用层协议
有两个应用模型：
C/S模型一般有Web，FTP，远程登录和邮件等，其特点是C为服务请求方，S为服务提供方，并且二者地位不平等，利于S端管理，S性能的好坏决定整个系统的性能，C与C之间不能直接通信。
P2P模型使整个网络中传输内容不再存在中心服务器中，而是网络中的每个节点都具有下载和上传的功能，有点事减轻服务器压力，]]></description><category></category></item><item><title><![CDATA[计算机网络（三）传输层—UDP]]></title><link>https://blog.youkuaiyun.com/u010796790/article/details/52853600</link><guid>https://blog.youkuaiyun.com/u010796790/article/details/52853600</guid><author>u010796790</author><pubDate>Tue, 18 Oct 2016 22:15:48 +0800</pubDate><description><![CDATA[UDP
udp可以一对多，udp仅在IP之上提供复用分用和差错检测两个服务，不保证可靠交付，不需要建立连接和确认等机制，其执行速度快实时性好，如小文件传输协议TFTP，DNS等。udp的常用于一次性传输少量数据的应用，有时也会用于对可靠性要求不那么高但不允许较大的时延的多媒体应用如IP电话，实时视频会议和流媒体等，因为其木有拥塞控制，发送端可以一直发，而tcp拥塞控制会导致数据出现较大延迟。
]]></description><category></category></item><item><title><![CDATA[计算机网络（三）传输层—TCP拥塞控制]]></title><link>https://blog.youkuaiyun.com/u010796790/article/details/52853539</link><guid>https://blog.youkuaiyun.com/u010796790/article/details/52853539</guid><author>u010796790</author><pubDate>Tue, 18 Oct 2016 22:11:42 +0800</pubDate><description><![CDATA[TCP拥塞控制
所谓拥塞控制，就是防止过多的数据注入到网络中，从而使网络中的路由器或链路不致过载。要注意用拥塞控制与流量控制的区别，拥塞控制是一个全局性的过程，涉及到所有的主机、路由器，以及以太网。
一般有四个算法：慢开始、拥塞避免、快重传、快恢复
慢开始：
新建立的连接发送TCP报文时cwnd=1即一个报文段长度MSS，在收到确认报文（RTT时间嘛）时cwnd*2，以2的倍数增加，直到达]]></description><category></category></item><item><title><![CDATA[计算机网络（三）传输层—TCP四种定时器]]></title><link>https://blog.youkuaiyun.com/u010796790/article/details/52853498</link><guid>https://blog.youkuaiyun.com/u010796790/article/details/52853498</guid><author>u010796790</author><pubDate>Tue, 18 Oct 2016 22:07:34 +0800</pubDate><description><![CDATA[TCP四种定时器
1) 重传定时器
作用：保证可靠性传输
解决：每发送一个报文段就会启动重传定时器，如果在定时器时间到后还没收到对该报文段的确认，就重传该报文段，并将重传定时器复位。如果在定时器时间内收到确认则撤销该报文段的重传定时器。
2) 坚持定时器
作用：主要用来解决零窗口大小通知可能导致的死锁问题。
死锁问题：如果接收端在向发送端发送了零窗口报文段后不久，接收端的接收缓存有了一]]></description><category></category></item><item><title><![CDATA[计算机网络（三）传输层—TCP]]></title><link>https://blog.youkuaiyun.com/u010796790/article/details/52853215</link><guid>https://blog.youkuaiyun.com/u010796790/article/details/52853215</guid><author>u010796790</author><pubDate>Tue, 18 Oct 2016 22:06:27 +0800</pubDate><description><![CDATA[传输层
传输单位是TCP报文段或UDP数据报，任务是负责两个进程（端口）之间的通信（端到端）；复用是发送方不同的进程可以使用同一传输层协议传输数据，分用是接收方在传输层剥去报文首部可以将这些数据正确交付目的应用进程；传输层对整个报文进行差错检测。
3.1端口
    端口标识主机中的应用程序，进程数据通过端口向下交付给传输层，端口号长度为16bit，可以标识65536个不同的端口号，端口号只]]></description><category></category></item><item><title><![CDATA[计算机网络（二）网络层]]></title><link>https://blog.youkuaiyun.com/u010796790/article/details/52853061</link><guid>https://blog.youkuaiyun.com/u010796790/article/details/52853061</guid><author>u010796790</author><pubDate>Tue, 18 Oct 2016 21:44:18 +0800</pubDate><description><![CDATA[网络层
传输单位为数据报，任务是把网络层的协议数据单元从源点传到目的点（主机之间），协议有IP、ICMP协议，ARP和RARP等。IP层为因特网提供了选路和转发的功能。
2.1路由器
主要完成两个功能：
2.1.1路由选择
动态的改变所选择的相邻路由器，可通过静态路由算法（手工配置路由信息）或动态路由算法（通过相邻的路由器之间彼此交换信息，然后按照一定算法优化得到转发表，并不断更新以适应]]></description><category></category></item><item><title><![CDATA[计算机网络（一）数据链路层]]></title><link>https://blog.youkuaiyun.com/u010796790/article/details/52852911</link><guid>https://blog.youkuaiyun.com/u010796790/article/details/52852911</guid><author>u010796790</author><pubDate>Tue, 18 Oct 2016 21:27:18 +0800</pubDate><description><![CDATA[数据链路层
所谓链路即一个节点到相邻节点的一段物理路线，中间无其他交换节点，两个计算机之间的通信路径中包含许多段这样的链路，这是物理链路；数据链路则是在物理线路中控制数据传输的通信协议
传输单位为帧（将网络层的数据报封装，即添加头部和尾部），任务是将网络层传下来的ip数据报组装成帧，然后带有差错控制，流量控制，可靠传输等功能
数据链路层在物理层的基础上向网络层提供服务（无确认的无连接服务，有]]></description><category></category></item><item><title><![CDATA[排序算法三  希尔排序]]></title><link>https://blog.youkuaiyun.com/u010796790/article/details/52850284</link><guid>https://blog.youkuaiyun.com/u010796790/article/details/52850284</guid><author>u010796790</author><pubDate>Tue, 18 Oct 2016 17:22:22 +0800</pubDate><description><![CDATA[希尔排序的实质：跳着插。其中增量
基本思想：将整个待排序元素分割成若干个子序列（由相隔某个“增量”的元素组成）分别进行直接插入排序，然后依次缩小增量再进行排序，待整个序列中的元素基本有序（增量足够小），再对全体元素进行一次直接插入排序。因为直接插入排序在元素基本有序的情况下（接近最好情况），效率使很高的，因此希尔排序在时间效率上比前两种方法（直接插入排序，折半插入排序）有较大的提高
案例模拟：]]></description><category></category></item><item><title><![CDATA[排序算法二  插入排序]]></title><link>https://blog.youkuaiyun.com/u010796790/article/details/52849430</link><guid>https://blog.youkuaiyun.com/u010796790/article/details/52849430</guid><author>u010796790</author><pubDate>Tue, 18 Oct 2016 16:33:53 +0800</pubDate><description><![CDATA[插入排序：每次将待排序的记录，按关键字大小，将其插入到前面已经排好序的子序列中的适当位置，直到全部记录插入完成。
直接插入排序、折半插入排序
实现步骤：设数组为arr[0...n-1]
1、初始时，arr[0]自成1个有序区，无序区为arr[1...n-1]令i=1;
2、将arr[i]并入当前的有序区arr[0...i-1]中形成arr[0...i]的有序区间。查找到arr[i]在arr]]></description><category></category></item></channel></rss>