摘要:
注:出于记录对 zookeeper 的学习研究成果目的,并分享经验,根据官方文档翻译整理而成本文,原文地址: http://zookeeper.apache.org/doc/trunk/zookeeperOver.htmlZooKeeper:一个用于分布式应用的分布式协调服务Zookeeper 是一... 阅读全文
摘要:
在写代码时遇到了“判断一个正整数是否是2的N次方”的问题,不想调用 java.lang 的 Math 类库进行浮点运算,觉得转换为浮点不是个好办法。遂在网上搜索了一下,发现有人列出来好几种写法,列举几种:1、通过循环除2;这种方法不值一提,略过;2、针对32位/64位只有有限个 2 的N次方的常量值... 阅读全文
摘要:
都说 Cglib 创建的动态代理的运行性能比 JDK 动态代理能高出大概 10 倍,今日抱着怀疑精神验证了一下,发现情况有所不同,遂贴出实验结果,以供参考和讨论。代码很简单,首先,定义一个 Test 接口,和一个实现 TestImpl 。Test 接口仅定义一个方法 test,对传入的 int 参数... 阅读全文
摘要:
已经不记得最早接触到 Disruptor 是什么时候了,只记得发现它的时候它是以具有闪电般的速度被介绍的。于是在脑子里, Disruptor 和“闪电”一词关联了起来,然而却一直没有时间去探究一下。 最近正在进行一项对性能有很高要求的产品项目的研究,自然想起了闪电般的 Disruptor ... 阅读全文
摘要:
一直觉得 Equinox 的 P2 是个神秘的东西,常常使得 Eclipse 或 Equinox 表现出一些奇怪的行为,于是找来官方文档读一读,试图更好地理解与应用 Equinox 。官方文档很多,只能挑其中比较关注的部分来阅读,边看边记下吧。1、 Getting Start ---原文:http:... 阅读全文
摘要:
有以下的代码: 1 try { 2 ArrayList lstA = new ArrayList(); 3 ArrayList lstB = new ArrayList(); 4 5 // Ar... 阅读全文
摘要:
.gitignore 配置文件用于配置不需要加入版本管理的文件,配置好该文件可以为我们的版本管理带来很大的便利,以下是个人对于配置 .gitignore 的一些心得。1、配置语法: 以斜杠“/”开头表示目录; 以星号“*”通配多个字符; 以问号“?”通配单个字符 以方括号“[]”包含单个字符的匹配列表; 以叹号“!”表示不忽略(跟踪)匹配到的文件或目录; 此外,git 对于 .ignore 配置文件是按行从上到下进行规则匹配的,意味着如果前面的规则匹配的范围更大,则后面的规则将不会生效;2、示例: (1)规则:fd1/* 说明:忽略目录 fd1 下的全部内容;注意,不... 阅读全文
摘要:
里氏代换原则(Liskov Substitution Principle LSP)面向对象设计的基本原则之一。 里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。 LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。里 氏代换原则是对“开-闭”原则的补充。实现“开-闭”原则的关键步骤就是抽象化。而基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现 抽象化的具体步骤的规范。示例 LSP讲的是基类和子类的关系。只有当这种关系存在时,里氏代换关系才存在。如果两个具体的类A,B之间的关. 阅读全文
摘要:
近日初学 WS-Addressing 协议,将探索过程及心得记下,以作分享。学习的过程主要分为三个阶段:1)了解 WS-Addressing 协议;2)通过一个支持 WS-Addressing 的框架创建一个 WebService 实例;3)分析在 WS-Addressing 协议下 WebService 的 client 和 server 的消息交换过程。一、WS-Addressing 简介 WS-Addressing 是 WebService 协议栈中的一项协议,从字面上看,Addressing 一词表明了其用途:web service 寻址。但这个描述显得过于宽泛,尚不足以理解该协议的. 阅读全文
摘要:
由于项目需要,用到了 mina 框架进行 tcp 通讯。我是初次接触 mina,于是从 Hello world 开始学习了 mina 。期间遇到了一个奇怪的发送数据的延迟问题,解决的过程是曲折的,但找出的原因却令我“吐血”(没真的吐……)。不管怎样,还是贴出来一下作反面案例,希望初次学习 mina 的时候能够绕过这个地雷。hello world 演示很简单,分为两部分,server 和 client 。server 在 8800 端口上起 tcp 侦听,将 client 发送来的消息打印到标准输出(System.out)。只有两个类 HelloServer.java 和 HelloHandle 阅读全文