- 博客(36)
- 收藏
- 关注
Java的动态加载机制分析和应用
转载请注明出处http://chillwarmoon.iteye.com要弄清楚动态加载(热部署),首先要明白以下几点:(1)一个classLoader实例只能对一个类加载一次。(2)通过defineClass方法,可以动态加载类文件的byte数组到classloader实例中(3)ClassLoader的loadClass方法加载类的顺序是:先用bootstrap classLo...
2009-05-27 12:51:12 132
还是源码来的直接---读mina源码
转载请注明出处http://chillwarmoon.iteye.com多好的文档也不如源码来的直接。如果自己的程序对于某种技术过于依赖,有时候仅看那么几页的文档,总是感觉放心不下。还是看看源码,多多理解内部的实现机制为好。一 读源码时,首先要弄清楚代码所涉及到的重要模型及其之间的关系,从整体架构方面理解其组成。1.对于IOService的实现NioSocketConnect...
2009-02-26 23:19:14 148
流量控制中的拥塞避免算法
转载请注明出处http://chillwarmoon.iteye.com之所以要流量控制,有两个原因,一个是网络状况,再一个是接收方的缓存大小。对于网络状况来说,由发送方来看网络拥塞情况,然后通过发送方的拥塞窗口(congestion window aka cwnd)进行流量控制。对于接收方缓存来说,由接收方发给发送方的advertise window来进行流量控制,也就是由接收方的adver...
2009-02-15 12:19:30 154
ssl握手过程和服务器认证
转载请注明出处http://chillwarmoon.iteye.com 1.client向server端发送ssl版本号,cipher设置,随机数(randomly generated data)和其他sever端所要求的信息。2.server端向client端发送ssl版本号,cipher设置,随机数(randomly generated data)和其他client端所要求的信息。s...
2009-02-12 19:53:23 246
keytool的用法
keytool is a key and certificate management utility.keytool -printcert -file abc.cer打印证书abc.cer的信息keytool -export -keystore client.keystore -alias myca -file abc.cer导出证书信息,keystore文件为cli...
2009-02-12 17:07:42 139
tcp timer
Both tcp timers, the 200- and 500-ms TCP timers,go off at times relative to when the kernel was boot strapped. Whenever TCP sets a timer,it can go off anywhere between 1-200 or 1-500 ms in the future....
2009-02-08 10:41:05 284
写在08年年底
写在08年年底08年是我毕业参加工作的第一年,期间做过公司的基础框架,非接触电子钱包一期,二期,公司平台业务框架升级,年底又开始做关于网络通信方面的基础框架。从实践中感触到了真正的软件开发,也增加了不少开发经验。但是几乎每个月都有加班,而且每天花在上下班路上的时间也是很多,忙来忙去,发现比在学校时可利用的时间少了很多,读的书也少了很多。惭愧的是有几本书一直在看,但一直都没有看完。在即将到来的0...
2008-12-31 19:39:02 79
利用maven来建立eclipse项目
目前大多数开源社区的项目都是利用maven来管理的,所以下载开源项目源码之后,怎么样弄到eclipse中呢?方法如下:(1)下载maven,并在环境变量PATH中加入maven的bin路径(2)在项目源码目录中运行mvn eclipse:eclipse。maven默认的存储路径通过localRepository来指定,在MAVEN_HOME/conf/settings.xml中设置,默认为...
2008-12-23 13:13:04 73
读commons-logging源码有感
转载请注明出处http://chillwarmoon.iteye.com昨天读了一下commons-logging和log4j的部分源码,收获不少。使用日志时,为什么要两个包全部包含到程序中,这两个包之间的关系如何,是怎么样关联起来的?当我们使用日志时为何只依赖于commons-logging所定义的接口,这些接口与log4j是什么关系?两个日志的配置文件在配置时是否有冲突?在分析完代码之后,...
2008-09-15 14:34:50 159
对commons-dbcp连接池的分析
转载请注明出处http://chillwarmoon.iteye.comApache的commons-pool提供了编写对象池的API,将用完的对象返回对象池中以便于下次利用,从而减少了对象创建时间。这对于创建对象相对耗时的应用来说,能够提高应用的性能。commons-dbcp数据库连接池正是使用commons-pool来创建和数据库之间的连接对象,在对象池中保存这些对象,从而减少了频...
2008-09-08 22:20:26 394
Rete算法的rete network和pattern match
毕业论文发表了半年多了,现在将论文中关于rete算法的部分截取出来,希望对大家有所帮助。论文中都是原创,转载请注明出处http://chillwarmoon.iteye.com
2008-09-06 13:01:51 166
ClassLoader对类的级联加载
转载请注明来自:http://chillwarmoon.iteye.com 在一个ClassLoader实例中,如果加载某个Class,那么被加载的Class是属于该ClassLoader所定义的namespace之内的。表现为不同的classloader实例虽然加载的Class完全相同,但是不能够相互类型转化,而且不能够通过类型转换成其他classloader加载的类。但是在自定义的Cu...
2008-08-25 13:01:12 132
Tomcat源码分析之JNDI
转载请注明来自:http://chillwarmoon.iteye.com在tomcat服务器中,我们可以通过配置文件%CATALINA_HOME%/conf/server.xml来对所用到的资源进行配置,如代码:[code="xml"] [/code]在这段配置中,指定了两个资源,一个是UserDatabase,另一个是jdbc/wroxTC...
2008-07-31 21:18:57 254
如何建立动态的依赖关系
在某些时候,我们需要根据业务需求来动态的建立某些类的多个实例,而这些类是由用户自定义的。例如:在网络编程时,对客户端每次向服务端发起的TCP请求,在服务端都会建立Socket,用户对该Socket进行包装,形成类A。因此对于客户端的每次请求在服务端都有与A相应的实例。但是类A又依赖于多个属性,是否需要队列来处理Socket,A所对应的Socket端口是多少。因此问题是:如何在服务端创建A的实例...
2008-03-30 09:22:05 230
读《Applying UML and patterns》第三版
最近结合公司的项目,在读《Applying UML and patterns》第三版一书,该书是OOAD中经典巨著之一,现在读到第32章,感觉确实和一般的书不同。这本书是以软件过程UP为主线来介绍各个阶段中的OO分析和设计。该书不同于专门介绍UP的书,书中向UP中加入了Agile的思想,使得UP在实践中更容易操作;该书也不同于介绍UML语法的书,而是融入了OOAD的思想。书中描述了UP中的四个软件...
2008-01-27 18:45:42 890
规则的激活和激发
转载请注明来自:http://chillwarmoon.iteye.com规则的激活是指规则左部匹配成功后,建立相应的Activation,加入到Agenda。如果该规则引擎不带有Agenda,则不会有规则激活的过程,直接进行规则激发。规则激发是指对规则引擎下达fire rule命令之后,执行规则的右部动作。若该规则引擎含有Agenda,则选择该Agenda当前的Module中所有的Act...
2008-01-07 17:49:16 665
CLIPS语言与RETE network
上篇大致介绍了一下RETE算法的基础,本文采用CLIPS语言来进行规则的描述,简单阐述一下由规则生成rete network的过程。转载请注明来自:http://chillwarmoon.iteye.com每一个产生式系统都必须有一种或者几种相应的语言用来描述产生式,CLIPS是一种用于专家系统的计算机语言,该语言能够描述规则、自定义函数和泛型函数、面向对象编程三种知识。在CLIPS语言中,...
2007-11-05 13:57:53 265
RETE算法
最近面试的时候,经常被问及自己参加的项目中rete算法的原理,但是RETE算法是一个比较复杂的算法,在短时间内不能阐述的足够清晰,在这里做个简单的介绍。转载请注明来自 http://chillwarmoon.iteye.comRETE算法是一个用来实现产生式规则系统的高效模式匹配算法。该算法是由卡内基美隆大学的Charles L. Forgy在1974年发表的论文中所阐述的算法。RETE算法提供...
2007-11-04 22:45:49 270
策略模式在项目中的具体应用
往往大师级别的设计是简单的,易懂的,可扩展的,从不做作,整齐的代码让阅读的人感到很舒服。最近在看一个开源项目的源码,其中有好多的设计思想可以借鉴,相信这些优雅的代码也是在大量实践基础上,通过不断的重构而形成的。有一小段代码自认为写的不错,以下是源码:EPAdministratorImpl类中:java 代码 private static ParseRuleSelector pa...
2007-08-02 11:00:12 139
读书习惯大调查
做IT的,学习新技术几乎是每天必须做的事情,无论是读纸介的书还是电子书,大家都有自己的习惯来阅读,在这里调查一下javaer们的读书习惯。先介绍我的情况,我现在一般读的大多数是英文的电子书,为了在忘记之后,很快能够回忆起当时的状态,就在电子书上作标记,以后查阅的时候就能很快的恢复到原来的状态。以前看书是每本书都是从头到尾的读,理解作者意图,并根据书中的例子做实验,但是发现掌握知识慢,不适合...
2007-07-23 10:29:37 152
Hibernate在应用层对并发事务的控制
Hibernate与事务处理一文中,介绍了事务以及并发事务处理时的问题,和针对于这些问题在数据库层所能做的隔离级别,但是在选择read commit和repeatable read两个隔离级别时,如果考虑到performance和scalability,可以选择一个折衷的方案,也就是在数据库中的隔离级别选择read commit,而通过对应用程序的控制,可以达到repeatable read的效果...
2007-07-13 22:49:36 96
Hibernate与事务处理
在企业应用中,事务处理是一个很重要的问题,本文阐述了事务处理的相关概念,分析了数据库级别的事务并发时产生的问题和相对应的隔离级别,最后简单谈谈Hibernate对于事务处理的方法。1.事务(transaction)事务被认为是一系列操作的集合,是一个工作单元(unit of work),事务的处理的结果有两个一个是commit,令一个是roll back,事务有ACID特性(atomicity...
2007-07-11 21:35:04 70
hibernate中对集合的共享参照问题
最近的开发一直在持久层周围,虽然做hibernate也有一段时间了,但是随着数据库表的增加,遇到了一些以前没有碰到过的问题。其中有一个问题就是对集合的共享参照问题(found shared references to a collection)具体是这样的:数据库表的关系如下:关系是这样的ALARMINFO表通过交叉表ALARMAUDIT和AUDITINFO建立多对多关系,ALARMINF...
2007-07-09 21:56:36 148
hibernate里load方法和get方法的区别
网上有许多关于load和get方法的讨论,自己做了一个小小的实验,明确一下load和get方法的工作原理。首先get方法没有什么可说的,就是在Session执行此函数的时候hit一下数据库,而load方法比较麻烦,具体的执行流程是这样的:java 代码 Session session=getSessionFactory().openSession(); Transa...
2007-07-09 16:00:33 76
spring加载singleton Bean的时候,发现两个实例。
目的:想在内存中加载一个单态队列。做法:该队列做为spring的一个singleton Bean加载到Spring Container当中,在业务逻辑中,将对象装在单态队列中,获取队列中的元素是在Servlet中获取的,Servlet也是通过Spring DI得到的这个队列。问题:但是这两个队列并不一样,前者在队列中装了一些元素,后者得到的队列却不包含任何元素。不知道是为什么,难道Spring...
2007-07-03 10:54:09 132
放弃不了的windows
记得有一篇文章的题目是:完全用linux工作--你还在用老掉牙的windows吗? http://www.iteye.com/blog/73577 文章写的很好,我也想从windows当中脱离出来,但是在用了半年多的linux之后,发现真正放弃windows还是很困难,具体原因如下:(1)写论文和软件设计文档(其中包含visio画图等)需要用MS的office,而linux下的openoffic...
2007-06-29 22:29:11 135
分析Hibernate在做ORM中的属性大小写的问题
在利用hibernate做ORM时,如果对于hbm文件的属性,在java的pojo类中没有对应的get和set方法,则会产生如下异常:java 代码 Caused by: org.hibernate.PropertyNotFoundException: Could not find a getter for auditInfos in class EventTyp...
2007-06-10 14:47:49 333
infoq上可以看和幻灯片同步的presentation
昨天看了看infoq( http://www.infoq.com ),上边居然可以看和幻灯片同步的presentation,英文听力好的可以去听听。突然感觉到国内的做技术交流的论坛(现实中的交流论坛)很少,技术氛围不浓,这也许是国内软件开发行业落后于国外的原因之一吧。希望javaeye上的牛人们在谈技术的同时,也分享一下在软件开发的过程中,自己从菜鸟变成牛人的经历,这也许对于各个层次的程序员都能够...
2007-05-30 00:25:33 130
class loader的体系结构
没有看过bill venners的《深入Java虚拟机》,但是看了他写的四部曲中的security and the class loader architecture,感觉受益颇深,建议大家有时间可以去看看原文,本文将对其中的class loader architecture的内容总结一下。在介绍本文之前,先说一下什么是sandbox,翻译过来就是“沙箱”,在计算机安全中,sandbox指的是一...
2007-05-29 23:48:05 141
JMX中M-let Class Loader的动态下载方式
在JMX的规范中,可以将Agent layer和instrumentation layer放在被管理应用,这样可以用MBean进行本地的资源管理,如果Agent layer和instrumentation layer和被管理应用分离,用JMX的实现管理多个远程应用的情况下,则需要JMX的M-let服务下载远程的MBean来进行资源管理。JMX规范中不只提供了动态加载MBean,而且提供了远程下载M...
2007-05-25 19:19:19 236
难道只能用JNI实现JMX或者JDMK的instrumentation layer?
最近在用JDMK做网上硬件资源和软件资源的监控,目的是得到这些资源的状态信息(例如:CPU利用率,内存利率,操作系统名称等),按照sun官方提供的JDMK的一个例子,是这样的:利用JDMK所提供的mibgen工具,将一个MIB definition文件转换成多个MIB MBean,其中包含:一个主要的MBean类,它能够代表所有的MIB;代表SNMP groups或者entities的多个MBe...
2007-05-24 10:53:19 102
Linux常用命令总结
在linux下面工作,总觉得绊手绊脚的感觉,主要是因为命令不是很熟悉,熟悉linux命令,是在linux下工作提高效率的前提,因此特意写一篇实时更新的文章来记录用到的linux命令,以后有记不起来的回头看一看,比较方便。文章不断更新中。查找文件命令findfind [路径名] -name '*abc*' 在相应的路径和所有的子路径中,查找文件名包含有abc的所有文件移动文件mv 文...
2007-05-17 19:39:22 61
JMX常用术语解释
几个月前学了一些JMX,但是现在翻开书一看,有的概念是不太清晰了,这里参照JMX in Action的介绍JMX术语的章节,翻译了其中的一部分内容,并加入了自己的看法。一些常用的JMX术语如下:Manageable resource:可被管理的资源可以是应用程序,设备或者存在的能够被java程序所访问或者包装的实体。通过JMX可以管理这些资源。应用程序能够暴露自己的组件,API或者附加的资源,...
2007-05-13 10:45:48 376
语法和语义的区别
一种语言是合法句子的集合。什么样的句子是合法的呢?可以从两方面来判断:语法和语义。语法是和文法结构有关,然而语义是和按照这个结构所组合的单词符号的意义有关。合理的语法结构并不表明语义是合法的。例如我们常说:我上大学,这个句子是符合语法规则的,也符合语义规则。但是大学上我,虽然符合语法规则,但没有什么意义,所以说是不符合语义的。在antlr的文法中,可以指定自定义的语言的语法规则的集合。antlr...
2007-05-10 08:33:30 4385
对于javascript的function的总结
学习知识难免会忘记,关键是在忘记之后,下次遇到时能够通过快捷的方法来回忆,并尽量达到忘记之前的状态。总结也许是日后回忆的一种有效方法,前些日子看了javascript的function,总结如下:学习function重要的就是明白当程序运行到函数声明的时候,并不执行该函数,当其他函数调用所声明的函数时,该函数才被执行,也就是英文说的function is complied,but not exe...
2007-05-05 10:33:43 71
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人