Java
Huang_Haixu
性格内向,爱好广泛,生活态度积极,工作良好,有文化。
展开
-
读写进程的互斥锁
以下的代码完成了对某个资源的读写互斥锁,具体说明如下:1. 若正有若干进程在读资源,新的读进程可以共享资源;1. 若正有若干进程在读资源,一条写进程想要独占资源,则写进程等待,到所有读进程全部完成之后控制资源;2. 若正有一个进程在独占写资源,则所有其他进程等待,到这个进程完成之后,其他进程共享或独占资源。 换句话说就是,独占的进程必须等到所有共享进程完成操作之后才能执行;共享的进程也必须等到...2009-03-16 15:27:51 · 187 阅读 · 0 评论 -
健壮的、便捷的、异步的SocketChannel实现
Socket通信比较常见的问题有如下几种:1、设置收发超时;2、正确的每一个bit的收发;3、物理线路故障的保护;4、始终能正常工作;5、尽量少占系统资源;n、……而Socket编程有一个共性,尽管100个人可能会写出1000种实现,但做的事情却只有一种,就是:[b]通信[/b]。为此,通过学习dnsjava的通信代码,加上自己在一些项目中的实践,现在给出TCP通信...2010-04-27 10:34:58 · 192 阅读 · 0 评论 -
打算研究学习一下OSGi和Equinox
看到一本很直接讨论这个题目的书,不过要等到3月1日才出来。[img]http://dl.iteye.com/upload/attachment/205376/b61b9b53-cee9-30e6-bfdb-99daadff55dc.jpg[/img]这本也要等到5月份才能出来。[img]http://dl.iteye.com/upload/attachment/206463/62053...原创 2010-02-10 11:26:55 · 122 阅读 · 0 评论 -
SWT应用的开发实例:没有使用到OSGi
添加音效,以及中奖名单回看功能。SWT应用一枚。具体方法见下:初始界面:[img]http://dl.iteye.com/upload/attachment/390743/e998d9a6-2f03-3604-9569-0df52221a9ba.png[/img]配置界面:[img]http://dl.iteye.com/upload/attachment/3907...2011-01-14 11:27:24 · 142 阅读 · 0 评论 -
如何在类外部调用被子类覆盖的父类方法
题目比较绕。以下用一个简单的例子说明:[code="java"]public class A{ @Override public String toString() { return "A"; } public static void main(String[] args) { A a ...2011-01-20 14:46:58 · 384 阅读 · 0 评论 -
代码实例
代码实例文件原创 2011-02-14 17:17:22 · 142 阅读 · 0 评论 -
代码潜在故障的动态分析
[b][size=large]引子[/size][/b]大家都听说过FindBugs的大名。这是一款静态代码分析的工具。能够直接对字节码文件加以分析,并发现潜在的反模式(anti-pattern),从而有效地促进代码质量的改善。但FindBugs只能用于[b][color=blue]静态[/color][/b]代码分析。这也就意味着对于一些运行时的问题,例如,对于指定对象所属类型的校验...2010-11-16 12:24:15 · 268 阅读 · 0 评论 -
运行期代码问题检查技术的研究
以下用我之前代码中的一个bug作为说明,解释如何实现代码在运行期的问题检查。首先,我们先定义一下待检查的问题。故障代码如下:[code="java"] // Invocator... try { channel = new TcpChannel(SocketChannel.open(), new InetSocketAddress("127.0.0.1", 5656)...2010-11-29 13:30:56 · 108 阅读 · 0 评论 -
动态注册消息类型及处理函数
内容略。参见代码演示。2011-10-01 15:56:34 · 238 阅读 · 0 评论 -
关键应用服务的集群技术模拟
集群技术,也就是俗称的Cluster,是为了保证某种应用不间断的服务而采取的一种技术手段。[align=center][size=large][b]主旨[/b][/size][/align]服务运行在A,B两台机器上,其中一台为主用机,一台为备用机。备用机不断检测主用机的心跳信息。当发现主用机宕机或不能提供服务的时候,会自动转变为主用机,继续提供服务。实现细节包括主备用机之间的...原创 2010-01-08 14:41:36 · 135 阅读 · 0 评论 -
自建的MiniChart库,目前实现了点图、折线图、柱状图和饼图
花了大约一个星期时间做的MiniChart库。由于现在的免费库基本都很大,实现了太多日常使用中基本用不到的图形,而且一个库要关联若干功能库,所以最终还是自己做了。其它不多说,放一个Demo上来,安装了Java运行环境的可以直接运行该例子。...2009-07-15 11:08:38 · 630 阅读 · 0 评论 -
Java2D: 硬件加速 - 第一部分 - 非恒定图像类:Volatile Image
原文地址:[b][url=http://www.javalobby.org/java/forums/m91823967.html#91823967]Java2D: Hareware Accelerating - Part1 - Volatile Images[/url][/b]Java 1.4在Java 2D的功能方面引入了对硬件加速的支持。毫无疑问,硬件加速非常有用——不过有效的使用[u...2009-10-30 16:19:11 · 504 阅读 · 0 评论 -
Java2D: 硬件加速 - 第二部分 - 缓冲策略:Buffer Strategies
原文地址:[url=http://www.javalobby.org/java/forums/m91824097.html#91824097]Java2D: Hardware Accelerating - Part2 - Buffer Strategies[/url][b]利用我们已经学到的东西[/b]昨天的帖子([url=http://www.javalobby.org/forums/t...2009-11-02 12:52:34 · 554 阅读 · 0 评论 -
MultiKeyedMap方案的实现
[b][size=large]方案背景[/size][/b]所谓“MultiKeyedMap”是指允许多个关键字经过组合映射到一个对象的集合类。比方说,我们有一个数据表,大概的结构如下:[table]|ID|[b]姓[/b]|[b]名[/b]|[b]性别[/b]|[b]出生日期[/b]||1|王|小毛|男|'1973-05-18'||2|沈|佩佩|女|'1976-0...2009-11-10 11:55:09 · 628 阅读 · 0 评论 -
class.getResourceAsStream()与ClassLoader.getResourceAsStream()的区别
在jar包里获得流形式的资源有两种方法,一个是Class.getResourceAsStream(String),另一个是ClassLoader.getResourceAsStream(String)。实际上前一个只是引用了后一个的方法。不过其中加了一些判断。而就是这些判断导致了两者之间的差异。参见代码。[code="java"] // java.lang.Class ...2009-11-11 17:33:10 · 183 阅读 · 0 评论 -
对于经典模式匹配算法的一些改动
从一个很长的字符串(或者数组)中,查找某个子串(模式串)是否存在,在算法上被称为是[b]“模式匹配”[/b]。模式匹配的经典算法包括[b]KMP算法[/b]、[b]BM算法[/b]等等。以下简要回顾这些经典算法的思想,并说明我对此的改进想法。[align=center][size=medium][b]KMP算法[/b][/size][/align]首先对模式串进行处理,获得当某...2009-06-12 12:44:58 · 143 阅读 · 0 评论 -
BM方案模式匹配的Java代码实现
速度还算快,例子里比较的文件一共371个,3,293,472字节,比较时间不超过2秒。不过我的机器也很好,CPU: Athelon 64 X2 Dual 5200+,Mem: 2GB DDR2 667。[code="java"]package cn.sh.huang;import java.io.File;import java.io.FileFilter;im...2009-06-17 13:47:33 · 276 阅读 · 0 评论 -
Object数组到泛型数组转换的伪解决方案
闲来无事,想要用目前的Java技术模拟一个对象数据库。最初只是停留在很简单的构想,单用户的,本地的,仅仅是为了实现一些纯对象化的数据库操作: public interface DataBase{ public <T> T[] select(Filter<T> filter); public <T> void insert(T t); ...2009-01-23 10:44:30 · 650 阅读 · 0 评论 -
JarSpur 检查引用包归属的小工具
图形化的界面,允许你导入任意多的在项目中可能需要的Jar包。1.1.0版把文件解析方法变成了菜单方法,缺省不对所有文件执行解析。另外加载的同时就显示在界面上,显得更为友好。1.0.3版支持对class文件的方法解析。[img]http://dl.iteye.com/upload/attachment/295591/ad370762-6c55-3be8-ac6e-685c11...原创 2009-12-25 17:31:50 · 147 阅读 · 0 评论 -
把Spring容器中的bean绑定到通过代码创建的对象
Spring提供了对配置中创建对象的字段实例注入。但如果是通过代码创建或者动态创建的对象,由于不受Spring管理,因此没有机会执行字段实例的注入。Google了一把,没发现可以用的方法。因此只能写了一小段代码。对于这种情况,可以通过反射的方式找到对象的字段和方法定义,并注入之。以下为具体实现。Registry类保存了Spring生成的context,在需要的时候随时可以调用。[code="j...原创 2012-04-26 16:17:45 · 212 阅读 · 0 评论