`
chillwarmoon
  • 浏览: 153329 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
转载请注明出处http://chillwarmoon.iteye.com 要弄清楚动态加载(热部署),首先要明白以下几点: (1)一个classLoader实例只能对一个类加载一次。 (2)通过defineClass方法,可以动态加载类文件的byte数组到classloader实例中 (3)ClassLoader的loadClass方法加载类的顺序是:先用bootstrap classLoader加载类,如果加载不到,则用extClassLoader加载类,最后用system classLoader加载类 (4)假设某个自定义的CustomClassLoader用defineClass加载类,并 ...
转载请注明出处http://chillwarmoon.iteye.com 多好的文档也不如源码来的直接。如果自己的程序对于某种技术过于依赖,有时候仅看那么几页的文档,总是感觉放心不下。还是看看源码,多多理解内部的实现机制为好。 一  读源码时,首先要弄清楚代码所涉及到的重要模型及其之间的关系,从整体架构方面理解其组成。 1.对于IOService的实现NioSocketConnector和NioSocketAcceptor来说,都持有selector的引用,本身都有一个固定的线程池executor,用来执行Connector或者Acceptor任务。 2.除此之外,IoService还有对 ...
转载请注明出处http://chillwarmoon.iteye.com 之所以要流量控制,有两个原因,一个是网络状况,再一个是接收方的缓存大小。对于网络状况来说,由发送方来看网络拥塞情况,然后通过发送方的拥塞窗口(congestion window aka cwnd)进行流量控制。对于接收方缓存来说,由接收方发给发送方的advertise window来进行流量控制,也就是由接收方的advertise window来进行控制流量。 congestion avoidance算法和slow start算法所解决的问题是不同的,前者是为了避免网络上的数据太多而在发送方控制发送速率的算法。后者是为了 ...
转载请注明出处http://chillwarmoon.iteye.com 1.client向server端发送ssl版本号,cipher设置,随机数(randomly generated data)和其他sever端所要求的信息。 2.server端向client端发送ssl版本号,cipher设置,随机数(randomly generated data)和其他client端所要求的信息。server发送其证书信息,如果是双向认证(client请求server端资源时,server需要对client端进行认证),则请求client发送证书。 3.client端根据server发送过来的信息来认 ...

keytool的用法

    博客分类:
  • tcp
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文件为client.keystore,证书别名为myca,导出的证书文件名abc.cer keytool -list -keystore client.keystore -alias myca 列出entry信息,keyst ...
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. 摘自<tcp/ip详解> 当linux kernal启动的时候,有许多timer来计时,如500-ms timer每间隔500ms时,触发一个动作。例如:在应用telnet设置tcp的超 ...
去年的今天入职,今年的今天过生日,Happy birthday to myself.
写在08年年底 08年是我毕业参加工作的第一年,期间做过公司的基础框架,非接触电子钱包一期,二期,公司平台业务框架升级,年底又开始做关于网络通信方面的基础框架。从实践中感触到了真正的软件开发,也增加了不少开发经验。但是几乎每个月都有加班,而且每天花在上下班路上的时间也是很多,忙来忙去,发现比在学校时可利用的时间少了很多,读的书也少了很多。惭愧的是有几本书一直在看,但一直都没有看完。在即将到来的09年中,除了平时的工作外,打算多看看书,多看看源码,多实践。列一下09年打算看完的几本书和源码,做一个标记,尽自己的努力完成。 1.java concurrency in practice 2.TCP/I ...
目前大多数开源社区的项目都是利用maven来管理的,所以下载开源项目源码之后,怎么样弄到eclipse中呢?方法如下: (1)下载maven,并在环境变量PATH中加入maven的bin路径 (2)在项目源码目录中运行mvn eclipse:eclipse。maven默认的存储路径通过localRepository来指定,在MAVEN_HOME/conf/settings.xml中设置,默认为~/.m2/repository (3)在项目目录中使用mvn eclipse:eclipse之后,在eclipse中就能够import该项目了。 (4)import之后,需要在eclipse中指定M2_R ...
转载请注明出处http://chillwarmoon.iteye.com 昨天读了一下commons-logging和log4j的部分源码,收获不少。使用日志时,为什么要两个包全部包含到程序中,这两个包之间的关系如何,是怎么样关联起来的?当我们使用日志时为何只依赖于commons-logging所定义的接口,这些接口与log4j是什么关系?两个日志的配置文件在配置时是否有冲突?在分析完代码之后,这些问题迎刃而解。 一、对commons-logging源码分析    在程序中使用日志时,经常将两个包放到程序的classpath目录下,在程序中调用LogFactory.getLog("XX ...
转载请注明出处http://chillwarmoon.iteye.com Apache的commons-pool提供了编写对象池的API,将用完的对象返回对象池中以便于下次利用,从而减少了对象创建时间。这对于创建对象相对耗时的应用来说,能够提高应用的性能。 commons-dbcp数据库连接池正是使用commons-pool来创建和数据库之间的连接对象,在对象池中保存这些对象,从而减少了频繁建立连接对象所造成的性能损耗。本文讲述了commons-dbcp是怎样利用commons-pool来建立对象池的。 例如在tomcat中,利用JNDI来查找到资源javax.sql.DataSource的 ...
毕业论文发表了半年多了,现在将论文中关于rete算法的部分截取出来,希望对大家有所帮助。论文中都是原创,转载请注明出处http://chillwarmoon.iteye.com
转载请注明来自:http://chillwarmoon.iteye.com 在一个ClassLoader实例中,如果加载某个Class,那么被加载的Class是属于该ClassLoader所定义的namespace之内的。表现为不同的classloader实例虽然加载的Class完全相同,但是不能够相互类型转化,而 ...
转载请注明来自:http://chillwarmoon.iteye.com 在tomcat服务器中,我们可以通过配置文件%CATALINA_HOME%/conf/server.xml来对所用到的资源进行配置,如代码: <GlobalNamingResources> <Resource name="UserDatabase" auth="Container" ...
在某些时候,我们需要根据业务需求来动态的建立某些类的多个实例,而这些类是由用户自定义的。例如:在网络编程时,对客户端每次向服务端发起的TCP请求,在服务端都会建立Socket,用户对该Socket进行包装,形成类A。因此对于客户端的每次请求在服务端都有与A相应的实例。 但是类A又依赖于多个属性,是否需要队列来处理Socket,A所对应的Socket端口是多少。因此问题是:如何在服务端创建A的实例,然后将已定义好的属性注入到A中? 解决方法之一: (1)基于Spring,将创建A的类称为W,作为Spring的一个bean; (2)A的“包名+类名”作为W的String属性; (3)A所依赖的队列 ...
Global site tag (gtag.js) - Google Analytics