<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[kehanxin的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/kehanxin</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; kehanxin]]></copyright><item><title><![CDATA[RAID（独立磁盘冗余阵列）]]></title><link>https://blog.youkuaiyun.com/kehanxin/article/details/112162319</link><guid>https://blog.youkuaiyun.com/kehanxin/article/details/112162319</guid><author>kehanxin</author><pubDate>Sun, 03 Jan 2021 23:17:26 +0800</pubDate><description><![CDATA[RAID 0

数据从内存缓冲区写入磁盘时，根据磁盘数量将数据分成N份，这些数据同时并发写入N块磁盘，使得数据整体写入速度是一块磁盘的N倍；读取的时候也一样，因此具有极快的数据读写速度。但是不做数据备份，N块磁盘中只要有一块损坏，数据完整性就被破坏，其他磁盘的数据也都无法使用了。

RAID 1

数据在写入磁盘时，将一份数据同时写入两块磁盘，这样任何一块磁盘损坏都不会导致数据丢失，插入一块新磁盘就可以通过复制数据的方式自动修复，具有极高的可靠性。

RAID 10

将所有磁盘N平均分成两份，数据同时在两]]></description><category></category></item><item><title><![CDATA[2020-11-15 强引用、软引用、弱引用、幻象引用有什么区别]]></title><link>https://blog.youkuaiyun.com/kehanxin/article/details/109711942</link><guid>https://blog.youkuaiyun.com/kehanxin/article/details/109711942</guid><author>kehanxin</author><pubDate>Sun, 15 Nov 2020 23:28:07 +0800</pubDate><description><![CDATA[强引用（"Strong" Reference）

普通对象引用，只要还有强引用指向一个对象，就能表明对象还“活着”，垃圾收集器不会碰这种对象。对于一个普通的对象，如果没有其他的引用关系，只要超过了引用的作用域或者显式地将相应（强）引用赋值为null，就是可以被垃圾收集了，当然具体回收时机还是要看垃圾收集策略。 

软引用（SoftReference）

一种相对强引用弱化一些的引用，可以让对象豁免一些垃圾收集，只有当JVM认为内存不足时，才会去试图回收软引用指向的对象。JVM会确保在抛出OutOfMemor]]></description><category></category></item><item><title><![CDATA[在VC++6.0中嵌入汇编]]></title><link>https://blog.youkuaiyun.com/kehanxin/article/details/50845866</link><guid>https://blog.youkuaiyun.com/kehanxin/article/details/50845866</guid><author>kehanxin</author><pubDate>Thu, 10 Mar 2016 13:33:04 +0800</pubDate><description><![CDATA[#include<stdio.h>int main()
{
    int a1 = 10, b1 = 0;
    _asm{
        mov eax,a1  //将a1值赋给寄存器eax
        mov b1,eax  //将eax值赋给b1
    }
    printf("result:%d, %d\n", a1, b1);  //result:10 10
    retu]]></description><category></category></item><item><title><![CDATA[linux集成开发环境]]></title><link>https://blog.youkuaiyun.com/kehanxin/article/details/50488387</link><guid>https://blog.youkuaiyun.com/kehanxin/article/details/50488387</guid><author>kehanxin</author><pubDate>Sat, 09 Jan 2016 16:23:27 +0800</pubDate><description><![CDATA[在linux系统中开发C/C++程序，可选择的集成开发环境有Eclipse和Kdevelop，分别运行在GNOME桌面环境和KDE桌面环境。 
Eclipse集成开发环境是linux系统中最简单的开发工具，安装方式为sudo apt-get install eclipse-cdt]]></description><category></category></item><item><title><![CDATA[linux调试工具GDB]]></title><link>https://blog.youkuaiyun.com/kehanxin/article/details/50488213</link><guid>https://blog.youkuaiyun.com/kehanxin/article/details/50488213</guid><author>kehanxin</author><pubDate>Sat, 09 Jan 2016 15:50:04 +0800</pubDate><description><![CDATA[GDB调试器调试的对象是可执行文件，使用GCC或者G++编译器编译源代码时，必须加上-g才能使目标可执行文件包含可被调试的信息。比如:gcc -g -o helloworld helloworld.c //编译并连接程序，使之包含可被调试信息
gdb helloworld //使用GDB调试器打开helloworld可执行文件常用GDB命令及解释
  命令
  解释  file<文件名>
  在GD]]></description><category></category></item><item><title><![CDATA[升级Ubuntu系统或者软件]]></title><link>https://blog.youkuaiyun.com/kehanxin/article/details/50483961</link><guid>https://blog.youkuaiyun.com/kehanxin/article/details/50483961</guid><author>kehanxin</author><pubDate>Fri, 08 Jan 2016 16:37:34 +0800</pubDate><description><![CDATA[安装完Ubuntu系统后可以对系统或者软件进行升级，可通过一下几个方式实现：
apt-get update：升级安装包相关的命令，刷新可安装的软件列表（但是不做任何实际的安装动作）
apt-get upgrade：进行安装包的更新（软件版本的升级）
apt-get dist-upgrade：进行系统版本的升级（Ubuntu版本的升级）
do-release-upgrade：Ubuntu官方推荐的系统]]></description><category></category></item><item><title><![CDATA[安装Windows与Ubuntu双系统]]></title><link>https://blog.youkuaiyun.com/kehanxin/article/details/50479051</link><guid>https://blog.youkuaiyun.com/kehanxin/article/details/50479051</guid><author>kehanxin</author><pubDate>Thu, 07 Jan 2016 21:21:41 +0800</pubDate><description><![CDATA[很多人都想安装linux到自己的本本上，但又不想抛弃windows系统，因此希望安装双系统，但经常会出现很多问题。下面来介绍一直windows与Ubuntu双系统的方法：
安装windows系统，这就不再详细介绍了，可以通过U盘大白菜或者直接硬盘安装
在windows中安装easybcd 2.2，该软件用于设置系统启动项
从网上下载希望安装的Ubuntu系统Ubuntu系统下载网址
下载Ultral]]></description><category></category></item><item><title><![CDATA[Ubuntu14.04 LTS中安装搜狗输入法]]></title><link>https://blog.youkuaiyun.com/kehanxin/article/details/50478925</link><guid>https://blog.youkuaiyun.com/kehanxin/article/details/50478925</guid><author>kehanxin</author><pubDate>Thu, 07 Jan 2016 20:59:12 +0800</pubDate><description><![CDATA[Ubuntu14.04 LTS 中自带的输入法对于用惯搜狗输入法的用户来说并不是很实用，下面就来安装与配置搜狗输入法。
下载搜狗输入法安装deb包： 
搜狗输入法 for linux
双击deb包进入Ubuntu软件中心进行安装
接下来通过 系统设置–>语言支持–>键盘输入方式系统 中选择fcitx项
最后注销系统并重新登陆，在屏幕右上方就能看见搜狗输入法并可以开始实用]]></description><category></category></item><item><title><![CDATA[软件测试分类]]></title><link>https://blog.youkuaiyun.com/kehanxin/article/details/50468420</link><guid>https://blog.youkuaiyun.com/kehanxin/article/details/50468420</guid><author>kehanxin</author><pubDate>Wed, 06 Jan 2016 13:50:40 +0800</pubDate><description><![CDATA[按照软件的开发阶段划分：
单元测试
集成测试
系统测试
验收测试
回归测试
α测试
β测试
按照是否查看源代码划分：
黑盒测试
白盒测试
灰盒测试
按照测试的目标和特性划分：
功能测试
性能测试
健壮性测试
适用性测试
安全性测试
可靠性测试
按照操作方式划分：
手工测试
自动化测试
按照是否执行程序划分：
静态测试
动态测试]]></description><category></category></item><item><title><![CDATA[Shell的系统变量]]></title><link>https://blog.youkuaiyun.com/kehanxin/article/details/50465296</link><guid>https://blog.youkuaiyun.com/kehanxin/article/details/50465296</guid><author>kehanxin</author><pubDate>Tue, 05 Jan 2016 21:19:38 +0800</pubDate><description><![CDATA[Shell的系统变量：
n：n：1表示第一个参数，$2表示第二个参数，以此类推
$#：命令行参数的个数
$0：当前程序的名称
$?：前一个命令或函数的返回码
$*：以”参数1 参数2 …”形式保存所有参数
$@：以”参数1” “参数2” …形式保存所有参数
$$：本程序的（进程ID号）PID
$!：上一个命令的PID]]></description><category></category></item><item><title><![CDATA[Shell命令校正快捷键]]></title><link>https://blog.youkuaiyun.com/kehanxin/article/details/50456894</link><guid>https://blog.youkuaiyun.com/kehanxin/article/details/50456894</guid><author>kehanxin</author><pubDate>Mon, 04 Jan 2016 16:40:56 +0800</pubDate><description><![CDATA[在校正错误的过程中可以一次删除一个字符、一次删除一个单词或者删除一行。
删除单个字符 
删除单个字符可以通过Backspace键或者Delete键或者Ctrl+H键完成
删除单词 
删除单词可以通过Ctrl+W键完成，光标将左移到当前单词的起始处，单词被删除
删除行 
删除行可以通过Ctrl+U键完成，光标所在的行将被删除
终止执行 
在文件界面终止一个程序的快捷键为Ctrl+C键 
程序挂起快捷键]]></description><category></category></item><item><title><![CDATA[系统登录与退出]]></title><link>https://blog.youkuaiyun.com/kehanxin/article/details/50426769</link><guid>https://blog.youkuaiyun.com/kehanxin/article/details/50426769</guid><author>kehanxin</author><pubDate>Tue, 29 Dec 2015 14:58:50 +0800</pubDate><description><![CDATA[Linux有以下两种用户：
root用户：超级权限用户，系统的拥有者，在Linux系统中有且只有一个root用户，它可以在系统中执行任何操作。
普通用户：Linux系统可以创建许多普通用户，并为其指定相应的权限，使其有限地使用Linux系统。
如果用户现在处于图形界面，那么可以按Ctrl+Alt+F1快捷键来获得字符界面。 
如果要切回图形界面，可在字符界面按Alt+F7快捷键切换回图形界面。在普通]]></description><category></category></item><item><title><![CDATA[Linux的分区方法]]></title><link>https://blog.youkuaiyun.com/kehanxin/article/details/50424804</link><guid>https://blog.youkuaiyun.com/kehanxin/article/details/50424804</guid><author>kehanxin</author><pubDate>Tue, 29 Dec 2015 11:04:04 +0800</pubDate><description><![CDATA[分区的表示方法 
一块硬盘最多可以分成4个主分区，因为主引导记录（MBR）中只能记录4个分区的信息，扩展分区也属于主分区类型，并且一个硬盘上只能有一个扩展分区。 
扩展分区中可以划分逻辑分区，扩展分区的信息由MBR记录，而逻辑分区的信息则由扩展分区的引导扇区来记录。 
大多数计算机都使用IDE类型硬盘，每个主板上有两个IDE插槽（IDE0、IDE1），每个插槽可以连接两块硬盘（Master、Slav]]></description><category></category></item><item><title><![CDATA[Ubuntu下载地址]]></title><link>https://blog.youkuaiyun.com/kehanxin/article/details/50424517</link><guid>https://blog.youkuaiyun.com/kehanxin/article/details/50424517</guid><author>kehanxin</author><pubDate>Tue, 29 Dec 2015 10:39:03 +0800</pubDate><description><![CDATA[Ubuntu下载地址 
成功下载文件后，可以通过刻录光盘或者制作一个USB启动盘的方式安装系统。]]></description><category></category></item><item><title><![CDATA[Linux系统组成]]></title><link>https://blog.youkuaiyun.com/kehanxin/article/details/50421781</link><guid>https://blog.youkuaiyun.com/kehanxin/article/details/50421781</guid><author>kehanxin</author><pubDate>Mon, 28 Dec 2015 21:57:34 +0800</pubDate><description><![CDATA[Linux一般有4个主要部分：内核、Shell、文件系统、应用程序。 
Shell是一个命令解释器，它解释用户输入的命令并且把它们送到内核执行。 
目前常见的Shell有Bourne Shell(sh)、Korn Shell(ksh)、C Shell(csh)、Bourne-again Shell(bash)。 
文件系统是文件存放在磁盘等存储设备上的组织方法。Linux能支持多种文件系统，如ext]]></description><category></category></item><item><title><![CDATA[函数参数的传递]]></title><link>https://blog.youkuaiyun.com/kehanxin/article/details/50421075</link><guid>https://blog.youkuaiyun.com/kehanxin/article/details/50421075</guid><author>kehanxin</author><pubDate>Mon, 28 Dec 2015 19:56:48 +0800</pubDate><description><![CDATA[函数调用有两种形式：传值调用、引用调用 
传值调用的特点：
传值调用传递的是参数值
调用函数时，先将实参的值计算出来再赋给对应的形参
在函数内对形参的运算与实参完全脱离关系
当函数执行完毕返回时，形参的值不会带到对应的实参中
用值传递方式时，形参是变量；而实参可以是变量，也可以是表达式
引用调用的特点：
引用调用传递的是地址，调用函数时，把实参的地址赋予对应的形参
因为形参和实参共用同一个地址，所在]]></description><category></category></item><item><title><![CDATA[内存的动态分配]]></title><link>https://blog.youkuaiyun.com/kehanxin/article/details/50420153</link><guid>https://blog.youkuaiyun.com/kehanxin/article/details/50420153</guid><author>kehanxin</author><pubDate>Mon, 28 Dec 2015 17:10:13 +0800</pubDate><description><![CDATA[动态内存分配函数原型：#include <stdlib.h>
void *malloc(size_t size)
void free(void *ptr);malloc()函数的作用是分配内存，参数size是分配内存的字节数。如果分配内存成功，返回内存指针；如果分配内存失败，那么返回空指针NULL。 
当申请的内存不再使用时需要利用free()函数进行释放。char *str = NULL;/* 分]]></description><category></category></item><item><title><![CDATA[void类型指针]]></title><link>https://blog.youkuaiyun.com/kehanxin/article/details/50420041</link><guid>https://blog.youkuaiyun.com/kehanxin/article/details/50420041</guid><author>kehanxin</author><pubDate>Mon, 28 Dec 2015 16:54:55 +0800</pubDate><description><![CDATA[void类型指针是一种特殊的指针，本身不属于任何类型，可以代表任何类型的指针。 
只要不明确要处理的数据是什么类型，就可以使用”void *”来定义，需要当做某种类型来使用时只要做类型转换即可。int num = 10;
void *pnum = (void *)&num;
printf("%d\n", *((int *)pnum));    /* 输出10 */]]></description><category></category></item><item><title><![CDATA[字符串转换为数值函数]]></title><link>https://blog.youkuaiyun.com/kehanxin/article/details/50419843</link><guid>https://blog.youkuaiyun.com/kehanxin/article/details/50419843</guid><author>kehanxin</author><pubDate>Mon, 28 Dec 2015 16:31:28 +0800</pubDate><description><![CDATA[字符串转换为数值函数的原型：#include <stdlib.h>
int atoi(const char *nptr);
long int atol(const char *nptr);
double atof(const char *nptr);这些函数把字符串（参数nptr）转换为某种类型数值，转换得到数值的类型为函数原型左边的类型。printf("%d\n", atoi("123"));]]></description><category></category></item><item><title><![CDATA[搜索字符串strstr()函数]]></title><link>https://blog.youkuaiyun.com/kehanxin/article/details/50419741</link><guid>https://blog.youkuaiyun.com/kehanxin/article/details/50419741</guid><author>kehanxin</author><pubDate>Mon, 28 Dec 2015 16:16:47 +0800</pubDate><description><![CDATA[strstr()函数的原型：#include <string.h>
char *strstr(const char *s1, const char *s2);strstr()函数从字符串s1中搜索第一次出现字符串s2的位置，如果能搜索到，那么返回相应位置（指针）；如果搜索不到，那么返回NULL（空指针）；如果字符串s2为空（长度为0），那么返回字符串s1。char *str = "this\tis\]]></description><category></category></item></channel></rss>