摘要:
最近由于不清楚maven(2.2.x)增量编译的机制,导致应用出现了一个当时觉得非常诡异的一个问题。先描述一下问题。 背景是应用A有一个公用的base包,版本为1.6.6-SNAPSHOT,应用B依赖于这个公用的base包。我在base包中修改了一个字符串变量的值,该变量是一个缓存的key(如下面... 阅读全文
摘要:
RSA算法其实在大学本科的课程已经学过了,不过当时理解的不深,这篇博客就当加深理解和复习了。首先抛出2个问题: 为什么要用对称加密,解决了什么问题? RSA算法是怎么保证加密信息不被破解的?先回答第一个问题: 最初的加密算法是对称加密算法,加密和解密方式都是同一种规则。例如:A使用某一个加密规则,对... 阅读全文
摘要:
PPTP(Point to Point Tuneling Protocol,点对点隧道协议)是一种主要用于VPN的数据链路层网络协议。 环境:debian 7.0 在linux下安装pptpd服务实现vpn。1.安装pptpd1apt-get install pptpd2.修改pptd配置文件,修改... 阅读全文
摘要:
本文使用的是32位的JVM ,jdk1.6。本文基本是翻译的,加上了一些自己的理解,原文见文章底下链接。 在本文中,我们讨论如何计算或者估计一个JAVA对象占多少内存空间。(注意,使用 Classmexer agent 或者VM insturmentation 可以查询到一个java对象占用了多... 阅读全文
摘要:
介绍两种获取JAVA对象内存大小的方法。第一种:Instrumentation简介:使用java.lang.instrument 的Instrumentation来获取一个对象的内存大小。利用Instrumentation并且通过代理我们可以监测在JVM运行的程序的功能,它的原理是修改方法的字节码... 阅读全文
摘要:
btrace简介: btrace 是一个使用在JAVA平台上面的,安全的,动态跟踪工具。它一般用于动态跟踪正在运行的jAVA程序。 使用说明在这里。下载地址在这里。 下载的时候注意版本问题,我最初下载的是release-1.2.3的版本,然后服务器上面的JAVA的版本是1.6.0_32。运行的... 阅读全文
摘要:
JAVA类加载器可以动态加载JAVA类到jvm中,它是JRE的一部分,每个java类都必须通过一个类加载器加载。有了类加载器,JAVA运行时系统就可以通过类加载器加载类文件,这样就不需要直接访问文件或者文件系统了。一般来说开发者是不需要直接使用到类加载器的,但是理解类加载器的规则和用法,有助于了解w... 阅读全文
摘要:
责任链模式:责任链模式可以用在这样的场景,当一个request过来的时候,需要对这个request做一系列的加工,使用责任链模式可以使每个加工组件化,减少耦合。也可以使用在当一个request过来的时候,需要找到合适的加工方式。当一个加工方式不适合这个request的时候,传递到下一个加工方法,该加... 阅读全文
摘要:
tomcat的热部署实现原理:tomcat启动的时候会有启动一个线程每隔一段时间会去判断应用中加载的类是否发生变法(类总数的变化,类的修改),如果发生了变化就会把应用的启动的线程停止掉,清除引用,并且把加载该应用的WebappClassLoader设为null,然后创建一个新的WebappClas... 阅读全文