<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[行走江湖的少侠哥]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/sinat_32588261</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; sinat_32588261]]></copyright><item><title><![CDATA[[easyx游戏开发]---实现透明背景效果]]></title><link>https://blog.youkuaiyun.com/sinat_32588261/article/details/78063174</link><guid>https://blog.youkuaiyun.com/sinat_32588261/article/details/78063174</guid><author>sinat_32588261</author><pubDate>Fri, 22 Sep 2017 15:13:07 +0800</pubDate><description><![CDATA[easyx人物背景透明本人正在做一个冒险岛的单机游戏，素材是从游戏wz解析出来的。代码直接用putimage会有黑边，所以我就处理了一下，用ps把背景改为透明但还是会有黑边。easyx自带的帮助文档里有三元光栅操作码（即位操作模式），挨个试过只有SRCPAINT有类似透明背景的效果，但图片严重失真查看easyx贴吧，发现有很多老铁遇到和我一样的情况。大神提供了一种方法，使用精灵图和掩码图制造透明效果]]></description><category></category></item><item><title><![CDATA[malloc、calloc、realloc的区别]]></title><link>https://blog.youkuaiyun.com/sinat_32588261/article/details/78052915</link><guid>https://blog.youkuaiyun.com/sinat_32588261/article/details/78052915</guid><author>sinat_32588261</author><pubDate>Thu, 21 Sep 2017 15:50:34 +0800</pubDate><description><![CDATA[（1）C语言跟内存分配方式
从静态储存区域分配
内存在程序编译的时候就分配好了，这块内存在整个运行期间都存在。例如全局变量、static变量
在栈上创建
在执行函数时，函数内部的局部变量都可以在栈上创建，函数执行结束时,这些储存单元自动被释放。栈内存分配运算内置于处理器的指令集中，效率高，但分配的内容容量有限.
在堆上分配，亦称动态内存分配
程序在运行时用malloc或new申请任意多]]></description><category></category></item><item><title><![CDATA[简单顺序表实现]]></title><link>https://blog.youkuaiyun.com/sinat_32588261/article/details/73263997</link><guid>https://blog.youkuaiyun.com/sinat_32588261/article/details/73263997</guid><author>sinat_32588261</author><pubDate>Wed, 14 Jun 2017 23:52:00 +0800</pubDate><description><![CDATA[#include 
#include 
#define MAX_LENGTH 20

typedef struct
{
	char name[20];
	double price;
}BOOK;

typedef struct
{
	BOOK *list;
	int length;
}Sqlist;

int InitList(Sqlist *);			//初始化顺序表
void PrintLis]]></description><category></category></item><item><title><![CDATA[简单多线程爬虫+Jsoup分析]]></title><link>https://blog.youkuaiyun.com/sinat_32588261/article/details/73196559</link><guid>https://blog.youkuaiyun.com/sinat_32588261/article/details/73196559</guid><author>sinat_32588261</author><pubDate>Tue, 13 Jun 2017 23:50:05 +0800</pubDate><description><![CDATA[使用简单多线程和Jsoup分析，得到优快云的首页的所有子网页连接。
运行效果如下图


------------------------------------------------------------------------------------------------------




---------------------------------------]]></description><category></category></item><item><title><![CDATA[多线程同步互斥实例——使用synchronized实现线程通信和互斥]]></title><link>https://blog.youkuaiyun.com/sinat_32588261/article/details/72953449</link><guid>https://blog.youkuaiyun.com/sinat_32588261/article/details/72953449</guid><author>sinat_32588261</author><pubDate>Fri, 09 Jun 2017 10:16:00 +0800</pubDate><description><![CDATA[线程互斥概念

线程互斥是指某一资源同时只允许一个访问者对其进行访问，具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序，即访问是无序的。


实现线程同步互斥的四种方式
 
临界区（Critical Section）：适合一个进程内的多线程访问公共区域或代码段时使用
      互斥量 (Mutex)：适合不同进程内多线程访问公共区域或代码段时使用，与临界区相似。]]></description><category></category></item><item><title><![CDATA[线程的几种状态变化]]></title><link>https://blog.youkuaiyun.com/sinat_32588261/article/details/72889918</link><guid>https://blog.youkuaiyun.com/sinat_32588261/article/details/72889918</guid><author>sinat_32588261</author><pubDate>Tue, 06 Jun 2017 23:51:46 +0800</pubDate><description><![CDATA[进程是分配内存的单位，线程是CPU执行的基本单位


1.新建状态
使用new关键字和某线程类的构造方法创建线程对象，则该线程对象处于新建状态，表示系统已经为该线程对象分配了内存空间。处于新建状态的线程可以通过start()方法使他进入就绪状态。


2.就绪状态
该状态的线程已经具有了运行条件，进入线程队列，等待系统为他分配CPU资源，一旦获得CPU资源，该线程就进入运行状态。]]></description><category></category></item><item><title><![CDATA[知乎爬虫---总结我的Java课程设计]]></title><link>https://blog.youkuaiyun.com/sinat_32588261/article/details/72872137</link><guid>https://blog.youkuaiyun.com/sinat_32588261/article/details/72872137</guid><author>sinat_32588261</author><pubDate>Tue, 06 Jun 2017 16:47:16 +0800</pubDate><description><![CDATA[这次课程设计的技术点
1.Java线程池、连接池
2.JDBC编程]]></description><category></category></item><item><title><![CDATA[Java线程简介]]></title><link>https://blog.youkuaiyun.com/sinat_32588261/article/details/72875620</link><guid>https://blog.youkuaiyun.com/sinat_32588261/article/details/72875620</guid><author>sinat_32588261</author><pubDate>Tue, 06 Jun 2017 16:43:37 +0800</pubDate><description><![CDATA[一 线程的定义
线程，是程序执行流的最小单元，线程是进程中的一个实体，是被系统独立调度和分派的基本单位，线程自己不拥有系统资源，只拥有一点儿在运行中必不可少的资源，但它可与同属一个进程的其它线程共享进程所拥有的全部资源。每一个程序都至少有一个线程，若程序只有一个线程，那就是程序本身。
一个线程可以创建和撤消另一个线程，同一进程中的多个线程之间可以并发执行。



二 线程的调度
进程]]></description><category></category></item><item><title><![CDATA[synchronized的四种用法]]></title><link>https://blog.youkuaiyun.com/sinat_32588261/article/details/72880159</link><guid>https://blog.youkuaiyun.com/sinat_32588261/article/details/72880159</guid><author>sinat_32588261</author><pubDate>Tue, 06 Jun 2017 16:27:14 +0800</pubDate><description><![CDATA[一  修饰一个方法
Synchronized修饰一个方法很简单，就是在方法的前面加synchronized，synchronized修饰方法和修饰一个代码块类似，只是作用范围不一样，修饰代码块是大括号括起来的范围，而修饰方法范围是整个函数。

例如：
方法一

public synchronized void method()
{
   // todo
}方法二

public v]]></description><category></category></item><item><title><![CDATA[第4节---模拟登陆知乎]]></title><link>https://blog.youkuaiyun.com/sinat_32588261/article/details/72722954</link><guid>https://blog.youkuaiyun.com/sinat_32588261/article/details/72722954</guid><author>sinat_32588261</author><pubDate>Thu, 25 May 2017 21:07:21 +0800</pubDate><description><![CDATA[上一节爬取了知乎美女精华话题下的子问题，并不需要登陆，直接抓取页面就可以了。但有些页面需要登陆后才可见。
比如 https://www.zhihu.com/topic
登陆状态下是





非登陆状态，




当提到登陆，必须对Http协议有一些了解，推荐《图解Http》。
通俗的说，HTTP 是一种无状态的协议, 协议本身不保留之前的一切请求信息和响应信息，也就是]]></description><category></category></item><item><title><![CDATA[第3节---爬取知乎‘美女’]]></title><link>https://blog.youkuaiyun.com/sinat_32588261/article/details/72572003</link><guid>https://blog.youkuaiyun.com/sinat_32588261/article/details/72572003</guid><author>sinat_32588261</author><pubDate>Tue, 23 May 2017 17:35:48 +0800</pubDate><description><![CDATA[这一节，我们来实现爬取知乎‘美女’话题下的子问题以及相关问题回答的赞同数前三名。


上两节，我们爬取了百度首页的源码，实现了百度LOGO的抓取和下载。这一次我们的目标是知乎。


首先确定我们需要爬取的东西。
1.问题
2.问题描述
3.回答者
4.回答赞同数
5.回答内容（包括图片）
5.回答者个人首页链接]]></description><category></category></item><item><title><![CDATA[爆裂鼓手]]></title><link>https://blog.youkuaiyun.com/sinat_32588261/article/details/72455922</link><guid>https://blog.youkuaiyun.com/sinat_32588261/article/details/72455922</guid><author>sinat_32588261</author><pubDate>Thu, 18 May 2017 00:15:16 +0800</pubDate><description><![CDATA[There are no two words in the English language more harmful than good job,]]></description><category></category></item><item><title><![CDATA[第2节---小任务,爬取百度LOGO链接并下载图片]]></title><link>https://blog.youkuaiyun.com/sinat_32588261/article/details/72287108</link><guid>https://blog.youkuaiyun.com/sinat_32588261/article/details/72287108</guid><author>sinat_32588261</author><pubDate>Wed, 17 May 2017 22:11:07 +0800</pubDate><description><![CDATA[右键点击百度首页LOGO，审查元素，我们可以看到以下内容




在HTML处理中，经常会用到正则表达式，对内容进行过滤，提取目标内容
没有正则基础的小伙伴可以先了解下点击打开
在线正则表达式匹配测试点击打开



我们引入一个匹配模板
	public static String RegexString(String targetStr,String patternStr)]]></description><category></category></item><item><title><![CDATA[第1节---分别用HttpURLConnection和HttpClient爬取百度首页]]></title><link>https://blog.youkuaiyun.com/sinat_32588261/article/details/72228916</link><guid>https://blog.youkuaiyun.com/sinat_32588261/article/details/72228916</guid><author>sinat_32588261</author><pubDate>Mon, 15 May 2017 22:51:18 +0800</pubDate><description><![CDATA[我们的第一节，抽取百度页面源码，分别使用HttpURLConnection和HttpClient实现。
需要了解HttpURLConnection和HttpClient有什么异同的点击这里
如果不清楚GET访问和POST访问的的同学可以看看W3的解释《GET与POST》


接下来，我们用java来实现一个爬取百度首页源码的程序
有前端基础的小伙伴肯定知道，这个页面是由HTML+CSS]]></description><category></category></item><item><title><![CDATA[HttpURLConnection与HttpClient浅析]]></title><link>https://blog.youkuaiyun.com/sinat_32588261/article/details/72228822</link><guid>https://blog.youkuaiyun.com/sinat_32588261/article/details/72228822</guid><author>sinat_32588261</author><pubDate>Mon, 15 May 2017 21:05:31 +0800</pubDate><description><![CDATA[源地址：http://blog.youkuaiyun.com/zhliro/article/details/46877519

HttpURLConnection与HttpClient浅析

1. GET请求与POST请求

HTTP协议是现在Internet上使用得最多、最重要的协议了，越来越多的Java应用程序需要直接通过HTTP协议来访问网络资源。

在介绍HttpURLConnecti]]></description><category></category></item><item><title><![CDATA[利用URLConnection来发送POST和GET请求]]></title><link>https://blog.youkuaiyun.com/sinat_32588261/article/details/72063175</link><guid>https://blog.youkuaiyun.com/sinat_32588261/article/details/72063175</guid><author>sinat_32588261</author><pubDate>Sun, 14 May 2017 20:31:26 +0800</pubDate><description><![CDATA[URL的openConnection()方法将返回一个URLConnection对象，该对象表示应用程序和 URL 之间的通信链接。程序可以通过URLConnection实例向该URL发送请求、读取URL引用的资源。
通常创建一个和 URL 的连接，并发送请求、读取此 URL 引用的资源需要如下几个步骤：
（1）通过调用URL对象openConnection()方法来创建URLConnecti]]></description><category></category></item><item><title><![CDATA[最近]]></title><link>https://blog.youkuaiyun.com/sinat_32588261/article/details/72056319</link><guid>https://blog.youkuaiyun.com/sinat_32588261/article/details/72056319</guid><author>sinat_32588261</author><pubDate>Sun, 14 May 2017 19:37:43 +0800</pubDate><description><![CDATA[有大概一个星期没上来了，突然发现我的访问数多了好几千。蛮惊讶的。
最近在忙网络爬虫，学习了HTTP协议，JScoup库，HttpClient库，fiddler抓包模拟登陆。
因为想用java做一个爬虫类的课程设计。
很久没更博了，因为蓝桥杯告一段落，没有继续写算法题，课程也有很多需要花时间，博客就蛮久没大理了。
爬虫相关的知识比较零散，好的入门资料太少，看了许多资料，买了《自己动手写网络爬]]></description><category></category></item><item><title><![CDATA[二叉树的创建与遍历（递归）]]></title><link>https://blog.youkuaiyun.com/sinat_32588261/article/details/71330750</link><guid>https://blog.youkuaiyun.com/sinat_32588261/article/details/71330750</guid><author>sinat_32588261</author><pubDate>Sun, 07 May 2017 15:18:41 +0800</pubDate><description><![CDATA[#include 
#include 

typedef char ElemType;
typedef struct BitNode
{
	ElemType data;
	struct BitNode *lchild, *rchild;
}BitNode,*BitTree;

CreateBitTree(BitTree *T)
{
	ElemType c;
	scanf("%c",&c);
	if]]></description><category></category></item><item><title><![CDATA[java复制当前项目的文件夹到D盘]]></title><link>https://blog.youkuaiyun.com/sinat_32588261/article/details/70493022</link><guid>https://blog.youkuaiyun.com/sinat_32588261/article/details/70493022</guid><author>sinat_32588261</author><pubDate>Sun, 23 Apr 2017 11:10:06 +0800</pubDate><description><![CDATA[注意一，New一个File对象只会在内存产生一个对象，而不会产生文件，要创建文件需要调用createNewFile();
注意二，如果实在未创建的路径下，需要先创建父文件夹，常用file.getParentFile.mkdirs();


import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutp]]></description><category></category></item><item><title><![CDATA[KMP算法]]></title><link>https://blog.youkuaiyun.com/sinat_32588261/article/details/70305611</link><guid>https://blog.youkuaiyun.com/sinat_32588261/article/details/70305611</guid><author>sinat_32588261</author><pubDate>Fri, 21 Apr 2017 12:43:02 +0800</pubDate><description><![CDATA[分析：第一次看这个算法的时候觉得应该还算简单，真正写的时候才发现，涉及了很多种情况，要完整弄清楚还真不是件简单的事情
引用百度百科:KMP算法是一种改进的字符串匹配算法，由D.E.Knuth，J.H.Morris和V.R.Pratt同时发现，因此人们称它为克努特——莫里斯——普拉特操作（简称KMP算法）。KMP算法的关键是利用匹配失败后的信息，尽量减少模式串与主串的匹配次数以达到快速匹配的目的。]]></description><category></category></item></channel></rss>