- 博客(27)
- 资源 (2)
- 收藏
- 关注
原创 Mina源码学习-IoFuture
<br /> IoSession的一些IO操作是通过异步的方式实现的,通过IoFuture这种模式可以将异步操作实现同步的特性,这样可以让各种不同的应用根据自身的需要予以选择,同时内嵌的事件通知方式,可以实现异步通知的功能。<br /><br />其中await、awaitUninterruptibly可以等待操作的完成,以实现同步的特性,另外removeListener和addListener通过注册侦听器来实现异步通知的功能。
2011-02-13 20:08:00
824
原创 org.apache.commons.lang.ArrayUtils记录
<br />public static Map toMap(Object[] array) { if (array == null) { return null; } final Map map = new HashMap((int) (array.length * 1.5)); for (int i = 0; i < array.length; i++) { Object objec
2010-12-23 13:10:00
1728
原创 Collection源码学习之List.listIterator方法
List方法接口: public ListIterator listIterator() { return listIterator(0); } public ListIterator listIterator(final int index) { if (indexsize()) throw new IndexOutOfBoundsException("Index: "+index); return new ListItr(index); }ListIte
2010-12-23 12:08:00
611
原创 Collection源码学习之toArray方法
<br /><br />public Object[] toArray() { // Estimate size of array; be prepared to see more or fewer elements Object[] r = new Object[size()]; Iterator<E> it = iterator(); for (int i = 0; i < r.length; i++) { if (! it.hasNext())
2010-12-23 11:34:00
1527
1
原创 RMI Server 多网卡问题
<br /> 问题描述:当服务器端存在多网卡的时候,需要指定RMI Server对应的IP地址,否则可能存在RMI客户端找不到正确的RMI服务的情况。<br /> 通过设置java.rmi.server.hostname属性可以指定正确的RMI服务地址。可以在启动Java程序的时候通过-Djava.rmi.server.hostname=IP来指定。
2010-12-22 20:10:00
2468
原创 Eclipse中Tomcat配置
-Xms512m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=128m -Dfile.encoding=UTF8 -Duser.timezone=GMT+8:00 -Djava.security.auth.login.config=%Tomcat_HOME%/conf/jaas.config-Djava.endorsed.dirs=%Tomcat_HOME%/common/endorsed-Dcatalina.base=%Tomcat_HOME%-Dca
2010-11-16 13:39:00
531
原创 byte stack
<br />byte stack,实现了一个byte栈,该栈的数据从索引“0”开始弹出,每次可以弹出若干个byte。<br />public class ByteStack { private byte[] element; private int size; public ByteStack(byte[] element) { if (element == null) { throw new IllegalArgumentException("null element.");
2010-09-19 13:55:00
533
原创 byte数组
<br />参考ArrayList的实现方式,实现了一个byte数组,提供了数组的动态添加功能。可以应用于协议开发时的数据的组装。<br />public final class ByteArray { private byte[] element; private int size; public ByteArray() { this(10); } public ByteArray(int initialCapacity) { element = new byte[init
2010-09-19 13:51:00
1670
原创 代码的坏味道-目录
Duplicated Code(重复代码)Long Method(过长函数)Large Class(过大的类)Long Parameter List(过长参数列)Divergent Change(发散式变化)Shotgun Surgery(霰弹式修改)Feature Envy(依恋情结)Data Clumps(数据泥团)Primitive Obsession(基本类型偏执)Switch Statements(switch语句)Parallel Inheritance Hierarchies(平行继承提醒)L
2010-09-15 18:48:00
657
原创 ActiveMQ 之 Failover Transport
<br />将Failover Transport添加到其它 Transpor 层之上可以实现自动重连的功能。<br />Failover Transport允许用户指定任意个uri,Failover Transport随机选择其中一个进行连接,如果连接失败,将继续从其中选择其他的进行的uri进行连接。<br />语法是:<br />failover:(uri1,...,uriN)?transportOptionsorfailover:uri1,...,uriN <br />具体配置参数参考:<br
2010-09-14 13:37:00
9498
原创 ActiveMQ 之 Topic Persistence
1、创建connection,为connection设置clientId,当使用Durable Subscription方式时,你必须在建立connection的时候设置ClientID。对于每一个生产者或者消费者来说,其clientID必须唯一。ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(userName, password,brokerURL);connectionFactory.setUse
2010-09-13 19:38:00
8143
1
原创 Java实践
异常抛出不合适,返回null更合适。一般情况下出现如下三种情形才须抛出异常:编程错误;客户端代码错误;资源失败。<br /> public AcsNode getAcsNodeByCode_NodeTypeCode(String nodeTypeCode, String code) throws NoSuchRecordException { AcsNode node = getUniqueEntityByPropNames(new String[]{"nodeTypeCode", "code"},
2010-09-10 11:17:00
527
原创 Java for each语句
源码public void inForEach1() { for (String s : getStrings()) { } } public void outForEach1() { String[] strs = getStrings(); for (String s : strs) { } } public void simpleFor() { String[] strs = getStrings(); int
2010-09-06 20:37:00
1249
原创 Java Map foreach效率
Java Map foreach效率通过比较源码和字节码,查看在Map 的entrySet在foreach中Java到底做了些什么。源码:public class ForEachTest { public void inForEach(int count) { Map map = new HashMap(); for (Entry entry : map.entrySet()) { } } public void outForEach(short count) {
2010-09-06 20:13:00
15108
原创 Java存储结构-JVM规范学习笔记
Java 存储结构-JVM规范学习笔记Java线程每个Java虚拟机线程具有一个私有的,与线程同时创建的Java栈,同时每个线程还拥有一个属于自己的PC寄存器。Java栈中存储Java虚拟机框架,Java虚拟机框架可以是堆分配的。Java栈的存储器不需要连续的,Java虚拟机规范允许Java栈大小是固定的或动态变化的。以下情况将抛出异常:如果线程中计算需要比所允许大的Java栈,将抛出StackOverflowError;如果栈是可动态分配的,当视图扩展Java栈但没有足够的存储器来实现时,将抛出OutOf
2010-09-06 19:07:00
1246
原创 DAO模式应用
<br /> <br />DAO:Data Access Object,数据访问对象模式,是一种将底层数据存储和高层业务逻辑进行分离的模式。<br />在标准的DAO模式实现中,包含三种基本的组件:DaoFactory、Dao、DaoImpl,即:Dao工厂、Dao接口、Dao实现。一个Dao接口描述了对一种类型的数据资源的访问接口,而一个Dao实现则包含了对特定数据源的访问逻辑。以“企业”这种特定的数据资源为例:<br />“企业”这种资源可能有两种方式进行存储,一种是采用关系数据库进行存储,一种是采用X
2010-08-11 20:12:00
677
原创 Java Meta Annotation & Spring Annotation
Java Meta AnnotationJava Meta Annotation:用于修饰其它Annotation的Annotation。@Retention:可以设置三种值RetentionPolicy.CLASS、RentionPolicy.RUNTIME、RentionPolicy.SOURCE,表明该新定义Annotation能够保留的时间,分别是:class文件中保留、运行时保留、Java代码级保留@Target:表示该新定义Annotation的作用目标,具体可参考API文档。@Document
2010-08-10 20:36:00
1237
原创 ServletResponse(或ServletRequest)中输入输出流的问题
ServletResponse(或ServletRequest)中输入输出流的问题1、ServletResponse中的getOutputStream和getWrite同时只能使用其中的一个。2、ServletResponse通过getOutputStream和getWrite获取的IO流不需要开发人员显式调用close方法进行关闭。
2010-07-20 13:25:00
832
转载 结合使用Hibernate和XDoclet
结合使用Hibernate和XDoclet 转载自:http://blog.163.com/scpazd_1982/blog/static/1125932420076933421634/ Hibernate本身没有提供生成映射文件的机制。我们可以使用一种新的工具--XDoclet,作为一种通用的代码生成工具,XDoclet可用于生成任何类型的文件,包
2009-11-25 19:59:00
600
原创 硬盘安装Ubuntu
硬盘安装Ubuntu 说明:‘#’以及‘#’后面的文字均为注释。下载Ubuntu文本界面安装程序。例如:Ubuntu9.10版的文本界面安装程序为ubuntu-9.10-alternate-i386.iso。下载上一步下载的文本界面安装程序对应的initrd.gz和vmlinuz文件。下载路径:http://archive.ubuntu.com/ubuntu/dists/
2009-11-07 17:13:00
805
1
转载 quartz cron 表达式详解
quartz cron 表达式详解字段 允许值 允许的特殊字符 秒 0-59 , - * / 分 0-59 , - * / 小时 0-23 , - * / 日期
2009-01-21 16:18:00
3406
原创 byte[]转String
byte[]转String:public static String bytesToHexString(byte[] data) { StringBuffer sb = new StringBuffer(); for (int i = 0; i sb.append(String.format("%1$02X", data[i]).toUpperCase()).app
2009-01-07 08:57:00
755
原创 JUnit测试
利用Ant中的junit和junitreport进行测试:Ant中junit标签对以Test结尾的class进行测试,生成xml测试结果,然后junitreport根据${test.style.dir}中的样式文件junit-noframes.xsl生成html测试报告。build.xml文件:"test" depends="compile,compile-test"> "test-
2009-01-06 11:31:00
696
原创 MySQL查看数据库连接数
cmd命令行输入:mysql> show processlist;或者:mysqladmin -u root -p123456 processlistmysqladmin -u root -p123456 status
2009-01-06 11:04:00
2414
原创 byte[]与int
byte[]转换为intpublic int bytesToInt(byte[] data) { if (data.length != 4) { throw new IllegalArgumentException(); } ByteBuffer byteBuffer = ByteBuffer.allocate(4); byteBuffer.put(data,
2009-01-05 16:18:00
752
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人