<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[lanxiangru的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/lanxiangru</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; lanxiangru]]></copyright><item><title><![CDATA[Hive的三种存储格式]]></title><link>https://blog.youkuaiyun.com/lanxiangru/article/details/78732056</link><guid>https://blog.youkuaiyun.com/lanxiangru/article/details/78732056</guid><author>lanxiangru</author><pubDate>Wed, 06 Dec 2017 16:33:01 +0800</pubDate><description><![CDATA[准确的来说，Hive是一个将Hive SQL的解释、编译成Hadoop MapReduce任务的工具。数据存储在Hdfs上，默认支持三种文件格式：TEXTFILE、SEQUENCEFILE、RCFILE（允许自定义格式）。
其中TEXTFILE和SEQUENCEFILE都是基于行存储的，RCFILE基于行列混合存储（按行把数据分成多个row group，在row group中对每个列分别进行存储]]></description><category></category></item><item><title><![CDATA[多线程相关概念整理]]></title><link>https://blog.youkuaiyun.com/lanxiangru/article/details/78466329</link><guid>https://blog.youkuaiyun.com/lanxiangru/article/details/78466329</guid><author>lanxiangru</author><pubDate>Tue, 07 Nov 2017 11:41:32 +0800</pubDate><description><![CDATA[一、为什么要使用多线程（并发与并行）
 如果仅针对单核CPU，多线程适合于任务执行期间需要等待返回结果的场景。一个任务进入等待后，CPU进入空闲，这时把CPU资源分配给其他线程执行。这个多个任务在单CPU上的切换，就是并发。
CPU在线程上切换的时间一般小于任务等待的时间，所以多个线程并发执行会提高程序执行效率。而对于多核CPU或者多个CPU的，CPU除了并发外，多个CPU上不同线程还能同时的]]></description><category></category></item><item><title><![CDATA[Spring MVC工作原理]]></title><link>https://blog.youkuaiyun.com/lanxiangru/article/details/78425131</link><guid>https://blog.youkuaiyun.com/lanxiangru/article/details/78425131</guid><author>lanxiangru</author><pubDate>Thu, 02 Nov 2017 15:14:27 +0800</pubDate><description><![CDATA[一、用户发磅请求，web.xml中servlet-mapping映射到DispatcherServlet

二、DispatcherServlet调用doService->doDispatch，
1、通过HandlerMapping找到对应的handler，并构建一个HandlerExecutionChain，它包含handler和HandlerMapping本身的一些拦截器，返回给Disp]]></description><category></category></item><item><title><![CDATA[Dijkstra最短路径算法]]></title><link>https://blog.youkuaiyun.com/lanxiangru/article/details/78367595</link><guid>https://blog.youkuaiyun.com/lanxiangru/article/details/78367595</guid><author>lanxiangru</author><pubDate>Fri, 27 Oct 2017 18:03:11 +0800</pubDate><description><![CDATA[Dijkstra最短路径算法是一种单源最短路径算法，该算法要求路径上任意两点间路径为非负权边。用于计算从路径中指定的顶点到其他所有的顶点的最短路径。所以广泛应用于能够建模为图的问题中，用以查找两个节点最短路径。

  
算法实现原理
        从最小的子路径开始（只包含一个顶点A1），遍历添加其他顶点（Ai）到子路径中，每次重新计算起始点到其他顶点的最短距离（只影响到与Ai相连的顶点]]></description><category></category></item><item><title><![CDATA[Hadoop理论基础]]></title><link>https://blog.youkuaiyun.com/lanxiangru/article/details/78355935</link><guid>https://blog.youkuaiyun.com/lanxiangru/article/details/78355935</guid><author>lanxiangru</author><pubDate>Thu, 26 Oct 2017 16:56:56 +0800</pubDate><description><![CDATA[一、Hadoop的本质
数据的存储：HDFS(Hadoop Distributed File System)，来源于GFS(Google File System)
数据的计算：分布式计算
二、分布式文件系统-HDFS（参考GFS）
解决传统式文件系统的问题：
硬盘不够大：文件保存在内存，分布于多个数据结点（DataNode），通过名称结点（NameNode）管理扩增
数据不安全： 一个]]></description><category></category></item><item><title><![CDATA[mysql中MyISAM引擎和InnoDB引擎差别]]></title><link>https://blog.youkuaiyun.com/lanxiangru/article/details/78355900</link><guid>https://blog.youkuaiyun.com/lanxiangru/article/details/78355900</guid><author>lanxiangru</author><pubDate>Thu, 26 Oct 2017 16:55:10 +0800</pubDate><description><![CDATA[基本差别：
MyISAM类型不支持事务处理等高级功能，而InnoDB支持。
MyISAM类型不支持等级锁，而InnoDB支持。
MyISAM类型不支持外键，而InnoDB支持。
MyISAM类型的表强调的是性能，其执行速度比InnoDB更快。
细节差别：
1、innoDB不支持FULLTEXT类型的索引
2、innoDB中不保存表的具体行数，执行select count(*) fro]]></description><category></category></item><item><title><![CDATA[偏向锁、轻量级锁、重量级锁]]></title><link>https://blog.youkuaiyun.com/lanxiangru/article/details/78355718</link><guid>https://blog.youkuaiyun.com/lanxiangru/article/details/78355718</guid><author>lanxiangru</author><pubDate>Thu, 26 Oct 2017 16:44:13 +0800</pubDate><description><![CDATA[Java SE1.6为了减少获得锁和释放锁所带来的性能消耗，引入了“偏向锁”和“轻量级锁”的概念，所以在Java SE1.6里锁一共有四种状态：无锁状态，偏向锁状态，轻量级锁状态和重量级锁状态，它会随着竞争情况逐渐升级。
锁可以升级但不能降级，这种策略目的是为了提高获得锁和释放锁的效率。


偏向锁
    Hotspot的作者经过以往的研究发现大多数情况下锁不仅不存在多线程竞争，而且总]]></description><category></category></item><item><title><![CDATA[事务的四个特性]]></title><link>https://blog.youkuaiyun.com/lanxiangru/article/details/78330207</link><guid>https://blog.youkuaiyun.com/lanxiangru/article/details/78330207</guid><author>lanxiangru</author><pubDate>Tue, 24 Oct 2017 15:33:58 +0800</pubDate><description><![CDATA[一、原子性
原子性指事务包含的所有操作要么全部成功，要么全部失败回滚。因此事务的成功就必须要完全应用到数据库，如果操作失败则不能对数据库有任何影响。

二、一致性
一致性是指事务必须使数据库从一个致性状态变换到另一个一致性状态，也就是说一个事务执行之前和执行之后都必须处于一致性状态。一致性的必须通过原子性来实现，同时还需要逻辑的正确，保证数据的守恒。

三、隔离性
隔离性是指多个并发]]></description><category></category></item><item><title><![CDATA[阻塞非阻塞与同步异步的区别]]></title><link>https://blog.youkuaiyun.com/lanxiangru/article/details/78327943</link><guid>https://blog.youkuaiyun.com/lanxiangru/article/details/78327943</guid><author>lanxiangru</author><pubDate>Tue, 24 Oct 2017 11:48:55 +0800</pubDate><description><![CDATA[同步与异步：同步异步关注的是消息通信机制。如果调用方等待，直到调用方返回，就叫同步，反之，调用发出后直接返回就叫异步。异步情况下，被调用者会通过通知或者回调的方式处理这个调用。
阻塞与非阻塞：阻塞与非阻塞关注的是程序在等待调用结果（消息、返回值）时的状态。阻塞调用是指调用结果返回之前，当前线程会被挂起。调用线程只有在得到结果之后才会返回。非阻塞调用指在不能立刻得到结果之前，该调用不阻塞当前线程。]]></description><category></category></item><item><title><![CDATA[java IO流总结]]></title><link>https://blog.youkuaiyun.com/lanxiangru/article/details/78326527</link><guid>https://blog.youkuaiyun.com/lanxiangru/article/details/78326527</guid><author>lanxiangru</author><pubDate>Tue, 24 Oct 2017 10:13:20 +0800</pubDate><description><![CDATA[流：流是一组有序的，有起点、终点的字节集合，是对数据传输的总称和抽象。即数据在两设备间的传输称为流，流的本质是数据传输。根据数据传输特性将流抽象为各种类，方便更直观的进行数据操作。
根据处理数据类型不同分类：字符流和字节流
根据数据流向不同分为：输入流和输出流
根据是否直接连接数据源分为：节点流和处理流（装饰流）
字符流和字节流的区别：
字节流：一次读入或读出8位二进制（一个字节），能处]]></description><category></category></item><item><title><![CDATA[熵学习笔记]]></title><link>https://blog.youkuaiyun.com/lanxiangru/article/details/78269335</link><guid>https://blog.youkuaiyun.com/lanxiangru/article/details/78269335</guid><author>lanxiangru</author><pubDate>Wed, 18 Oct 2017 09:33:33 +0800</pubDate><description><![CDATA[微观状态等概率原理：
假设有5枚硬币，每一枚硬币要么正面（1）朝上要么反面朝上（0），“00010”就是一个微观状态，每个硬币有（0、1）两种可能，于是一共有“2的5次方=32种”可能。
注意，记录微观状态的时候，“00010”和“00100”是两种不同的状态。

全同粒子原理：
由于这些硬币宏观上是不能被区分的，于是“00010”和“00100”这两种微观状态，对应于同一种宏观状态——]]></description><category></category></item><item><title><![CDATA[线性代数学习笔记]]></title><link>https://blog.youkuaiyun.com/lanxiangru/article/details/78261909</link><guid>https://blog.youkuaiyun.com/lanxiangru/article/details/78261909</guid><author>lanxiangru</author><pubDate>Tue, 17 Oct 2017 16:25:23 +0800</pubDate><description><![CDATA[一、向量概念
向量是有顺序的一组数字，每个数字都是该向量的一个因素(element) 因素横着排列的向量叫做行向量(row vector)，因素竖着排列的向量叫做列向量(column vector)


二、矩阵及矩阵运算
矩阵乘法不满足乘法交换律：AB =! BA

线性代数8件运算规则：
1、x + y = y + x.
2、x + (y + z) = (x + y) + z]]></description><category></category></item><item><title><![CDATA[概率学习笔记]]></title><link>https://blog.youkuaiyun.com/lanxiangru/article/details/78252246</link><guid>https://blog.youkuaiyun.com/lanxiangru/article/details/78252246</guid><author>lanxiangru</author><pubDate>Mon, 16 Oct 2017 17:43:07 +0800</pubDate><description><![CDATA[概率
概率是用来衡量我们对事物在跨时间后不同状态的确信度。
 
一、什么是概率
概率是观察者畅想一个状态从某个时间点变化到另一个时间点后的确信度。
概率：是将样本空间内的子集投向概率空间的函数。
结果：可能到达的状态。
样本空间：所有可能发生的结果所组成的集合。
事件：样本空间的子集。
 
二、条件概率
条件概率是新信息对样本空间进行调整后的概率情况。
公式：P(A|B) ]]></description><category></category></item><item><title><![CDATA[五种常用算法理解]]></title><link>https://blog.youkuaiyun.com/lanxiangru/article/details/78227583</link><guid>https://blog.youkuaiyun.com/lanxiangru/article/details/78227583</guid><author>lanxiangru</author><pubDate>Fri, 13 Oct 2017 16:30:20 +0800</pubDate><description><![CDATA[分治法：将问题实例划分成几个较小的子问题（可以递归的划分），然后对这些较小的子问题求解，合并这些较小的子问题，以得到原始问题的解。
有点类似Map/Reduce思想。主要区别在于：Map/Reduce的关键是把一个大的任务，拆分成尽可能多的小任务，再合并子任务的解。任务本身往往并不
复杂，主要是计算量大，基本做一次水平的拆分就够了。而分治法则是把一个不太容易解决的问题，拆分成几个小点儿的问题（]]></description><category></category></item><item><title><![CDATA[八皇后问题递归实现]]></title><link>https://blog.youkuaiyun.com/lanxiangru/article/details/78216646</link><guid>https://blog.youkuaiyun.com/lanxiangru/article/details/78216646</guid><author>lanxiangru</author><pubDate>Thu, 12 Oct 2017 16:40:04 +0800</pubDate><description><![CDATA[八皇后的问题大家应该都不陌生，问题简单描述如下：
在8*8的国际象棋棋盘上，摆放8个皇后，使它们两两间不能互相攻击（不能在同一行，同一列，同一对角线）。
上学时，用的回溯的算法解决，今天重新思考这个问题，发现用递归也很容易实现。
分析：要在n*n的棋盘上摆放n个皇后，则至少每一行，每一列有且只有一个皇后。问题解决的必要条件是在前n-1列的棋盘上要摆放n-1个皇后。再检查每n列的每一格：在该位]]></description><category></category></item><item><title><![CDATA[使用Jena访问RDF数据库环境搭]]></title><link>https://blog.youkuaiyun.com/lanxiangru/article/details/78216203</link><guid>https://blog.youkuaiyun.com/lanxiangru/article/details/78216203</guid><author>lanxiangru</author><pubDate>Thu, 12 Oct 2017 16:16:23 +0800</pubDate><description><![CDATA[RDF：资源描述框架，RDF使用XML语法和RDF Schema（RDFS）来将元数据描述成为数据模型。
XML：可扩展标记语言
元数据：即Metadata，又称中介数据、中继数据，为描述数据的数据，主要是描述数据的属性信息。
Jena：一个用于构造语义网（Semantic Web）及关联数据（Linked Data）应用的Java开源构架。
Semantifc Web：即语义网，通过给全球信息网上文档添加能够被计算机理解的语义元数据，从而使整个互联网成为一个通用的信息交换媒介。
Linked ]]></description><category></category></item><item><title><![CDATA[Web项目常见编码问题总结]]></title><link>https://blog.youkuaiyun.com/lanxiangru/article/details/74502274</link><guid>https://blog.youkuaiyun.com/lanxiangru/article/details/74502274</guid><author>lanxiangru</author><pubDate>Wed, 05 Jul 2017 21:07:39 +0800</pubDate><description><![CDATA[Web项目开发过程中经常遇到中文乱码的问题。一般项目都使用UTF-8编码，在项目的初始阶段都要对项目、环境的文件编码进行设置。]]></description><category></category></item><item><title><![CDATA[java接口压力测试]]></title><link>https://blog.youkuaiyun.com/lanxiangru/article/details/71506145</link><guid>https://blog.youkuaiyun.com/lanxiangru/article/details/71506145</guid><author>lanxiangru</author><pubDate>Tue, 09 May 2017 21:23:54 +0800</pubDate><description><![CDATA[根据用户输入的线程数，创建多个线程，每个线程串行的发送n/c个请求（其中n为请求数，m为线程数）。并且实时的反馈，完成的请求数，以及成功接收返回结果的请求数量。]]></description><category></category></item><item><title><![CDATA[Ant + Ivy 管理项目依赖]]></title><link>https://blog.youkuaiyun.com/lanxiangru/article/details/62479407</link><guid>https://blog.youkuaiyun.com/lanxiangru/article/details/62479407</guid><author>lanxiangru</author><pubDate>Thu, 16 Mar 2017 23:20:06 +0800</pubDate><description><![CDATA[在该目录 下执行ant，可以看生成一个lib目录，下面放着个ant-2.7.1.jar。Ivy-module元素中的version定义了此文件使用的ivy的版本。在info元素中你可以定义自己的组织信息和模块的名称；关键是配置dependency标签，dependency元素定义具体的依赖信息，我们使用org、name和rev来唯一标识依赖项。其中org是组织信息，name是模块名称，rev是模块的版本。Ivy默认使用maven2组件仓库，所以我们可以去mvnrepositoy.com找到我们需要的模块信息]]></description><category></category></item><item><title><![CDATA[java序列化]]></title><link>https://blog.youkuaiyun.com/lanxiangru/article/details/60885708</link><guid>https://blog.youkuaiyun.com/lanxiangru/article/details/60885708</guid><author>lanxiangru</author><pubDate>Wed, 08 Mar 2017 23:13:15 +0800</pubDate><description><![CDATA[java通过serialVersionUID来控制对象的序列化、反序列化。当我们示设置serialVersionUID时，会通过类的名字、域的名字、方法的名字及已实现的接口生成一个隐式的serialVersionUID。所以类在后续的版本中，如果开发人员修改过代码，会引起serialVersionUID的值发生改变。这样原来的代码就无法向下兼容。]]></description><category></category></item></channel></rss>