<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[唛哩唛哩轰 ]]></title><description><![CDATA[有志者，事竞成，破釜沉舟，百二秦关终属楚。  苦心人，天不负，卧薪尝胆，三千越甲可吞吴。 ]]></description><link>https://blog.youkuaiyun.com/lxqfirst</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; lxqfirst]]></copyright><item><title><![CDATA[从源代码的角度聊聊java中StringBuffer、StringBuilder、String中的字符串拼接]]></title><link>https://blog.youkuaiyun.com/lxqfirst/article/details/44832195</link><guid>https://blog.youkuaiyun.com/lxqfirst/article/details/44832195</guid><author>lxqfirst</author><pubDate>Thu, 02 Apr 2015 14:56:25 +0800</pubDate><description><![CDATA[长久以来，我们被教导字符串的连接最好用StringBuffer、StringBuilder，但是我们却不知道这两者之间的区别.跟字符串相关的一些方法中总是有CharSequence、StringBuffer、StringBuilder、String，他们之间到底有什么联系呢？

1、从类的定义看CharSequence、StringBuffer、StringBuilder、String的关系]]></description><category></category></item><item><title><![CDATA[xor算法在storm可靠性中的应用]]></title><link>https://blog.youkuaiyun.com/lxqfirst/article/details/38266283</link><guid>https://blog.youkuaiyun.com/lxqfirst/article/details/38266283</guid><author>lxqfirst</author><pubDate>Tue, 29 Jul 2014 12:52:18 +0800</pubDate><description><![CDATA[1、先看一下数学中的异或

    异或xor是一个数学运算符。它应用于逻辑运算。异或符号为“^”。

异或也叫半加运算，其运算法则相当于不带进位的二进制加法：二进制下用1表示真，0表示假，则异或的运算法则为：0异或0=0，1异或0=1，0异或1=1，1异或1=0（同为0，异为1），

既然相同的对象XOR操作，结果是0，那么有这样一个公式，

A xor B…xor B xor ]]></description><category></category></item><item><title><![CDATA[k-d tree代码解析]]></title><link>https://blog.youkuaiyun.com/lxqfirst/article/details/8116984</link><guid>https://blog.youkuaiyun.com/lxqfirst/article/details/8116984</guid><author>lxqfirst</author><pubDate>Fri, 26 Oct 2012 21:06:14 +0800</pubDate><description><![CDATA[http://www.cnblogs.com/eyeszjwang/articles/2432465.html　

　上一篇较详细地介绍了k-d树算法。本文来讲解具体的实现代码。

　　首先是一些数据结构的定义。我们先来定义单个数据，代码如下：
复制代码

//单个数据向量结构定义
struct _Examplar
{
public:

    _Examplar():dom_dims(0){}]]></description><category></category></item><item><title><![CDATA[k-d tree算法]]></title><link>https://blog.youkuaiyun.com/lxqfirst/article/details/8116961</link><guid>https://blog.youkuaiyun.com/lxqfirst/article/details/8116961</guid><author>lxqfirst</author><pubDate>Fri, 26 Oct 2012 20:59:22 +0800</pubDate><description><![CDATA[k-d树（k-dimensional树的简称），是一种分割k维数据空间的数据结构。主要应用于多维空间关键数据的搜索（如：范围搜索和最近邻搜索）。
应用背景
　　SIFT算法中做特征点匹配的时候就会利用到k-d树。而特征点匹配实际上就是一个通过距离函数在高维矢量之间进行相似性检索的问题。针对如何快速而准确地找到查询点的近邻，现在提出了很多高维空间索引结构和近似查询的算法，k-d树就是其中一种。]]></description><category></category></item><item><title><![CDATA[从尾到头输出链表--总结]]></title><link>https://blog.youkuaiyun.com/lxqfirst/article/details/8062293</link><guid>https://blog.youkuaiyun.com/lxqfirst/article/details/8062293</guid><author>lxqfirst</author><pubDate>Thu, 11 Oct 2012 20:43:57 +0800</pubDate><description><![CDATA[题目：输入一个链表的头结点，从尾到头反过来输出每个结点的值。链表结点定义如下：
struct ListNode
{
      int       m_nKey;
      ListNode* m_pNext;
};
 
这道题难度应该不大，看能想出几种做法，另外就是要注意这个题目的变体，原文中有讲到。
我能想到的思路有三种，和原文差不多。
方法一、先把链表反向，然后再从头到尾]]></description><category></category></item><item><title><![CDATA[栈的push、pop序列]]></title><link>https://blog.youkuaiyun.com/lxqfirst/article/details/8062164</link><guid>https://blog.youkuaiyun.com/lxqfirst/article/details/8062164</guid><author>lxqfirst</author><pubDate>Thu, 11 Oct 2012 20:03:43 +0800</pubDate><description><![CDATA[题目：输入两个整数序列。其中一个序列表示栈的push顺序，判断另一个序列有没有可能是对应的pop顺序。为了简单起见，我们假设push序列的任意两个整数都是不相等的。
比如输入的push序列是1、2、3、4、5，那么4、5、3、2、1就有可能是一个pop系列。因为可以有如下的push和pop序列：push 1，push 2，push 3，push 4，pop，push 5，pop，pop，pop，]]></description><category></category></item><item><title><![CDATA[一个fork的面试题]]></title><link>https://blog.youkuaiyun.com/lxqfirst/article/details/8053628</link><guid>https://blog.youkuaiyun.com/lxqfirst/article/details/8053628</guid><author>lxqfirst</author><pubDate>Tue, 09 Oct 2012 19:27:51 +0800</pubDate><description><![CDATA[前两天有人问了个关于Unix的fork()系统调用的面试题，这个题正好是我大约十年前找工作时某公司问我的一个题，我觉得比较有趣，写篇文章与大家分享一下。这个题是这样的：
题目：请问下面的程序一共输出多少个“-”？

#include 
#include 
#include 
 
int main(void)
{
   int i;
   for(i=0; i<2; i++){
      f]]></description><category></category></item><item><title><![CDATA[用户态和内核态]]></title><link>https://blog.youkuaiyun.com/lxqfirst/article/details/8053618</link><guid>https://blog.youkuaiyun.com/lxqfirst/article/details/8053618</guid><author>lxqfirst</author><pubDate>Tue, 09 Oct 2012 19:22:40 +0800</pubDate><description><![CDATA[就像世界上的人并不平等一样，并不是所有的程序都是平等的。世界上有的人占有资源多，有的人占有资源少，有的人来了，别人得让出资源，有的人则专门为别人让出资源。程序也是这样，有的程序可以访问计算机的任何资源，有的程序则只能访问非常受限的少量资源。而操作系统作为计算机的管理者，自然不能和被管理者享受一样的待遇，它应该享有更多的方便或特权。为了区分不用程序的不同权利，人们发胆了内核和用户态的概念。

那]]></description><category></category></item><item><title><![CDATA[动态链接和静态链接]]></title><link>https://blog.youkuaiyun.com/lxqfirst/article/details/8053550</link><guid>https://blog.youkuaiyun.com/lxqfirst/article/details/8053550</guid><author>lxqfirst</author><pubDate>Tue, 09 Oct 2012 19:16:06 +0800</pubDate><description><![CDATA[理解静态链接和动态链接 前些日子在论坛上看到这样两个问题：

1、什么叫静态链接和动态链接？（static linking,dynamic linking）
 2、如何理解先期和迟后联编？（early binding,later binding） 

3、连接时所需的库lib和dll。
 
实际上，这两个问题性质是一样的，不管是静态链接/动态链接也好，还是先期联编/迟后联编也好，都是]]></description><category></category></item><item><title><![CDATA[从B树、B+树、B*树谈到R 树]]></title><link>https://blog.youkuaiyun.com/lxqfirst/article/details/8049639</link><guid>https://blog.youkuaiyun.com/lxqfirst/article/details/8049639</guid><author>lxqfirst</author><pubDate>Mon, 08 Oct 2012 19:16:13 +0800</pubDate><description><![CDATA[作者：July、weedge、Frankie。编程艺术室出品。
说明：本文从B树开始谈起，然后论述B+树、B*树，最后谈到R 树。其中B树、B+树及B*树部分由weedge完成，R 树部分由Frankie完成，全文最终由July统稿修订完成。
出处：http://blog.youkuaiyun.com/v_JULY_v 。
 
1.前言：
动态查找树主要有：二叉查找树（Binary Search T]]></description><category></category></item><item><title><![CDATA[内存碎片]]></title><link>https://blog.youkuaiyun.com/lxqfirst/article/details/8045895</link><guid>https://blog.youkuaiyun.com/lxqfirst/article/details/8045895</guid><author>lxqfirst</author><pubDate>Sun, 07 Oct 2012 19:26:38 +0800</pubDate><description><![CDATA[内存碎片的产生
        内存分配有静态分配和动态分配两种
       静态分配在程序编译链接时分配的大小和使用寿命就已经确定，而应用上要求操作系统可以提供给进程运行时申请和释放任意大小内存的功能，这就是内存的动态分配。
        因此动态分配将不可避免会产生内存碎片的问题，那么什么是内存碎片？内存碎片即“碎片的内存”描述一个系统中所有不可用的空闲内存，这些碎片之所以不能被使用]]></description><category></category></item><item><title><![CDATA[fwrite和fread函数的用法小结]]></title><link>https://blog.youkuaiyun.com/lxqfirst/article/details/8029684</link><guid>https://blog.youkuaiyun.com/lxqfirst/article/details/8029684</guid><author>lxqfirst</author><pubDate>Fri, 28 Sep 2012 19:00:53 +0800</pubDate><description><![CDATA[fwrite和fread是以记录为单位的I/O函数，fread和fwrite函数一般用于二进制文件的输入输出。
#include 
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *s]]></description><category></category></item><item><title><![CDATA[软件测试方法大汇总]]></title><link>https://blog.youkuaiyun.com/lxqfirst/article/details/8005622</link><guid>https://blog.youkuaiyun.com/lxqfirst/article/details/8005622</guid><author>lxqfirst</author><pubDate>Fri, 21 Sep 2012 20:13:35 +0800</pubDate><description><![CDATA[软件测试方法种类繁多，记忆起来混乱， 如果把软件测试方法进行分类, 就会清晰很多。 我参考一些书籍和网上的资料， 把常用的软件测试方法列出来， 让大家对软件测试行业有个总体的看法。
 
从测试设计方法分类
 





测试名称


测试内容




Black box黑盒测试


把软件系统当作一个“黑箱”，无法了解或使用系统的内部结构及知识。从软件的行为]]></description><category></category></item><item><title><![CDATA[全局变量、局部变量、静态全局变量、静态局部变量的区别]]></title><link>https://blog.youkuaiyun.com/lxqfirst/article/details/8005607</link><guid>https://blog.youkuaiyun.com/lxqfirst/article/details/8005607</guid><author>lxqfirst</author><pubDate>Fri, 21 Sep 2012 20:08:43 +0800</pubDate><description><![CDATA[C++变量根据定义位置的不同，具有不同的作用域，作用域可分为6种：全局作用域，局部作用域，语句作用域，类作用域，命名作用域和文件作用域。
从作用域看：
全局变量具有全局作用域。全局变量只需在一个源文件中定义，就可以作用于所有的源文件。当然，其他不包括全局变量定义的源文件需要用extern关键字再次声明这个全局变量。
静态局部变量具有局部作用域。它只被初始化一次，自从第一次初始化直到程序与你新]]></description><category></category></item><item><title><![CDATA[蓄水池抽样问题]]></title><link>https://blog.youkuaiyun.com/lxqfirst/article/details/8005441</link><guid>https://blog.youkuaiyun.com/lxqfirst/article/details/8005441</guid><author>lxqfirst</author><pubDate>Fri, 21 Sep 2012 18:47:06 +0800</pubDate><description><![CDATA[为分析用户行为，系统常需存储用户的一些query，但因query非常多，故系统不能全存，设系统每天只存m个query，现设计一个算法，对用户请求的query进行随机选择m个，请给一个方案，使得每个query被抽中的概率相等，并分析之，注意：不到最后一刻，并不知用户的总请求量。
 
蓄水池抽样问题
随机抽样问题表示如下：
要求从N个元素中随机的抽取k个元素，其中N无法确定。
这种应用的场景]]></description><category></category></item><item><title><![CDATA[malloc/free与new/delete的区别]]></title><link>https://blog.youkuaiyun.com/lxqfirst/article/details/8004596</link><guid>https://blog.youkuaiyun.com/lxqfirst/article/details/8004596</guid><author>lxqfirst</author><pubDate>Fri, 21 Sep 2012 15:43:18 +0800</pubDate><description><![CDATA[相同点：都可用于申请动态内存和释放内存
不同点：
（1）操作对象有所不同。
malloc与free是C++/C 语言的标准库函数，new/delete 是C++的运算符。对于非内部数据类的对象而言，光用maloc/free 无法满足动态对象的要求。对象在创建的同时要自动执行构造函数， 对象消亡之前要自动执行析构函数。由于malloc/free 是库函数而不是运算符，不在编译器控制权限之内，不]]></description><category></category></item><item><title><![CDATA[判断栈的增长方向]]></title><link>https://blog.youkuaiyun.com/lxqfirst/article/details/8001801</link><guid>https://blog.youkuaiyun.com/lxqfirst/article/details/8001801</guid><author>lxqfirst</author><pubDate>Thu, 20 Sep 2012 21:05:00 +0800</pubDate><description><![CDATA[dreamhead老大曾经讨论过这个问题，寻找一种可移植的方式来判断栈的增长方向，见《栈的增长方向》。 今天在读Ruby hacking guide第5章，介绍alloca函数的部分，提到ruby实现的C语言版本的alloca.c，读了下代码，发现这里倒是实现了一个很漂亮的函数用于 实现判断栈的增长方向，利用了局部static变量，与dreamhead老大的想法其实是一致的。
cpp 代码]]></description><category></category></item><item><title><![CDATA[栈增长方向与大端/小端问题]]></title><link>https://blog.youkuaiyun.com/lxqfirst/article/details/7999260</link><guid>https://blog.youkuaiyun.com/lxqfirst/article/details/7999260</guid><author>lxqfirst</author><pubDate>Thu, 20 Sep 2012 10:59:47 +0800</pubDate><description><![CDATA[栈增长和大端/小端问题是和CPU相关的两个问题。
在内存管理中，与栈对应是堆。对于堆来讲，生长方向是向上的，也就是向着内存地址增加的方向；对于栈来讲，它的生长方式是向下的，是向着内存地址减小的方向增长。在内存中，“堆”和“栈”共用全部的自由空间，只不过各自的起始地址和增长方向不同，它们之间并没有一个固定的界限，如果在运行时，“堆”和 “栈”增长到发生了相互覆盖时，称为“栈堆冲突”，系统肯定垮台。]]></description><category></category></item><item><title><![CDATA[找出数组中两个只出现一次的数字]]></title><link>https://blog.youkuaiyun.com/lxqfirst/article/details/7997512</link><guid>https://blog.youkuaiyun.com/lxqfirst/article/details/7997512</guid><author>lxqfirst</author><pubDate>Wed, 19 Sep 2012 19:39:06 +0800</pubDate><description><![CDATA[转自：http://blog.youkuaiyun.com/ewanyou/archive/2011/05/25/6445209.aspx
http://www.cnblogs.com/aLittleBitCool/archive/2011/04/14/2015720.html
问题描述：一个数组中除了两个数字之外，其余数字均出现了两次(或偶数次)。请写出程序查找出这两个只出现一次的数字，要求时间复杂度为]]></description><category></category></item><item><title><![CDATA[根据二叉树的先序、中序遍历结果重建二叉树]]></title><link>https://blog.youkuaiyun.com/lxqfirst/article/details/7984611</link><guid>https://blog.youkuaiyun.com/lxqfirst/article/details/7984611</guid><author>lxqfirst</author><pubDate>Sun, 16 Sep 2012 15:24:32 +0800</pubDate><description><![CDATA[先序遍历为：1 2 4 5 3 6，中序遍历为：4 2 5 1 6 3
思路：
先序遍历的第一个元素为根节点，在中序遍历中找到这个根节点，从而可以将中序遍历分为左右两个部分，左边部分为左子树的中序遍历，右边部分为右子树的中序遍历，进而也可以将先序遍历除第一个元素以外的剩余部分分为两个部分，第一个部分为左子树的先序遍历，第二个部分为右子树的先序遍历。
由上述分析结果，可以递归调用构建函数，根据]]></description><category></category></item></channel></rss>