深入Java
文章平均质量分 66
bjo2008cn
架构之美
展开
-
javassist入门
javassist的基本功能Javassist是一个动态类库,可以用来检查、”动态”修改以及创建 Java类。其功能与jdk自带的反射功能类似,但比反射功能更强大。重要的类ClassPool:javassist的类池,使用ClassPool 类可以跟踪和控制所操作的类,它的工作方式与 JVM 类装载器非常相似, CtClass: CtClass提供了检查类数据(如字段和方法)以及在类中添加新字段、原创 2016-12-09 19:33:28 · 15170 阅读 · 0 评论 -
使用JProfiler排查远程应用性能问题
在很多情况下,我们需要使用windows上的Jprofiler客户端来检测linux服务器上web程序的性能,以下是安装与配置步骤。1.Jprofiler下载本文使用9.2版本。下载地址 http://www.ej-technologies.com/ linux下下载: curl -O http://download-keycdn.ej-technologies.com/jprofiler/jp原创 2016-12-14 15:18:46 · 538 阅读 · 0 评论 -
使用Javassist在tomcat容器中实现动态Mock
使用场景在某些复杂场景下,我们需要对运行在tomcat容器中部分功能进行mock(替换其实现),但该部分功能散落在各处,我们希望不修改源代码以非侵入的方式来实现Mock,在这种情况下,我们可以应用Javassist来实现。使用Javassist来动态Mock我们可以定义一个ContextListener的实例,在tomcat启动时通过Javassist对源代码进行动态替换,来实现mock的功能。使用原创 2016-12-14 16:27:41 · 1985 阅读 · 1 评论 -
Java 内存屏障
为什么需要内存屏障我们知道,在多CPU(核)场景下,为了充分利用CPU,会通过流水线将指令并行进行。为了能并行执行,又需要将指令进行重排序以便进行并行执行,那么问题来了,那些指令不是在所有场景下都能进行重排,除了本身的一些规则(如Happens Before 规则)之外,我们还需要确保多CPU的高速缓存中的数据与内存保持一致性。原创 2016-12-27 23:29:28 · 1914 阅读 · 0 评论 -
Instrumentation
Instrumentation的功能Java Instrumentation指的是用代理程序来监测和协助运行在JVM上的应用程序,并且这种代理程序是独立于应用程序之外的,这是Instrumentation功能的最主要特性。 Instrumentation能够监测和协助的功能主要包括:获取JVM运行时状态在运行时动态修改类定义在 Java SE 5+中,可以在一个普通 Java 类(具有mai原创 2017-02-07 11:39:08 · 313 阅读 · 0 评论 -
AOP 底层技术性能测试与比较
Spring对AOP的支持Spring中AOP代理由Spring的IOC容器负责生成、管理,其依赖关系也由IOC容器负责管理。因此,AOP代理可以直接使用容器中的其它bean实例作为目标,这种关系可由IOC容器的依赖注入提供。Spring创建代理的规则为:1、默认使用Java动态代理来创建AOP代理,这样就可以为任何接口实例创建代理了 2、当需要代理的类不是代理接口的时候,Spring会切换为使用原创 2016-12-09 19:31:12 · 6044 阅读 · 1 评论