<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[学而时习之]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/linukey</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; linukey]]></copyright><item><title><![CDATA[博客迁址]]></title><link>https://blog.csdn.net/linukey/article/details/73825995</link><guid>https://blog.csdn.net/linukey/article/details/73825995</guid><author>linukey</author><pubDate>Wed, 28 Jun 2017 09:11:52 +0800</pubDate><description><![CDATA[博客迁址本博客不再维护， 
新地址：这里写链接内容]]></description><category></category></item><item><title><![CDATA[Android存储选项简析]]></title><link>https://blog.csdn.net/linukey/article/details/65934782</link><guid>https://blog.csdn.net/linukey/article/details/65934782</guid><author>linukey</author><pubDate>Sat, 25 Mar 2017 22:05:29 +0800</pubDate><description><![CDATA[Android存储选项简析Android存储选项简析
简述
共享首选项
内部存储和外部存储
内部存储
数据区域
缓存区域
清除数据和清除缓存
外部存储
权限
检查介质的可用性
公有文件和私有文件
存储公有文件
存储私有文件
缓存文件
数据库
各部分目录图示
总结简述
  对于用户来说，Android系统的存储状况，貌似不像windows那样直观，使用windows的时候，硬盘空间每个细微的地方，都能]]></description><category></category></item><item><title><![CDATA[Android-系统权限的前世今生]]></title><link>https://blog.csdn.net/linukey/article/details/64438474</link><guid>https://blog.csdn.net/linukey/article/details/64438474</guid><author>linukey</author><pubDate>Tue, 21 Mar 2017 11:33:45 +0800</pubDate><description><![CDATA[Android-系统权限的前世今生Android-系统权限的前世今生
简述
Android权限等级
正常权限
危险权限
权限组
Android权限前后版本变化
权限的申请
声明权限
运行时权限请求
检查权限
请求权限
处理请求结果
总结简述
  自从Android6.0面世之后，Android中的权限要求就更加严格和灵活了，6.0系统之前，一个app应用所需的权限，只需要在其安装的时候一次性向用户请]]></description><category></category></item><item><title><![CDATA[Android-从数据库到Content Provider]]></title><link>https://blog.csdn.net/linukey/article/details/64189951</link><guid>https://blog.csdn.net/linukey/article/details/64189951</guid><author>linukey</author><pubDate>Mon, 20 Mar 2017 22:39:44 +0800</pubDate><description><![CDATA[Android-从数据库到Content ProviderAndroid-从数据库到Content Provider
使用SQLite数据库
SQLiteOpenHelper
数据库的增删改查
Content Value
Cursor
怎样执行
插入
查询
删除
更新
使用ContentProvider
创建ContentProvider
注册ContentProvider
发布ContentPro]]></description><category></category></item><item><title><![CDATA[浅谈Android View]]></title><link>https://blog.csdn.net/linukey/article/details/63682720</link><guid>https://blog.csdn.net/linukey/article/details/63682720</guid><author>linukey</author><pubDate>Sun, 19 Mar 2017 23:00:19 +0800</pubDate><description><![CDATA[浅谈Android View浅谈Android View何为View
View是怎样呈现给用户的
View的绘制流程
onMeasure
onLayout
onDraw
布局管理器Demo
自定义View
自绘控件
组合控件
继承控件
总结何为View
  Android中所有可视化组件，都是从View类派生而来的，通常我们把它们称为视图。 
  ViewGroup是视图组，是对View类的扩展，一]]></description><category></category></item><item><title><![CDATA[Hadoop-1.2.1分布式集群搭建（亲测有效版）]]></title><link>https://blog.csdn.net/linukey/article/details/62870457</link><guid>https://blog.csdn.net/linukey/article/details/62870457</guid><author>linukey</author><pubDate>Fri, 17 Mar 2017 10:14:44 +0800</pubDate><description><![CDATA[Hadoop-1.2.1分布式集群搭建Hadoop-121分布式集群搭建
环境条件
安装jdk并配置环境
安装ssh-client
安装ssh-server
配置ssh免密登录
安装配置Hadoop-121
搭建hadoop-121分布式集群
分别配置两个虚拟机的hadoop
启动Hadoop集群
进入管理后台查看集群情况
使用ip别名应对ip变动情况
总结环境条件
  操作系统：Ubuntu16.]]></description><category></category></item><item><title><![CDATA[排序算法总结]]></title><link>https://blog.csdn.net/linukey/article/details/61429797</link><guid>https://blog.csdn.net/linukey/article/details/61429797</guid><author>linukey</author><pubDate>Sat, 11 Mar 2017 21:52:35 +0800</pubDate><description><![CDATA[冒泡排序
选择排序
插入排序
归并排序
希尔排序
堆排序
快速排序
计数排序
基数排序冒泡排序/**
 * 冒泡排序
 * 最坏时间复杂度:O(n^2)
 * 平均时间复杂度:O(n^2)
 * 空间复杂度:O(1)
 * 算法稳定度:稳定
 */
template<class T>
void bubbleSort(T* start, T* end){
    if(start >= end) re]]></description><category></category></item><item><title><![CDATA[二叉树操作总结]]></title><link>https://blog.csdn.net/linukey/article/details/60473662</link><guid>https://blog.csdn.net/linukey/article/details/60473662</guid><author>linukey</author><pubDate>Sun, 05 Mar 2017 20:05:53 +0800</pubDate><description><![CDATA[#include<iostream>
#include<stack>
#include<queue>
#include<string>
#include<vector>
using namespace std;template<class T>
struct Node{
    T value;
    Node* pLeft;
    Node* pRight;
    bool isFirst;]]></description><category></category></item><item><title><![CDATA[字符串匹配算法]]></title><link>https://blog.csdn.net/linukey/article/details/60472991</link><guid>https://blog.csdn.net/linukey/article/details/60472991</guid><author>linukey</author><pubDate>Sun, 05 Mar 2017 19:58:29 +0800</pubDate><description><![CDATA[字符串匹配算法字符串匹配算法
朴素字符串匹配算法
Rabin-Karp算法
有限自动机算法
KMP算法
笔面高频题
单词间的逆序调整
前n字符后移
两字字符按照字典序最小拼接
判断两个字符串是否互为旋转词朴素字符串匹配算法//朴素字符串匹配算法(输出偏移量)
/*
 * 朴素字符串匹配算法是通过一个循环找到所有有效偏移，该循环对n-m+1可能的s值进行检测，
 * n是要在上面进行查找的对象大小，m]]></description><category></category></item><item><title><![CDATA[C# 类型、对象、方法执行时的相互关系的一点思考]]></title><link>https://blog.csdn.net/linukey/article/details/54581111</link><guid>https://blog.csdn.net/linukey/article/details/54581111</guid><author>linukey</author><pubDate>Wed, 18 Jan 2017 08:53:22 +0800</pubDate><description><![CDATA[C# 类型、对象、方法执行的相互关系的一点思考


  本文将从以下几个问题，来阐述C#类型、对象、线程栈、托管堆运行时的相互关系。




C 类型对象方法执行的相互关系的一点思考
new操作符的作用
方法执行的过程
类型对象与对象之间的关系
方法表







new做的事情
方法执行的过程
类型对象与对象之间的关系
方法表
静态方法、实例方法、虚方法的运行时区别

new操作符的作用]]></description><category></category></item><item><title><![CDATA[.net 异步编程小结]]></title><link>https://blog.csdn.net/linukey/article/details/47977243</link><guid>https://blog.csdn.net/linukey/article/details/47977243</guid><author>linukey</author><pubDate>Tue, 25 Aug 2015 14:57:09 +0800</pubDate><description><![CDATA[.net 异步编程小结
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;

namespace Test
{
    public class MyMain
    {]]></description><category></category></item><item><title><![CDATA[C#事件]]></title><link>https://blog.csdn.net/linukey/article/details/47933469</link><guid>https://blog.csdn.net/linukey/article/details/47933469</guid><author>linukey</author><pubDate>Mon, 24 Aug 2015 02:04:58 +0800</pubDate><description><![CDATA[C#事件
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

/*
事件概述
事件具有以下特点：
发行者确定何时引发事件，订户确定执行何种操作来响应该事件。
一个事件可以有多个订户。 一个订户可处理来自多个发行者的多个事件。
没有订户的事件永远也不会引发。
事件通常用于通知用]]></description><category></category></item><item><title><![CDATA[作用域内枚举（C++11）]]></title><link>https://blog.csdn.net/linukey/article/details/46544909</link><guid>https://blog.csdn.net/linukey/article/details/46544909</guid><author>linukey</author><pubDate>Thu, 18 Jun 2015 10:23:57 +0800</pubDate><description><![CDATA[//作用域内枚举

#include

using namespace std;


/*
	下面这两种定义枚举的方式有错误，错误提示为枚举数sum重定义。
	在C++11之前我们不能在类中定义两个枚举类型有相同的枚举数。这样会导致枚举数重定义的错误。
*/
//class Test1
//{
//public:
//	enum {sum = 10};
//	enum {sum = 20};
//]]></description><category></category></item><item><title><![CDATA[vs2013中设置输出缓冲区]]></title><link>https://blog.csdn.net/linukey/article/details/46495723</link><guid>https://blog.csdn.net/linukey/article/details/46495723</guid><author>linukey</author><pubDate>Sun, 14 Jun 2015 22:58:33 +0800</pubDate><description><![CDATA[//vs2013设置输出缓冲区

/*windows下是没有设置输出buffer的，也就是说C++中cout的时候，会直接输出，而不是先进入缓冲区等缓冲区满或者被刷新再输出。但是我们可以手动设置缓冲区*/
#include

using namespace std;

int main()
{
	/*  这个段代码在Linux下用g++执行不会输出，因为1被存到缓冲区中，而windows下会输出，]]></description><category></category></item><item><title><![CDATA[C标准I/O缓冲区：全缓冲和行缓冲]]></title><link>https://blog.csdn.net/linukey/article/details/46495577</link><guid>https://blog.csdn.net/linukey/article/details/46495577</guid><author>linukey</author><pubDate>Sun, 14 Jun 2015 22:43:15 +0800</pubDate><description><![CDATA[ISO C标准I/O提供了全缓冲和行缓冲

全缓冲：在进行I/O操作时，只有当I/O缓冲区被填满时，才进行真正的I/O操作。所以对于全缓冲的缓冲区可由标准I/O例程自动刷新，即当缓冲区填满时，还有一种方法就是调用函数fflush进行刷新。

行缓冲：在I/O操作时，输入输出遇到换行符时进行，进行真正的I/O操作。对于行缓冲，标准I/O每一行缓冲区的长度是固定的，所以只要填满了缓冲区，即使没有遇到换]]></description><category></category></item><item><title><![CDATA[C++动态数组简单模拟二叉堆]]></title><link>https://blog.csdn.net/linukey/article/details/46454105</link><guid>https://blog.csdn.net/linukey/article/details/46454105</guid><author>linukey</author><pubDate>Thu, 11 Jun 2015 10:19:01 +0800</pubDate><description><![CDATA[//C++动态数组简单模拟二叉堆
#include

using namespace std;

class BinaryHeap
{
private:
	int cap;  //数组最大容量
	int size; //当前元素个数
	int* datas; //数组首地址
public:
	explicit BinaryHeap(int cap_) :cap(cap_), size(0)
	{
]]></description><category></category></item><item><title><![CDATA[哈希表开放寻址法之线性探测法解决冲突问题]]></title><link>https://blog.csdn.net/linukey/article/details/46431287</link><guid>https://blog.csdn.net/linukey/article/details/46431287</guid><author>linukey</author><pubDate>Tue, 09 Jun 2015 20:35:49 +0800</pubDate><description><![CDATA[#include
#include

using namespace std;

class HashTable
{
private:
	enum judge{Empty, Value};
	struct Node
	{
		int data;
		enum judge j;
		Node() :j(Empty){}
	};
	Node* TheNodes;
	int TableSize;
pub]]></description><category></category></item><item><title><![CDATA[哈希表分离链接发解决冲突]]></title><link>https://blog.csdn.net/linukey/article/details/46430857</link><guid>https://blog.csdn.net/linukey/article/details/46430857</guid><author>linukey</author><pubDate>Tue, 09 Jun 2015 19:47:11 +0800</pubDate><description><![CDATA[#include
#include


using namespace std;


class HashTable
{
private:
struct Node
{
int data;
Node* pnext;
Node(int data_) :data(data_), pnext(0){}
Node() :pnext(0){}
};
Node** TheLis]]></description><category></category></item><item><title><![CDATA[类模板友元函数坑死人不偿命的错误]]></title><link>https://blog.csdn.net/linukey/article/details/46367725</link><guid>https://blog.csdn.net/linukey/article/details/46367725</guid><author>linukey</author><pubDate>Thu, 04 Jun 2015 21:33:29 +0800</pubDate><description><![CDATA[错误例程：
#include

using namespace std;

template
class Student
{
private:
	T age;
public:
	Student(T age_) :age(age_){}
	friend bool operator==(const Student& s1, const Student& s2);
};

int main()
{
	]]></description><category></category></item><item><title><![CDATA[C++ 虚函数、静态联编和动态联编、抽象类]]></title><link>https://blog.csdn.net/linukey/article/details/45932807</link><guid>https://blog.csdn.net/linukey/article/details/45932807</guid><author>linukey</author><pubDate>Sat, 23 May 2015 10:41:25 +0800</pubDate><description><![CDATA[﻿﻿
//C++ 虚函数、静态联编和动态联编、抽象类
#include
#include
using namespace std;
class People
{
private:
    string name;
    int age;
public:
    People(string name_, int age_):name(name_), age(age_){}
]]></description><category></category></item></channel></rss>