Java动态编程

Posted Franson

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java动态编程相关的知识,希望对你有一定的参考价值。

java中动态编程用到的技术有:反射(动态代理),javassist和ASM,这几种动态编程方法相比较,在性能上Javassist高于反射,但低于ASM,因为Javassist增加了一层抽象。在实现成本上Javassist和反射都很低,而ASM由于直接操作字节码,相比Javassist源码级别的api实现成本高很多。几个方法有自己的应用场景,比如Kryo使用的是ASM,追求性能的最大化。而NBeanCopyUtil采用的是Javassist,在对象拷贝的性能上也已经明显高于其他的库,并保持高易用性。实际项目中推荐先用Javassist实现原型,若在性能测试中发现Javassist成为了性能瓶颈,再考虑使用其他字节码操作方法做优化。

以上是关于Java动态编程的主要内容,如果未能解决你的问题,请参考以下文章

Java动态编程

Java 动态编程中的 GOTO/Continue

Java是动态语言吗?从《Java核心编程》探索真知

动态代理与动态编译

java实现动态代理切面编程

Java——面向切面编程,Spring中的AOP编程