四火专栏

热爱设计、编码,热爱纯粹的软件

【博客搬家】博客搬家了,请大家访问我的个人网站 http://www.raychase.net/

CSDN的博客多是多,不过有太多浮躁的事情,我只想静下心来好好做软件,能和大家在一起讨论和分享是一件无比快乐的事情。 搬到http://www.raychase.net/上面去了,欢迎光临。

2011-09-18 17:52:28

阅读数 1042

评论数 0

泛型趣谈

Java中的泛型带来了什么好处?规约。就像接口定义一样,可以帮助对于泛型类型和对象的使用上,保证类型的正确性。如果没有泛型的约束,程序员大概需要在代码里面使用大量的类型强制转换语句,而且需要非常清楚没有标注的对象实际类型,这是容易出错的、恼人的。但是话说回来,泛型可不只有规约,还有很多有趣的用法...

2014-01-08 21:42:20

阅读数 13

评论数 0

java.util.concurrent并发包诸类概览

java.util.concurrent包的类都来自于JSR-166:Concurrent Utilities,官方的描述叫做“The JSR proposes a set of medium-level utilities that provide functionality commonly...

2014-01-04 14:42:47

阅读数 21

评论数 0

排序算法一览(二):归并类排序、分布类排序和混合类排序

归并类排序 归并排序(Merge Sort) 归并排序是一种分治法,它反复将两个已经排序的序列合并成一个序列(平均时间复杂度O(nlogn),最好时间复杂度O(n)): 申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列; 设定两个指针,最初位置分别为两个已经排序序列...

2013-12-22 22:04:22

阅读数 12

评论数 0

排序算法一览(一):交换类、选择类和插入类排序

最近在复习常用排序算法发现了下面这个罪恶的排序方法列表页面,我被那些有趣的排序方法诱惑了,就把上面介绍的各种排序方法都整理了一遍(我觉得维基百科比其它我看过的算法书都要易懂一些),前半部分可以说还乐在其中,后半部分就有些厌烦了,不过最后总算是坚持看完了。以下是第一部分,包括交换类排序、选择类排序...

2013-12-18 22:31:53

阅读数 33

评论数 0

谈谈足球青训、中国教育以及工程师培养

我从98年世界杯就开始看球了,从最早国内的申花球迷,到后来长期看英超诸强的足球、西甲双雄的足球,我也算是一介有一点儿球龄的老球迷。一直以来我很想说一说关于足球青训的话题,今年在莫耶斯带领下的曼联,球踢得无比难看,比赛输得体无完肤,我觉得我找到了一个契机。比赛看得多了,也就不那么容易激动,看球更加...

2013-12-13 08:22:42

阅读数 11

评论数 0

Trie树和其它数据结构的比较

Trie树,又叫做前缀树或者是字典树,是一种有序的树。从空字符串的根开始,往下遍历到某个节点,确定了对应的字符串,也就是说,任意一个节点的所有子孙都具备相同的前缀。每一棵Trie树都可以被看做是一个简单版的确定有限状态的自动机(DFA,deterministic finite automat...

2013-12-10 13:52:17

阅读数 13

评论数 0

给我一把榔头,满世界都是钉子

一篇文章存成一个巨大的文件,总共大约有一亿个单词,要找出里面重复次数最多的。怎么做? Hadoop是一把威力巨大的榔头,在使用过Hadoop之后,看着任何东西都想把它给map reduce了。有一个关于Jeff Dean的小笑话,说在睡不着觉的时候,一般人是数羊,Jeff Dean是map r...

2013-11-29 11:33:08

阅读数 27

评论数 0

不同团队的困惑

小S是一名新员工,他和很多踌躇满志的大学毕业生一样,实习+工作,他来到了一家非常对口自己爱好的公司,来到了一支温暖的团队A,这支30人的大团队由老员工和新员工混合组成,年龄结构复合,有男有女,有从二十几岁到四十几岁的程序员,做的视频编解码项目。整个项目组的成员都是视频编解码领域的能手或专家,最...

2013-11-23 12:11:34

阅读数 6

评论数 0

Hadoop无法解决的问题

因为项目的需要,学习使用了Hadoop,和所有过热的技术一样,“大数据”、“海量”这类词语在互联网上满天乱飞。Hadoop是一个非常优秀的分布式编程框架,设计精巧而且目前没有同级别同重量的替代品。另外也接触到一个内部使用的框架,对于Hadoop做了封装和定制,使得更满足业务需求。我最近也想写一些...

2013-11-11 21:55:11

阅读数 22

评论数 0

实际技术选型的考虑因素

最近在工作中我需要把数据从公共的Data Warehouse(数据仓库)导出来,放到属于我们team自己账号的云端存储资源中去,然后再在我们的应用中查询这样的资源。需要导出数据是因为直接从Data Warehouse查询数据是一个缓慢而且异步的过程,而我们的应用数据查询需要实时性。现在要解决这个...

2013-10-27 10:47:03

阅读数 22

评论数 0

Java8集合中的Lambda表达式

本文翻译自《Java 8 Explained: Applying Lambdas to Java Collections》。 Lambdas表达式是Java 8的主题,在Java平台上我们期待了很久。但是,如果如果我们不在集合中使用它的话,就损失了很大价值。把现有接口迁移成为lambda风格接...

2013-10-18 22:31:05

阅读数 6

评论数 0

换个角度思考问题

最近在看一本书,叫做《思考的乐趣》,第26节“我最爱的证明”,里面介绍了这样一则有趣的问题(文章链接在此): 设想一个平面上布满间距为1的横纵直线,形成由一个个1×1正方形组成的网格。任意给一个面积小于1个单位的图形,证明这个图形总能放在网格中而不包含任何一个格点。 初看这个论断...

2013-10-03 21:58:12

阅读数 37

评论数 0

留心那些潜在的系统设计问题

在系统设计阶段考虑全面很难,有许多人倾向于把整个设计分成若干阶段,在迭代中完成整个设计,这本身是非常好的,但是,就如同“先做出来,以后再优化”这样的经典谎言一样,本身并无错,只是许多程序员都不习惯于真正的迭代设计和迭代优化。举例来说,有一个日益复杂的类,每个人都修改一点点,一直到最后都没有人愿意...

2013-09-19 23:37:26

阅读数 7

评论数 0

Lombok介绍

最初我是在公司内部的broadcast上面听到有principal介绍到它的,和AspectJ归在一起。看了几个例子之后觉得有点意思,就去Lombok的官网上扒了一下。我们已经知道向AspectJ、CGLib等等都可以做到对已有Java代码在字节码层级的改变,无论是编译时期静态织入还是运行时期动...

2013-09-08 23:21:14

阅读数 18

评论数 0

不安分的工程师

在超级杯中,拜仁和切尔西战成平手,点球大战中,20岁的年轻的球员卢卡库站出来罚球,遗憾的是罚失点球,令整支球队失败,丢掉冠军。对于失落和愧疚的年轻人,切尔西的传奇射手德罗巴在Instagram上鼓励了他: “只有那些从不踢点球的人才不会罚失点球,罚点球你足够强大。你需要从中学习,我也有过类...

2013-09-02 20:30:16

阅读数 32

评论数 0

JavaScript 3D图表

在说3D图表以前,首先要明确两个概念,一个是数据的维度,一个是呈现数据载体的维度。对于数据的维度,一维的数据呈现,但是呈现的载体是二维的平面图,比如饼图: 已经能够很清晰地观察到数据的分布情况。数据如果增加一个维度,变成二维,呈现载体依然是二维的平面图: 数据表达依然是清晰的。但是,...

2013-08-24 19:36:38

阅读数 13

评论数 0

工程师的生活

我忽然很好奇,想知道其他软件工程师的生活是什么样的?人永远都没有活在别人心中的形象那么绚烂,生活中总有无数烂事烦事需要处理,但是每个人都有自己享受生活的方式。逛了逛了各式技术博客和论坛,我发现大家似乎都太严肃了,太谦逊了,太学术了。做软件本来是一件很有意思的事情,但是这些帖子和文章无非就包括这...

2013-08-17 12:09:07

阅读数 10

评论数 0

Memcached调优

项目中有一个对实时响应性比较高的服务,引入了Memcached以减少延迟和减少数据库压力。但是期间遇到了一些问题,这里记录一些调优细节。   客户端选择 最开始我使用的是Memcached Java Client,但是最后放弃了,放弃原因包括: 有时会出现的“No Thread F...

2013-08-02 19:56:24

阅读数 12

评论数 0

使用堆外内存

有时候对内存进行大对象的读写,会引起JVM长时间的停顿,有时候则是希望最大程度地提高JVM的效率,我们需要自己来管理内存(看起来很像是Java像C++祖宗的妥协吧)。据我所知,很多缓存框架都会使用它,比如我以前使用过的EhCache(给它包装了个酷一点的名字,叫BigMemory),以及现在项目...

2013-07-28 21:30:15

阅读数 13

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭