本月博客排行
-
第1名
Xeden -
第2名
fantaxy025025 -
第3名
bosschen - paulwong
- johnsmith9th
年度博客排行
-
第1名
青否云后端云 -
第2名
宏天软件 -
第3名
gashero - gengyun12
- wy_19921005
- vipbooks
- e_e
- benladeng5225
- wallimn
- ranbuijj
- javashop
- jickcai
- fantaxy025025
- zw7534313
- qepwqnp
- robotmen
- 解宜然
- ssydxa219
- sam123456gz
- zysnba
- sichunli_030
- tanling8334
- arpenker
- gaojingsong
- xpenxpen
- kaizi1992
- wiseboyloves
- jh108020
- xyuma
- ganxueyun
- wangchen.ily
- xiangjie88
- Jameslyy
- luxurioust
- mengjichen
- lemonhandsome
- jbosscn
- nychen2000
- zxq_2017
- lzyfn123
- wjianwei666
- forestqqqq
- ajinn
- siemens800
- hanbaohong
- 狂盗一枝梅
- java-007
- zhanjia
- 喧嚣求静
- Xeden
最新文章列表
Java动态代理机制详解(JDK 和CGLIB,Javassist,ASM)
由于JVM通过字节码的二进制信息加载类的,那么,如果我们在运行期系统中,遵循Java编译系统组织.class文件的格式和结构,生成相应的二进制数据,然后再把这个二进制数据加载转换成对应的类,这样,就完成了在代码中,动态创建一个类的能力了。
在运行时期可以按照Java虚拟机规范对class文件的组织规则生成对应的二进制字节码。当前有很多开源框架可以完成这些功能,如ASM,Javass ...
ASM在运行时通过修改字节码动态给接口添加Annotation
1. 对接口预先添加一个自定义注解:@ServiceType
2. 系统启动时,通过Spring扫描有包含注解:@ServiceType的接口,然后通过ASM类库修改接口字节码
3. 用到一些辅助工具:java命令,asm-util.jar,asm.jar
============================================================
...
比memcpy更快的内存拷贝:用赋值代替循环拷贝
原文是出自百度空间,百度空间早已关闭,所以原文出处无法查询了
相关衍生:
怎样写出一个更快的 memset/memcpy ?
https://www.zhihu.com/question/35172305
以下内容转自:http://www.cnblogs.com/GoodGoodWorkDayDayUp/archive/2010/10/15/1852251.html
然 ...
ASM系列七 TreeApi Method组件和接口介绍
一、MethodNode概述
ASM的TreeApi 对于Method的转换、生成也提供了一系列的组件和接口。其功能主要基于前一章提到的MethodNode类。MethodNode中大多数属性和方法都和ClassNode类似,其中最主要的属性就是InsnList了。InsnList是一个双向链表对象,包含了存储方法的字节指令序。先来看下InsnList中的主要是属性和 ...
ASM系列六 利用TreeApi 添加和移除类成员
同生成的做法一样,添加和移除类成员只要去修改fields和methods中的元素即可。这里我们拿一个简单的类做例子,下面这个Task类,我们来移除isNeedRemove方法,并且添加一个int 类型的addedField属性。
package asm.core;
/**
* Created by yunshen.ljy on 2015/6/8.
*/
publi ...
ASM系列五 利用TreeApi 解析生成Class
前面CoreApi的介绍部分基本涵盖了ASMCore包下面的主要API及功能,其中还有一部分关于MetaData的解析和生成就不再赘述。这篇开始介绍ASM另一部分主要的Api。TreeApi。这一部分源码是关联的asm-tree-5.0.4的版本。
在介绍前,先要知道一点, Tree工程的接口基本可以完成大部分我们之前介绍的Core中的功能。但是在实际使用中更加便利,当然 ...
ASM系列三 利用Methord组件动态生成方法字节码
一、概述
ASM的CoreApi 中还提供了对class 中方法的生成和解析的组件。前面两篇着重介绍了ClassVisitor 组件的应用场景。ClassVisitor Api 中的visitMethod(int access, String name, String desc, String signature, String[] exceptions)方法返回了一个Metho ...
ASM系列二 利用Core API 迁移、添加及移除类成员
之前一篇简单介绍了一下ASM框架。这一篇继续对CoreApi进行扩展。这里还是继续对ClassWriter ,ClassReader和ClassVisitor的应用的扩展。前面一篇主要介绍的是ClassWriter和ClassReader单独应用的场景。这一篇把这两者作为producer(ClassReader)和consumer(ClassWriter)来结合起来介绍一下另外一些用途。
一、 ...
ASM系列一 利用Core API 解析和生成字节码
ASM是一个提供字节码解析和操作的框架。Cglib框架就是基于ASM框架实现的,被广泛应用的Hibernate,Spring就是基于Cglib 实现了AOP技术。
在说到AOP的Java实现,可能会优先想到java的Proxy api,通过invoke方法拦截处理相应的代码逻辑,但是proxy 是面向接口的,被代理的class的所有方法调用都会通过反射调用invoke 方法,相 ...
Java字节码和asm入门资料
1.文章
Mastering Java Bytecode at the Core of the JVM 第一部分结合例子简要介绍了java字节码,第二部分介绍asm的入门。是值得阅读的入门资料。附件附了一份该 ...
初探ASM
前些日工作中需要改一个jar包中的程序代码,想了很多方法 包括直接修改、动态代理等等,但都效果不好。最后无意中发现了ASM这个框架,感觉正是我需要的。研究几日,用到一些基础功能就实现了所要效果,所以写出来给大家共享,自己忘了也好参考参考.下面是ASM一些基本介绍,就当是抛砖引玉了~~其中参考了几篇其他iteye朋友的文章,主要是JVM、字节码和类加载方面的东西,有助于更好的理解AS ...
java字节码操作框架集合
(1) ObjectWeb ASM轻量级的Java字节码处理框架。它可以动态生成二进制格式的stub类或其他代理类,或者在类被JAVA虚拟机装入内存之前,动态修改类。ASM 提供了与 BCEL和SERP相似的功能,只有22K的大小,比起350K的BCEL和150K的SERP来说,是相当小巧的,并且它有更高的执行效率,是BCEL的7倍,SERP的11倍以上。
该项目主页:http://asm.obje ...