<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[linhao]]></title><description><![CDATA[对java语言的学习之道]]></description><link>https://blog.youkuaiyun.com/oLinHao007</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; oLinHao007]]></copyright><item><title><![CDATA[Nginx工作原理和优化、漏洞。]]></title><link>https://blog.youkuaiyun.com/oLinHao007/article/details/50209673</link><guid>https://blog.youkuaiyun.com/oLinHao007/article/details/50209673</guid><author>oLinHao007</author><pubDate>Mon, 07 Dec 2015 19:09:17 +0800</pubDate><description><![CDATA[1.  Nginx的模块与工作原理


Nginx由内核和模块组成，其中，内核的设计非常微小和简洁，完成的工作也非常简单，仅仅通过查找配置文件将客户端请求映射到一个location block（location是Nginx配置中的一个指令，用于URL匹配），而在这个location中所配置的每个指令将会启动不同的模块去完成相应的工作。

Nginx的模块从结构上分为核心模块、基础模块和第]]></description><category></category></item><item><title><![CDATA[Hadoop之HDFS---浅谈DN、NN、SNN]]></title><link>https://blog.youkuaiyun.com/oLinHao007/article/details/48980029</link><guid>https://blog.youkuaiyun.com/oLinHao007/article/details/48980029</guid><author>oLinHao007</author><pubDate>Thu, 08 Oct 2015 22:21:10 +0800</pubDate><description><![CDATA[Hadoop浅谈     
   在了解HDFS之前必须介绍一下hadoop以及hadoop和HDFS之前的关系：Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下，开发分布式程序。充分利用集群的威力进行高速运算和存储。那么它们之间的关系可以通过下面几点了解：
1、Hadoop是google的集群系统的开源实现：
  Google集群系统]]></description><category></category></item><item><title><![CDATA[浅谈CMS垃圾收集器与G1收集器]]></title><link>https://blog.youkuaiyun.com/oLinHao007/article/details/48897597</link><guid>https://blog.youkuaiyun.com/oLinHao007/article/details/48897597</guid><author>oLinHao007</author><pubDate>Sun, 04 Oct 2015 18:04:22 +0800</pubDate><description><![CDATA[6、CMS收集器
  CMS收集器是一种以获取最短回收停顿时间为目标的收集器。基于“标记-清除”算法实现，它的运作过程如下：
1）初始标记
2）并发标记
3）重新标记
4）并发清除
  初始标记、从新标记这两个步骤仍然需要“stop the world”，初始标记仅仅只是标记一下GC Roots能直接关联到的对象，熟读很快，并发标记阶段就是进行GC Roots Tracing，而重新标]]></description><category></category></item><item><title><![CDATA[磁盘缓存和缓存命中率]]></title><link>https://blog.youkuaiyun.com/oLinHao007/article/details/48897125</link><guid>https://blog.youkuaiyun.com/oLinHao007/article/details/48897125</guid><author>oLinHao007</author><pubDate>Sun, 04 Oct 2015 16:36:22 +0800</pubDate><description><![CDATA[CPU缓存（Cache Memory）是位于CPU与内存之间的临时存储器，它的容量比内存小的多但是交换速度却比内存要快得多。缓存的出现主要是为了解决CPU运算速度与内存读写速度不匹配的矛盾，因为CPU运算速度要比内存读写速度快很多，这样会使CPU花费很长时间等待数据到来或把数据写入内存。在缓存中的数据是内存中的一小部分，但这一小部分是短时间内CPU即将访问的，当CPU调用大量数据时，就可避开内存直]]></description><category></category></item><item><title><![CDATA[MYSQL数据表分区详解]]></title><link>https://blog.youkuaiyun.com/oLinHao007/article/details/48863171</link><guid>https://blog.youkuaiyun.com/oLinHao007/article/details/48863171</guid><author>oLinHao007</author><pubDate>Fri, 02 Oct 2015 21:18:34 +0800</pubDate><description><![CDATA[这篇文章主要介绍了MySQL的表分区,例如什么是表分区、为什么要对表进行分区、表分区的4种类型详解等,需要的朋友可以参考下

一、什么是表分区
通俗地讲表分区是将一大表，根据条件分割成若干个小表。mysql5.1开始支持数据表分区了。
如：某用户表的记录超过了600万条，那么就可以根据入库日期将表分区，也可以根据所在地将表分区。当然也可根据其他的条件分区。

二、为什么要对表进行分区]]></description><category></category></item><item><title><![CDATA[深入InnoDB的MVCC机制]]></title><link>https://blog.youkuaiyun.com/oLinHao007/article/details/48767203</link><guid>https://blog.youkuaiyun.com/oLinHao007/article/details/48767203</guid><author>oLinHao007</author><pubDate>Sun, 27 Sep 2015 15:59:27 +0800</pubDate><description><![CDATA[一、基础知识

事务：

事务是一组原子性sql查询语句，被当作一个工作单元。若mysql对改事务单元内的所有sql语句都正常的执行完，则事务操作视为成功，所有的sql语句才对数据生效，若sql中任意不能执行或出错则事务操作失败，所有对数据的操作则无效（通过回滚恢复数据）。事务有四个属性：

1、原子性：事务被认为不可分的一个工作单元，要么全部正常执行，要么全部不执行。

2、一致]]></description><category></category></item><item><title><![CDATA[从B树、B+树、B*树谈到R 树]]></title><link>https://blog.youkuaiyun.com/oLinHao007/article/details/48546527</link><guid>https://blog.youkuaiyun.com/oLinHao007/article/details/48546527</guid><author>oLinHao007</author><pubDate>Fri, 18 Sep 2015 14:47:35 +0800</pubDate><description><![CDATA[从B 树、B+ 树、B* 树谈到R 树
 
作者：July、weedge、Frankie。编程艺术室出品。
说明：本文从B树开始谈起，然后论述B+树、B*树，最后谈到R 树。其中B树、B+树及B*树部分由weedge完成，R 树部分由Frankie完成，全文最终由July统稿修订完成。
出处：http://blog.youkuaiyun.com/v_JULY_v 。
 
第一节、B树、B+树、B*]]></description><category></category></item><item><title><![CDATA[单例模式下的双检锁DCL]]></title><link>https://blog.youkuaiyun.com/oLinHao007/article/details/48057013</link><guid>https://blog.youkuaiyun.com/oLinHao007/article/details/48057013</guid><author>oLinHao007</author><pubDate>Fri, 28 Aug 2015 19:54:01 +0800</pubDate><description><![CDATA[回想起曾经经历的一次面试，是关于设计模式的。当时自己讲了单例模式，但是并没有全面地把与单例模式相关的线程安全问题理解清楚，当时的场景，哎，往事不堪回首，不过技术终归于技术，是必须掌握滴~

 1、单例模式

      关于单例模式，就不再详细叙述，想必大家都耳熟能详了，简单回顾下吧。以下是单例模式的一个例子：





[java] view
 plaincopy]]></description><category></category></item><item><title><![CDATA[concurrentHashMap原理分析]]></title><link>https://blog.youkuaiyun.com/oLinHao007/article/details/48023781</link><guid>https://blog.youkuaiyun.com/oLinHao007/article/details/48023781</guid><author>oLinHao007</author><pubDate>Thu, 27 Aug 2015 10:35:41 +0800</pubDate><description><![CDATA[前几天在美团进行面试，问到这个concurrenthashMap的原理，我当时就晕了，因为我很少接触这个集合，它的工作机制不清楚，面试完之后，百度了一下，特意转载这篇，和大家一起分享。

  集合是编程中最常用的数据结构。而谈到并发，几乎总是离不开集合这类高级数据结构的支持。比如两个线程需要同时访问一个中间临界区（Queue），比如常会用缓存作为外部文件的副本（HashMap）。这篇文章主要分]]></description><category></category></item><item><title><![CDATA[http请求原理]]></title><link>https://blog.youkuaiyun.com/oLinHao007/article/details/47188387</link><guid>https://blog.youkuaiyun.com/oLinHao007/article/details/47188387</guid><author>oLinHao007</author><pubDate>Sat, 01 Aug 2015 17:26:45 +0800</pubDate><description><![CDATA[HTTP(HyperText Transfer Protocol)是一套计算机通过网络进行通信的规则。计算机专家设计出HTTP，使HTTP客户（如Web浏览器）能够从HTTP服务器(Web服务器)请求信息和服务，HTTP目前协议的版本是1.1.HTTP是一种无状态的协议，无状态是指Web浏览器和Web服务器之间不需要建立持久的连接，这意味着当一个客户端向服务器端发出请求，然后Web服务器返回响应(]]></description><category></category></item><item><title><![CDATA[排序算法的稳定性讨论]]></title><link>https://blog.youkuaiyun.com/oLinHao007/article/details/47132737</link><guid>https://blog.youkuaiyun.com/oLinHao007/article/details/47132737</guid><author>oLinHao007</author><pubDate>Wed, 29 Jul 2015 19:47:07 +0800</pubDate><description><![CDATA[选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法，而冒泡排序、插入排序、归并排序和基数排序是稳定的排序算法。






     首先，排序算法的稳定性大家应该都知道，通俗地讲就是能保证排序前2个相等的数其在序列的前后位置顺序和排序后它们两个的前后位置顺序相同。在简单形式化一下，如果Ai = Aj, Ai原来在位置前，排序后Ai还是要在Aj位置前。
     其次，说一下稳]]></description><category></category></item><item><title><![CDATA[hashMap实现原理]]></title><link>https://blog.youkuaiyun.com/oLinHao007/article/details/47028675</link><guid>https://blog.youkuaiyun.com/oLinHao007/article/details/47028675</guid><author>oLinHao007</author><pubDate>Thu, 23 Jul 2015 21:10:16 +0800</pubDate><description><![CDATA[1. HashMap的数据结构

数据结构中有数组和链表来实现对数据的存储，但这两者基本上是两个极端。

      数组

数组存储区间是连续的，占用内存严重，故空间复杂的很大。但数组的二分查找时间复杂度小，为O(1)；数组的特点是：寻址容易，插入和删除困难；

链表

链表存储区间离散，占用内存比较宽松，故空间复杂度很小，但时间复杂度很大，达O（N）。链表的特点是：寻址困难]]></description><category></category></item><item><title><![CDATA[TCP的三次握手，四次挥手全过程]]></title><link>https://blog.youkuaiyun.com/oLinHao007/article/details/47026957</link><guid>https://blog.youkuaiyun.com/oLinHao007/article/details/47026957</guid><author>oLinHao007</author><pubDate>Thu, 23 Jul 2015 19:19:09 +0800</pubDate><description><![CDATA[摘自http://blog.youkuaiyun.com/bird67/article/details/4871541

TCP(Transmission Control Protocol)　传输控制协议

TCP是主机对主机层的传输控制协议，提供可靠的连接服务，采用三次握手确认建立一个连接:

位码即tcp标志位,

有6种标示:

SYN(synchronous建立联机)

ACK]]></description><category></category></item><item><title><![CDATA[java之设计模式---策略模式]]></title><link>https://blog.youkuaiyun.com/oLinHao007/article/details/47018389</link><guid>https://blog.youkuaiyun.com/oLinHao007/article/details/47018389</guid><author>oLinHao007</author><pubDate>Thu, 23 Jul 2015 11:08:37 +0800</pubDate><description><![CDATA[1、概念
      定义一组算法，并将每个算法封装起来，使得他们之间可以相互转换
2、类型：行为型模式
3、简介
     策略模式是对算法的封装，就是一个算法对应一个类，这个算法类实现统一的接口，相互之间可以相互替换。模板模式也是对一个算法进行封装，但是策略模式和模板模式的区别在于仅仅多实现一个单独的封装类。
4、结构
1）封装类：也叫上下文，对策略进行二次封装，目的是为了避免高层]]></description><category></category></item><item><title><![CDATA[java之设计模式---模板设计模式]]></title><link>https://blog.youkuaiyun.com/oLinHao007/article/details/47008703</link><guid>https://blog.youkuaiyun.com/oLinHao007/article/details/47008703</guid><author>oLinHao007</author><pubDate>Wed, 22 Jul 2015 21:17:51 +0800</pubDate><description><![CDATA[1、模板设计模式概念：
   定义一个操作中算法的框架，而且将一些步骤延续子类中，使得子类可以不改变算法的结构即可重定义该算法中某些特定步骤。
2、类型：行为类模式
3、简介：
模板方法模式由一个抽象类和一个（或一组）实现类通过继承结构组成，抽象类中的方法分为三种：
1）抽象方法：父类中只声明但不加以实现，而是定义好规范，然后由它的子类去实现。
2）模板方法：由抽象类声明并加以实现。一]]></description><category></category></item><item><title><![CDATA[仿Google分页的经典案例]]></title><link>https://blog.youkuaiyun.com/oLinHao007/article/details/46998769</link><guid>https://blog.youkuaiyun.com/oLinHao007/article/details/46998769</guid><author>oLinHao007</author><pubDate>Wed, 22 Jul 2015 09:58:57 +0800</pubDate><description><![CDATA[仿Google分页的经典案例
一般分页的实现有：1、首页、上一页、下一页、最后一页
                                      2、上一页[1][2][3][4][5][6][7][8][9][10]下一页
                                      3、上一页[1][2][3][4][5][6][7]...下一页
下面以：上]]></description><category></category></item><item><title><![CDATA[java之设计模式---原型模式]]></title><link>https://blog.youkuaiyun.com/oLinHao007/article/details/46991025</link><guid>https://blog.youkuaiyun.com/oLinHao007/article/details/46991025</guid><author>oLinHao007</author><pubDate>Tue, 21 Jul 2015 20:21:09 +0800</pubDate><description><![CDATA[1、原型模式的概念：
用原型实例指定创建对象的种类，并通过拷贝这些原型创建新的对象

2、类型：创建型类型
3、简介：
原型模式主要用于对象的复制，他的核心就是原型类Prototype，其中Prototype类具备以下两个条件：
1）实现Cloneable接口。在java语言中有Cloneable这个接口，它的作用只有一个就是对实现该接口的类通知JVM可以安全的使用该接口定义的类中的c]]></description><category></category></item><item><title><![CDATA[java之设计模式---工厂方法模式]]></title><link>https://blog.youkuaiyun.com/oLinHao007/article/details/46973481</link><guid>https://blog.youkuaiyun.com/oLinHao007/article/details/46973481</guid><author>oLinHao007</author><pubDate>Mon, 20 Jul 2015 21:11:14 +0800</pubDate><description><![CDATA[1、工厂方法概念：
      定义一个用于创建对象的接口，让子类决定实例化哪个类，工厂方法使一个类的实例化延迟到其子类
2、类型：创建型类型
3、简介：
     工厂模式主要有四个要素：
（1）工厂接口：工厂接口是工厂方法模式的核心，与调用者直接交互用来提供产品，在实际的编程中，有时候也会用抽象类来作为调用者交互的接口，其本质是一样的。
（2）工厂实现：在编程中，工厂实现决定如何实]]></description><category></category></item><item><title><![CDATA[java之设计模式---单例模式]]></title><link>https://blog.youkuaiyun.com/oLinHao007/article/details/46973051</link><guid>https://blog.youkuaiyun.com/oLinHao007/article/details/46973051</guid><author>oLinHao007</author><pubDate>Mon, 20 Jul 2015 20:10:40 +0800</pubDate><description><![CDATA[最近几天在学习设计模式，对设计模式有点初步的了解，特意写下集中比较常用的设计模式博客，里面包含了自己的一些见解。
1、单例模式概念：
        确保一个类只有一个实例对象，并且自动实例化并向整个系统提供这个实例

2、类型：创建型模式
3、简介：
     单例模式应该是23中设计模式中最简单的一种设计模式看，主要有三个要素组成：
     （1）、私有的构造方法 （2）、指向]]></description><category></category></item><item><title><![CDATA[String和StringBuffer的区别]]></title><link>https://blog.youkuaiyun.com/oLinHao007/article/details/46971601</link><guid>https://blog.youkuaiyun.com/oLinHao007/article/details/46971601</guid><author>oLinHao007</author><pubDate>Mon, 20 Jul 2015 17:43:07 +0800</pubDate><description><![CDATA[String与StringBuffer的区别
简单地说，就是一个变量和常量的关系。StringBuffer对象的内容可以修改；而String对象一旦产生后就不可以被修改，重新赋值其实是两个对象。
StringBuffer的内部实现方式和String不同，StringBuffer在进行字符串处理时，不生成新的对象，在内存使用上要优于String类。所以在实际使用时，如果经常需要对一个字符串进行修]]></description><category></category></item></channel></rss>