- 博客(16)
- 收藏
- 关注
原创 自己写的velocity-edit Eclipse插件(Update: 2012-9-9)
其实也不是完全自己写的,是在velocity-web edit上改来的,那东西自2006年以来就没有更新过。所以自己接着搞,主要是添加了分词补全(很爽的东东)!详见:http://code.google.com/p/velocity-edit/PS:网站里面的示例图片可能被和谐,因为是放在picasa里面的。影响不大。也可以到这里下载:http://marketplace.ec
2012-06-13 21:20:01 2509
原创 一种基于CAS的无锁并发HashTable设计及C代码实现
在多线程环境下,我们常常用Java的ConcurrentHashMap,但其实这个Map仍然是要使用锁的,只不过使用了一种被称为StripeLock的方式。这里我们试着实现一个完全无锁的HashTable。首先我们必须弄清楚HashMap有哪些操作,哪些地方是临界区(CriticalRegion),哪里不是。一个完整的HashMap无非就以下几种操作: 1. 插入数据(PUT)
2013-05-12 12:27:35 6302
原创 Subversion原理
版本号Subversion(以下简称svn)是使用版本号来区分不同的文件版本的。对于其来说,每一次commit都会生成一个新的版本号并且是全局的,为了保障这个性质,svn要求每一次数据操作都是原子的。如图:这些文件者存在$repoBase$/repos/db/revs/ 目前下。存储结点Svn使用结点表示每一个文件或目录,其数据存储结构类似于文件系统但有又不一样的地
2012-12-19 15:43:41 6997
原创 Java正则引发的思考
pre: 感谢 九任 对我的支持~情况回放:上周预发机器出了一个问题,CPU不定时会近100%满负载运行。重启以后就会恢复,之后又会到达100%,而且不会自恢复。首先想到的是程序出现了死循环,于是用jstack把栈打印出来,发现业务线程都停在了regex相关的代码上,有死循环的样子。查看栈,发现一切都是由ClientFilter这个类开始,其使用了matcher.match
2012-10-19 19:29:39 3691 3
原创 Java Worker 设计模式
Worker模式想解决的问题异步执行一些任务,有返回或无返回结果使用动机有些时候想执行一些异步任务,如异步网络通信、daemon任务,但又不想去管理这任务的生命周。这个时候可以使用Worker模式,它会帮您管理与执行任务,并能非常方便地获取结果结构很多人可能为觉得这与executor很像,但executor是多线程的,它的作用更像是一个规划中心。而Worker则只是个搬运工
2012-09-17 20:18:20 4319
原创 性能测试 工具 TProfile 代码简析
对TProfile (https://github.com/taobao/TProfiler)产生了兴趣,于是就下下来研究了一下:非常简单小巧,代码质量也很高,最多20个class。其实现的核心原理就是利用javaAgent,在premain函数中使用java.lang.instrument.ClassFileTransformer,对允许采样的类生成org.objectweb.asm.Cla
2012-08-20 19:33:36 4182
原创 Tomcat 5源码分析
老话题了,不过经典代码分析总是能学到很多东西。 PS:图都存在google drive里的,如果你看不到,说明你已经被HX!!过些日子把所有的图都移过来~^ ^目录代码准备与DEBUG调试配置总体结构容器与生命周期管理思想HTTP(TCP)连接管理详细Deployer模块详细资源请求与响应servlet请求servlet 请求响应servlet 加载与管理
2012-08-03 13:45:35 2724
原创 深入理解Linux内存管理机制(一)
深入理解Linux内存管理机制(一)通过本文,您即可以:1. 存储器硬件结构;2.分段以及对应的组织方式;3.分页以及对应的组织方式。注1:本文以Linux内核2.6.32.59本版为例,其对应的代码可以在http://www.kernel.org/pub/linux/kernel/v2.6/longterm/v2.6.32/linux-2.6.32.59.tar.bz2找到。
2012-07-05 17:08:31 2839
原创 手动构造HTTP请求实例讲解
通过本文,你能明白: 1. HTTP 数据请的的方式GET与POST; 2. GET与POST请求体的结构; 3. 常用的HTTP请求头及其意义。1. 带参数的普通页面请求如果我们想向百度请求查询关键字“你好世界”并将结果页返回。GET方式浏览器地址栏中直接输入:http://www.baidu.com/s?wd=%C4%E3%
2012-05-11 15:20:35 15567 2
原创 细说用例图中的关系
[2010-10-03]UML的用例图(Usecase Diagram)是一种很好的捕获需求的方法(比起古老的CRC),但在实际运用中却很少有人 真正能正确地使用它们。这次我要讲的是用例图中include、extend、generalizaion与association四种常见关系的用法。一个用例是描述用户与系统之间的一个交互场景,Bob去ATM取钱,John打电话给10010寻问
2012-03-01 19:57:10 3412
原创 使用Command与Factory模式消除业务代码中的if,else语句
[2010-9-10] 商业软件的一个特点就是拥有众多的业务逻辑,在进行一次操作时都会检查若干业务约束(如是否已登录等)。一般的方式就是采用 大量的if+else进行判断。if (condition) { // do something return false;} else if (condition) { // do something re
2012-03-01 17:10:05 3060 1
原创 自己写的J2EE通用URL重定向工具
[2011-5-8]这次项目需要对一个URL进行重写,一个简单的方法就是针对本次的应用对请求的URL做一个特殊的处理。但是为了以后扩展方便,我把他写成了一个通用的URLRewrite工具类,理论上是支持各种框架的。项目的地址是:http://code.google.com/p/eagle-beak/, GPLv2协议,有兴趣的可以研究一下。这里我给大家举个例子如何使用我的URLRe
2012-02-16 12:13:40 2589
原创 将自己积累的一些重构经验写成半本书
从去年开始就在构想这个,差不多半年啦~期间还要多谢卷爷的大力支持~:)http://issuu.com/sefler/docs/refactoring_patterns如果觉得国外的太慢,这里还有个国内的:http://www.docin.com/p-218579908.html
2012-02-08 21:54:37 1950
原创 Eclipse 自动提示(auto complete)强化
2011 下半年的时候,对Eclipse的自动提示做了点小小的修改,一直没有时间发出来。有兴趣的同学可以用一下。http://www.box.com/s/c8oeb5asxozej3124x0g替换plugins目录下对应的jar包就可以了,注意,只支持3.7.1,因为更改了jdt coreupdate 2012-4-9, 支持e
2012-02-08 21:52:14 3183
原创 使用Command与Factory模式消除业务代码中的if,else语句
http://www.sefler.net/blog.aspx?id=50
2010-10-24 02:03:12 296
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人