编程
DandelionCoder
在技术的海洋中游荡,探到最深处,寻回内心的方向 。
展开
-
java泛型使用demo
java泛型使用demo本demo 以 入参校验 为例,为大家说明泛型在实际应用中如何使用:Visio代码部分Visio 图:代码部分/** * 请求校验器接口 */public interface Validator<R> { void validate(R obj);}/** * <p>请求校验器基类。</p> * * @param <R> 请求类型参数,必须继承自原创 2016-10-11 17:36:54 · 1487 阅读 · 0 评论 -
JAVA字节码指令集
网上找的没有指令码这列 自己把它加上 更方便查阅 指令从0x00-0xc9 没有0xba常量入栈指令指令码操作码(助记符)操作数描述(栈指操作数栈)0x01aconst_null null值入栈。0x02iconst_m1转载 2017-09-11 14:23:28 · 293 阅读 · 0 评论 -
jdk 动态代理简单应用
相信大家在项目开发应用服务过程中都曾遇到很头疼的事情,比如服务中依赖的中间件升级,必须要强制升级应用系统,让应用服务系统做些与之无关的事情,下面给大家简单介绍一个场景_ 上面中 RPCServiceFacade 为 RPC 服务接口,RPCServiceFacadeAdapter 为本地代理接口,实现了RPC 服务接口, BusinessMgrServiceImpl 为原创 2017-09-08 18:36:33 · 416 阅读 · 0 评论 -
JAVA 自定义动态代理实现
在正式介绍自定义动态代理之前,先提出以下几个问题: 1、为什么叫做动态代理,它得动态表现在哪些方面? 2、动态代理得声明,才是我们写代码得地方,实现了 invocationHandler接口的类叫做声明? 3、声明类中的invoke方法到底是谁用的 ? 4、动态代理类$Proxy0还原? 5、JDK内存中的动态代理是没有对被代理类进行任何操作的?下原创 2017-09-13 15:39:22 · 1157 阅读 · 0 评论 -
Javassist简介
要想将编译时不存在的类在运行时动态创建并加载,通常有两种策略:动态编译动态生成二进制字节码(.class)对于第二种策略,实际上已经有诸多比较成熟的开源项目提供支持,如CGLib、ASM、Javassist等。这些开源项目通常都具备两方面的功能:动态创建新类或新接口的二进制字节码动态扩展现有类或接口的二进制字节码其中,CGLib的底层基于ASM实现,是一个高效高性能的生成库;而ASM是一转载 2017-03-17 11:43:02 · 341 阅读 · 0 评论 -
Instrumentation介绍
Java Instrumentation指的是可以用独立于应用程序之外的代理(agent)程序来监测和协助运行在JVM上的应用程序。这种监测和协助包括但不限于获取JVM运行时状态,替换和修改类定义等。 Java SE5中使用JVM TI替代了JVM PI和JVM DI。提供一套代理机制,支持独立于JVM应用程序之外的程序以代理的方式连接和访问JVM。Instrumentation 的最大作用就是类定转载 2017-03-17 11:32:40 · 1436 阅读 · 0 评论 -
多线程传递Context multi-thread context(MTC)
多线程传递Context multi-thread context(MTC)在使用线程池等会缓存线程的组件情况下,完成多线程的Context传递。JDK的java.lang.InheritableThreadLocal类可以完成父子线程的Context传递。但对于使用线程池等会缓存线程的组件的情况,线程由线程池创建好,并且线程是缓存起来反复使用的。这时父子线程关系的上下文传递已经没有意义,应用中要做转载 2017-03-15 13:47:00 · 3022 阅读 · 0 评论 -
javassist使用样例
javassist是jboss的一个子项目,其主要的优点,在于简单,而且快速。直接使用java编码的形式,而不需要了解虚拟机指令,就能动态改变类的结构,或者动态生成类。 本次样例是 通过注解以及文件列表 方式获取需要增强方法,动态织入方法的开始与结束时间。public class MonitorTransformer implements ClassFileTransformer {原创 2016-10-12 18:20:39 · 665 阅读 · 0 评论 -
java编程之方法模板模型
java编程之方法模板模型 在日常开发过程中,难免遇到相对独立的功能模块的开发,如 监控告警 功能 , 如何将此部分代码有效的管理起来,保证代码的可读性及易维护性是我们经常需要考虑的问题。 下面为大家介绍一种简单有效的编程模型- 方法模板模型,现以 监控告警 这个功能作为样例,为大家介绍‘方法模板模型’的使用。监控告警功能-方法模板关系模型Visio代码部分方法模板关系模型Vis原创 2016-10-12 17:19:40 · 1250 阅读 · 0 评论 -
缓存使用案例分析
现象: Redis单个key超过10G原因: 使用了Redis的Hash结构,不支持针对Hash中的key设置超时总结: Redis的Hash结构,不支持对Hash中的key设置超时时间。如果需要对Hash的key设置超时时间,放入单独的Redis key中现象: 某历史项目系统负载升高,响应变慢,应用频繁 GC原因: Hibernate 中开启转载 2017-09-19 19:01:32 · 640 阅读 · 0 评论