<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[lrq1988的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/lrq1988</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; lrq1988]]></copyright><item><title><![CDATA[一年读书记之2014]]></title><link>https://blog.youkuaiyun.com/lrq1988/article/details/42246639</link><guid>https://blog.youkuaiyun.com/lrq1988/article/details/42246639</guid><author>lrq1988</author><pubDate>Mon, 29 Dec 2014 22:21:58 +0800</pubDate><description><![CDATA[一年读书记之2014




前言：换工作之后，这个blog基本没更新过，天天加班，也是懈怠了。



    眼看他起朱楼，眼看他宴宾客，眼看他楼塌了。 攥不住时间，也抵不住这世界变化。一咋眼的工夫，一年又过去了。突然想起去年年底总结了2013年重要的读书清单，索性今年也照例来一篇。
    印象中今年买书不算多，读的也一般，惰矣。Kindle也不在了，除了电脑上零星地扫扫博]]></description><category></category></item><item><title><![CDATA[java回调方法]]></title><link>https://blog.youkuaiyun.com/lrq1988/article/details/30246189</link><guid>https://blog.youkuaiyun.com/lrq1988/article/details/30246189</guid><author>lrq1988</author><pubDate>Thu, 12 Jun 2014 14:57:12 +0800</pubDate><description><![CDATA[最近被人问到java实现回调方法d]]></description><category></category></item><item><title><![CDATA[java同步工具类]]></title><link>https://blog.youkuaiyun.com/lrq1988/article/details/28153653</link><guid>https://blog.youkuaiyun.com/lrq1988/article/details/28153653</guid><author>lrq1988</author><pubDate>Mon, 02 Jun 2014 23:05:52 +0800</pubDate><description><![CDATA[知识复习～～～


tong]]></description><category></category></item><item><title><![CDATA[This引用逸出]]></title><link>https://blog.youkuaiyun.com/lrq1988/article/details/28145781</link><guid>https://blog.youkuaiyun.com/lrq1988/article/details/28145781</guid><author>lrq1988</author><pubDate>Mon, 02 Jun 2014 22:37:36 +0800</pubDate><description><![CDATA[《java并发编程实战》里面有段代码，原来看的时候稍微you dian]]></description><category></category></item><item><title><![CDATA[主要排序算法java实现]]></title><link>https://blog.youkuaiyun.com/lrq1988/article/details/27813113</link><guid>https://blog.youkuaiyun.com/lrq1988/article/details/27813113</guid><author>lrq1988</author><pubDate>Sat, 31 May 2014 14:04:08 +0800</pubDate><description><![CDATA[整理一下主要的p]]></description><category></category></item><item><title><![CDATA[遗忘]]></title><link>https://blog.youkuaiyun.com/lrq1988/article/details/27238487</link><guid>https://blog.youkuaiyun.com/lrq1988/article/details/27238487</guid><author>lrq1988</author><pubDate>Tue, 27 May 2014 22:58:11 +0800</pubDate><description><![CDATA[今天下午，在emacs里面写了下clojure，]]></description><category></category></item><item><title><![CDATA[我们仨]]></title><link>https://blog.youkuaiyun.com/lrq1988/article/details/23139979</link><guid>https://blog.youkuaiyun.com/lrq1988/article/details/23139979</guid><author>lrq1988</author><pubDate>Mon, 07 Apr 2014 23:48:17 +0800</pubDate><description><![CDATA[古道驿上，我们仨失散了。
    读了几十页杨绛的《我们仨》，悲伤一直伴随挥散不去。鼻腔和瞳孔分明有东西一直向外涌。谁能摆脱生老病死的命运，不知何时起，我一直对人生的终场怀着深深的恐惧。今日，我们送走了谁，明日，又是谁在送别我们。人生终究是一场别离，别离苦，若如此，又何必这徒劳的相聚。既有今日，何必当初。黛玉说，“人有聚就有散，聚时欢喜，到散时岂不冷清？既清冷则伤感，所以不如倒是不聚的好。比如那]]></description><category></category></item><item><title><![CDATA[SICP换零钱问题clojure改写版]]></title><link>https://blog.youkuaiyun.com/lrq1988/article/details/22385963</link><guid>https://blog.youkuaiyun.com/lrq1988/article/details/22385963</guid><author>lrq1988</author><pubDate>Fri, 28 Mar 2014 11:28:39 +0800</pubDate><description><![CDATA[scheme版见：http://blog.pengqi.me/2012/06/07/sicp-making-change/]]></description><category></category></item><item><title><![CDATA[erlang、clojure快速排序对比]]></title><link>https://blog.youkuaiyun.com/lrq1988/article/details/21696043</link><guid>https://blog.youkuaiyun.com/lrq1988/article/details/21696043</guid><author>lrq1988</author><pubDate>Fri, 21 Mar 2014 09:47:06 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[历史的风]]></title><link>https://blog.youkuaiyun.com/lrq1988/article/details/21204465</link><guid>https://blog.youkuaiyun.com/lrq1988/article/details/21204465</guid><author>lrq1988</author><pubDate>Fri, 14 Mar 2014 00:45:35 +0800</pubDate><description><![CDATA[在都市的横流中，科技与道德、传统与新生等等在这泛起浪花，我也舶着船儿在上面飘。我臂膀无力，撑不起船篙，我却哼哼唧唧地吟着“杨柳岸，晓风残月”，幻回那千年之前。两宋风云，赵匡胤一根哨棒打下了赵宋江山，杯酒释兵权，自此，宋词唱响了“柳永”，却也唱衰了边塞。宋人象我一样无力的臂膀，没了大唐人的雄风，而只有“万般皆下品，唯有读书高”，没有了“十步杀一人，千里不留行”，而有了“凄凄惨惨戚戚”，遗忘了“骏马牡]]></description><category></category></item><item><title><![CDATA[高效且可伸缩的结果缓存]]></title><link>https://blog.youkuaiyun.com/lrq1988/article/details/20568957</link><guid>https://blog.youkuaiyun.com/lrq1988/article/details/20568957</guid><author>lrq1988</author><pubDate>Wed, 05 Mar 2014 21:19:01 +0800</pubDate><description><![CDATA[最近重新翻看《java并发编程实战》，现在读这本书还是挺轻松的。
然而不得不说，java并发的坑儿还是太多了，不小心写出的程序要么伸缩性不够，要么安全性问题或者活跃性问题。
譬如这个构建缓存的例子。
先看，第一个伸缩性极差的代码
public class Memoizer1 implements Computable {
    private final Map cache = new ]]></description><category></category></item><item><title><![CDATA[clojure读取文件->转换Map]]></title><link>https://blog.youkuaiyun.com/lrq1988/article/details/19813099</link><guid>https://blog.youkuaiyun.com/lrq1988/article/details/19813099</guid><author>lrq1988</author><pubDate>Mon, 24 Feb 2014 11:25:47 +0800</pubDate><description><![CDATA[一月份的那篇博客http://blog.youkuaiyun.com/lrq1988/article/details/18091901处理数据，其大概意思是读取文件，并将其内容封装到MAP里，使外部能方便索引。当文件有修改的时候，可以使用执行器设置定时更新任务。
当时用java写的，周末在家看clojure，就想用clojure重写一下这个程序，折腾了一会子，感觉又忘了这个clojure序列的惰性化，遂作罢]]></description><category></category></item><item><title><![CDATA[谈编程中函数作为参数]]></title><link>https://blog.youkuaiyun.com/lrq1988/article/details/19046431</link><guid>https://blog.youkuaiyun.com/lrq1988/article/details/19046431</guid><author>lrq1988</author><pubDate>Mon, 10 Feb 2014 20:19:08 +0800</pubDate><description><![CDATA[再也不跟没接触过函数式编程的面向对象程序员谈函数式了，简直没法交流啊，要争红了脸呐。
下班的时候看erlang，跟同事聊，我说函数式编程里面函数可以直接作为参数传递，而像java这样的面向对象语言不可以，结果立马被反驳。
俩人争论不休啊，我可急死了，搞的我不想一起聊啊不想聊啊。也或许我水平还不够，心里没底吧。


譬如函数式语言clojure，从http://qiujj.com/stat]]></description><category></category></item><item><title><![CDATA[多线程处理大数据（4）]]></title><link>https://blog.youkuaiyun.com/lrq1988/article/details/18091901</link><guid>https://blog.youkuaiyun.com/lrq1988/article/details/18091901</guid><author>lrq1988</author><pubDate>Fri, 10 Jan 2014 19:19:18 +0800</pubDate><description><![CDATA[多线程或者并发程序，总是不经意间带着陷阱，今天发现程序还是好多改进的空间。
简直是一个程序引发的血案呐。
另外，volatile boolean 可以用AtomicBoolean替换。AtomicBoolean是原子性的，而volatile只有可见性。
package com.kong.trinet.util;
import java.io.BufferedReader;
import ja]]></description><category></category></item><item><title><![CDATA[多线程处理大数据（再续）]]></title><link>https://blog.youkuaiyun.com/lrq1988/article/details/17959133</link><guid>https://blog.youkuaiyun.com/lrq1988/article/details/17959133</guid><author>lrq1988</author><pubDate>Tue, 07 Jan 2014 14:56:11 +0800</pubDate><description><![CDATA[接前篇，前面的程序，是在自己的 mac 上跑的，几十万条数据速度还可以，但是今天用公司的电脑就变慢了。
同样是开启了四条线程处理，但是公司电脑明显不给力。观察了一下CPU，开启四条线程，基本上CPU占用率就跑满了，可能阻塞的时间远大于计算的时间，从而导致变慢。
于是，就写了个单线程的版本，明显快多了，大概不到1秒的样子。
【注意】 started = true ;一定不要忘记写，不然调用的时]]></description><category></category></item><item><title><![CDATA[多线程读取大数据文件（续）]]></title><link>https://blog.youkuaiyun.com/lrq1988/article/details/17954715</link><guid>https://blog.youkuaiyun.com/lrq1988/article/details/17954715</guid><author>lrq1988</author><pubDate>Tue, 07 Jan 2014 10:58:17 +0800</pubDate><description><![CDATA[昨天的程序有点错误，重新粘一个， for循环终结括号括错了。
另外新加了个destroy()方法
package com.kong.trinet.util;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IO]]></description><category></category></item><item><title><![CDATA[多线程读取大数据文件]]></title><link>https://blog.youkuaiyun.com/lrq1988/article/details/17927911</link><guid>https://blog.youkuaiyun.com/lrq1988/article/details/17927911</guid><author>lrq1988</author><pubDate>Mon, 06 Jan 2014 21:01:17 +0800</pubDate><description><![CDATA[工作之故，要读取一个几十万条的文本，就写了这个程序，倒腾了俩天，并不一定是最终版，姑且先记录下来。
1、本地读取以后改为网络读取
2、timer是为了作定时刷新
3、容器启动时，首先加载MobileUtil.init()方法
4、多核服务器，加载会更快，根据服务器内核切割获取的内容来组装map
5、基于线程安全考虑，HashMap可能改为ConcurrentHashMap
import]]></description><category></category></item><item><title><![CDATA[java并发编程设计]]></title><link>https://blog.youkuaiyun.com/lrq1988/article/details/17847609</link><guid>https://blog.youkuaiyun.com/lrq1988/article/details/17847609</guid><author>lrq1988</author><pubDate>Sat, 04 Jan 2014 20:55:55 +0800</pubDate><description><![CDATA[读完了Venkat Subramaniam的《java虚拟机并发编程》中文译本，对并发编程有了更进一步的认识。
这本书，名字读来让人有些误解，以为是讲java虚拟机的，其实内容讲的是在jvm上的几种编程模型。
这里权当作个笔记，梳理思路，回忆下书的大概内容。


熟悉java的童鞋知道，java是实体与状态绑定的。所以在处理共享状态时，要考虑线程安全问题。
虽然处理状态不可避免，但我们]]></description><category></category></item><item><title><![CDATA[《洗澡》之后]]></title><link>https://blog.youkuaiyun.com/lrq1988/article/details/17485209</link><guid>https://blog.youkuaiyun.com/lrq1988/article/details/17485209</guid><author>lrq1988</author><pubDate>Sun, 22 Dec 2013 15:30:06 +0800</pubDate><description><![CDATA[周末在家读完《洗澡》，读得很快，不是很细致。
     书主要讲的建国后知识分子改造，以及改造前的故事。
     统供三部分，第一部分乍读不明所以，其实是主要讲的各路人才、知识分子被聚集到一起，来到所谓的研究院。到第二部分人物脉络渐渐清晰，刻画人物、以及之间的故事。到第三部分，我就很喜欢了，尤其是每个人的“洗澡”检讨，不动声色地揭露出每个人的丑陋和恶俗。读来很好笑，想想却是那个时代真实的发生]]></description><category></category></item><item><title><![CDATA[MapReduce]]></title><link>https://blog.youkuaiyun.com/lrq1988/article/details/17259139</link><guid>https://blog.youkuaiyun.com/lrq1988/article/details/17259139</guid><author>lrq1988</author><pubDate>Wed, 11 Dec 2013 10:27:34 +0800</pubDate><description><![CDATA[第一次看见MapReduce的概念是hadoop书里，然后就是学习函数式编程clojure的时候，再后来发现storm中也存在。
维基百科如是解释：MapReduce是Google提出的一个软件架构，用于大规模数据集（大于1TB）的并行运算。概念“Map（映射）”和“Reduce（化简）”，及他们的主要思想，都是从函数式编程语言借来的，还有从矢量编程语言借来的特性。
下面整理比较一下，三种环境]]></description><category></category></item></channel></rss>