<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[学海无涯]]></title><description><![CDATA[Stay hungry, stay foolish ! Direction is more important than perspiration.]]></description><link>https://blog.youkuaiyun.com/Edward2Jason</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Edward2Jason]]></copyright><item><title><![CDATA[Java并发编程实战3-可见性与volatile关键字]]></title><link>https://blog.youkuaiyun.com/Edward2Jason/article/details/72769820</link><guid>https://blog.youkuaiyun.com/Edward2Jason/article/details/72769820</guid><author>Edward2Jason</author><pubDate>Fri, 26 May 2017 14:35:00 +0800</pubDate><description><![CDATA[1. 缓存一致性问题在计算机中，每条指令都是在CPU执行的，而CPU又不具备存储数据的功能，因此数据都是存储在主存（即内存）和外存（硬盘）中。但是，主存中数据的存取速度高于外存中数据的存取速度（这也就是为什么内存条的价格会高），于是计算机就将需要的数据先读取到主存中，计算机运算完成后再将数据写入到外存中。但是，CPU的计算能力太强了，CPU从主存中读取写入数据的速度还是太慢了，严重影响了计算机的性能]]></description><category></category></item><item><title><![CDATA[Java并发编程实战2-线程安全]]></title><link>https://blog.youkuaiyun.com/Edward2Jason/article/details/72675723</link><guid>https://blog.youkuaiyun.com/Edward2Jason/article/details/72675723</guid><author>Edward2Jason</author><pubDate>Wed, 24 May 2017 13:59:08 +0800</pubDate><description><![CDATA[1. 定义一个类是线程安全的，是指在被多个线程访问时，类可以持续进行正确的行为。2. WHY我们想要的是线程安全的程序，为什么在线程安全的开始讲线程安全的类呢？编写线程安全的代码，本质上就是管理对状态的访问，而且通常是共享的、可变的状态。我们讨论的的线程安全性，看起来好像是关于代码的，但是我们真正要做的，是在不可控制的并发访问中保护数据。当多个线程访问一个类时，如果不用考虑这些线程在运行时环境下的调]]></description><category></category></item><item><title><![CDATA[Java内存模型]]></title><link>https://blog.youkuaiyun.com/Edward2Jason/article/details/66968553</link><guid>https://blog.youkuaiyun.com/Edward2Jason/article/details/66968553</guid><author>Edward2Jason</author><pubDate>Wed, 24 May 2017 13:58:08 +0800</pubDate><description><![CDATA[1.内存模型Java内存模型，往往是指Java程序在运行时内存的模型。Java代码是运行在Java虚拟机之上，由Java虚拟机通过解释执行（解释器）或编译执行（编译器）来完成，故Java内存模型，也是指Java虚拟机的运行时内存模型。（1）线程私有区
程序计数器：记录当前线程所执行的字节码的行号
Java虚拟机栈：方法执行的内存区（每个方法执行时会在虚拟机栈中创建一个栈帧；每个方法从调用至执行完成的]]></description><category></category></item><item><title><![CDATA[Eclipse通过maven构建SpringMVC项目]]></title><link>https://blog.youkuaiyun.com/Edward2Jason/article/details/62891144</link><guid>https://blog.youkuaiyun.com/Edward2Jason/article/details/62891144</guid><author>Edward2Jason</author><pubDate>Fri, 17 Mar 2017 16:33:09 +0800</pubDate><description><![CDATA[使用Eclipse新建SpringMVC项目的文章不少，按照文章一步一步操作，总会发现有不一样的地方，因此决定详细记录一次自己在eclipse中通过maven构建SpringMVC项目的过程。一、前提条件
jdk的安装与配置
eclipse
tomcat下载与在eclipse中的配置
maven的下载与在eclipse中的配置
上面4个条件很简单，而且网上的配置教程很多且大同小异不容易引起歧义，这里]]></description><category></category></item><item><title><![CDATA[哈希表（hash table）的基本知识]]></title><link>https://blog.youkuaiyun.com/Edward2Jason/article/details/46452971</link><guid>https://blog.youkuaiyun.com/Edward2Jason/article/details/46452971</guid><author>Edward2Jason</author><pubDate>Thu, 11 Jun 2015 08:19:17 +0800</pubDate><description><![CDATA[1、哈希表的定义
哈希表又叫散列表，英文全称为hash table，是将关键字（key）映射到一个固定大小的数组的数据结构。它主要是通过散列函数(hash function)实现key->value的映射，并将key存放到适当的单元中。
哈希表可以实现O(1)时间内的插入、删除、查找，是一种非常有用的数据结构。

2、散列函数（hash function）

理论上，散列函数应该运算简]]></description><category></category></item><item><title><![CDATA[LeetCode：Climbing Stairs解法]]></title><link>https://blog.youkuaiyun.com/Edward2Jason/article/details/45745943</link><guid>https://blog.youkuaiyun.com/Edward2Jason/article/details/45745943</guid><author>Edward2Jason</author><pubDate>Fri, 15 May 2015 16:01:04 +0800</pubDate><description><![CDATA[题目：
         You are climbing a stair case. It takes
n steps to reach to the top.
         Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top?


代码：]]></description><category></category></item><item><title><![CDATA[推荐系统挖掘长尾了吗？]]></title><link>https://blog.youkuaiyun.com/Edward2Jason/article/details/41207389</link><guid>https://blog.youkuaiyun.com/Edward2Jason/article/details/41207389</guid><author>Edward2Jason</author><pubDate>Mon, 17 Nov 2014 12:41:25 +0800</pubDate><description><![CDATA[很方便的将字符串类型抓换成数]]></description><category></category></item><item><title><![CDATA[C++中string类的常用函数]]></title><link>https://blog.youkuaiyun.com/Edward2Jason/article/details/38402227</link><guid>https://blog.youkuaiyun.com/Edward2Jason/article/details/38402227</guid><author>Edward2Jason</author><pubDate>Wed, 06 Aug 2014 15:48:06 +0800</pubDate><description><![CDATA[a) =,assign()     //赋以新值
b) swap()     //交换两个字符串的内容
c) +=,append(),push_back() //在尾部添加字符
d) insert() //插入字符
e) erase() //删除字符
f) clear() //删除全部字符
g) replace() //替换字符
h) + //串联字符串
i) ==,!=,,>=,]]></description><category></category></item><item><title><![CDATA[Python字符串与数值转换]]></title><link>https://blog.youkuaiyun.com/Edward2Jason/article/details/38385305</link><guid>https://blog.youkuaiyun.com/Edward2Jason/article/details/38385305</guid><author>Edward2Jason</author><pubDate>Tue, 05 Aug 2014 14:41:06 +0800</pubDate><description><![CDATA[Python可以很方便的将字符串]]></description><category></category></item><item><title><![CDATA[Python获取网页状态码]]></title><link>https://blog.youkuaiyun.com/Edward2Jason/article/details/38379931</link><guid>https://blog.youkuaiyun.com/Edward2Jason/article/details/38379931</guid><author>Edward2Jason</author><pubDate>Tue, 05 Aug 2014 09:41:40 +0800</pubDate><description><![CDATA[在网页爬取的时候，有时候需要判断下要爬取网页的网页HTTP状态码，然后再进行相关的工作。
1.网页HTTP状态码
       HTTP状态码表示HTTP协议所返回的响应状态。具体参考：http://baike.baidu.com/view/1790469.htm?fr=aladdin
       HTTP状态码有5种，所有状态码的第一个数字代表了响应的5种状态之一：(1)1XX；(2)2]]></description><category></category></item><item><title><![CDATA[学习编程之前你应该了解的5件事]]></title><link>https://blog.youkuaiyun.com/Edward2Jason/article/details/38379085</link><guid>https://blog.youkuaiyun.com/Edward2Jason/article/details/38379085</guid><author>Edward2Jason</author><pubDate>Tue, 05 Aug 2014 08:29:44 +0800</pubDate><description><![CDATA[1.组织性
我希望我已经意思到了应该有一个有组织性的学习编程的方法，并且知道学习编程并不是孤立的去学，而是要在技术上构建技术。
我不应该在学习web的基础技术——HTML/CSS之前就去学习更复杂的语言，比如Python.
你应该知道像Codeacademy这样的网站，它以一种结构性、富有乐趣的方式来组织编程学习。你应该知道Bentobox这类东西来为你提供一个有组织的编程学习计划。]]></description><category></category></item><item><title><![CDATA[MySQL学习笔记]]></title><link>https://blog.youkuaiyun.com/Edward2Jason/article/details/38364987</link><guid>https://blog.youkuaiyun.com/Edward2Jason/article/details/38364987</guid><author>Edward2Jason</author><pubDate>Mon, 04 Aug 2014 09:18:01 +0800</pubDate><description><![CDATA[MySQL学习笔记]]></description><category></category></item><item><title><![CDATA[当爬虫被拒绝时(Access Denied)]]></title><link>https://blog.youkuaiyun.com/Edward2Jason/article/details/38356213</link><guid>https://blog.youkuaiyun.com/Edward2Jason/article/details/38356213</guid><author>Edward2Jason</author><pubDate>Sun, 03 Aug 2014 10:45:39 +0800</pubDate><description><![CDATA[由于要准备测试数据，不得不大量爬取某个网站的内容。为了防止被封，特意将爬虫设计为单线程同步的爬虫。结果在爬了大约3万个页面的时候，对方发回Access Denied。等一段时间后再启动爬虫，结果还是Access Denied。这时才明白这样的想法太天真了，当初就应该找其它方法来避免才对。而本文则记述了这些其它方法。]]></description><category></category></item><item><title><![CDATA[线性表的操作]]></title><link>https://blog.youkuaiyun.com/Edward2Jason/article/details/37880875</link><guid>https://blog.youkuaiyun.com/Edward2Jason/article/details/37880875</guid><author>Edward2Jason</author><pubDate>Wed, 16 Jul 2014 16:38:27 +0800</pubDate><description><![CDATA[线性表的初始化、查找、插入、删除操作的C语言版]]></description><category></category></item><item><title><![CDATA[自学编程的技术大牛是如何进谷歌的]]></title><link>https://blog.youkuaiyun.com/Edward2Jason/article/details/34060657</link><guid>https://blog.youkuaiyun.com/Edward2Jason/article/details/34060657</guid><author>Edward2Jason</author><pubDate>Tue, 24 Jun 2014 09:10:12 +0800</pubDate><description><![CDATA[即将于下个月上映的电影《The Internship》吸引了不少人的眼球，其中最重要的原因就是在这个落魄大叔们在Google奋斗的励志故事中，观众们可以近距离接触Google的企业文化，而“为Google工作”也是无数IT从业者的梦想之一。不过实际上，故事不仅仅发生在电影当中——David Byttow曾是Google+中某些项目的技术leader，而在此之前他并没有获得过大学学位，最近他就写了一]]></description><category></category></item><item><title><![CDATA[插入排序]]></title><link>https://blog.youkuaiyun.com/Edward2Jason/article/details/21463323</link><guid>https://blog.youkuaiyun.com/Edward2Jason/article/details/21463323</guid><author>Edward2Jason</author><pubDate>Tue, 18 Mar 2014 16:09:27 +0800</pubDate><description><![CDATA[插入排序的基本思想：每一步将一个待排序元素按其关键字值得大小插入到已排序的序列的适当位置上，直到待排序元素插入完为止。
插入排序的思想很简单，但是却有几个小地方容易被忽略，从而在“阴沟里翻船”。
先上个教材里的直接插入排序的程序：
void InsertionSort(int *a,int n)
{
	//直接插入排序算法，结果为升序
	//参数说明：a为数组名;
	//]]></description><category></category></item><item><title><![CDATA[Bipartite graph/network学习]]></title><link>https://blog.youkuaiyun.com/Edward2Jason/article/details/19619243</link><guid>https://blog.youkuaiyun.com/Edward2Jason/article/details/19619243</guid><author>Edward2Jason</author><pubDate>Fri, 21 Feb 2014 15:49:30 +0800</pubDate><description><![CDATA[Bipartite graph/network翻译过来就是：二分图。
维基百科中对二分图的介绍为：二分图是一类图(G,E)，其中G是顶点的集合，E为边的集合，并且G可以分成两个不相交的集合U和V，E中的任意一条边的一个顶点属于集合U，另一顶点属于集合V。一个简单的形象表示如下图：

因此，二分图的表示为：G=(U,V,E)。

如果|U|=|V|，即集合U和集合V的元素个数相等，该二分图]]></description><category></category></item></channel></rss>