易截截图软件、单文件、免安装、纯绿色、仅160KB

java ASM

Java ASM
我们知道Java是静态语言,而python、ruby是动态语言,Java程序一旦写好很难在运行时更改类的行为,而python、ruby可以。
不过基于bytecode层面上我们可以做一些手脚,来使Java程序多一些灵活性和Magic,ASM就是这样一个应用广泛的开源库。
ASM is a Java bytecode manipulation framework. It can be used to dynamically generate stub classes or other proxy classes,
directly in binary form, or to dynamically modify classes at load time, i.e., just before they are loaded into the Java
Virtual Machine.
ASM完成了BCEL和SERP同样的功能,但ASM
只有30多k,而后两者分别是350k和150k。apache真是越来越过气了。
让我们来看一个ASM的简单例子Helloworld.java,它生成一个Example类和一个main方法,main方法打印"Hello world!"语句:
Java代码
import java.io.FileOutputStream;   
import java.io.PrintStream;   
  
import org.objectweb.asm.ClassWriter;   
import org.objectweb.asm.MethodVisitor;   
import org.objectweb.asm.Opcodes;   
import org.objectweb.asm.Type;   
import org.objectweb.asm.commons.GeneratorAdapter;   
import org.objectweb.asm.commons.Method;   
  
public class Helloworld extends ClassLoader implements Opcodes {   
  
  public static void main(final String args[]) throws Exception {   
  
    // creates a ClassWriter for the Example public class,   
    // which inherits from Object   
  
     ClassWriter cw = new ClassWriter(0);   
     cw.visit(V1_1, ACC_PUBLIC, "Example", null, "java/lang/Object", null);   
     MethodVisitor mw = cw.visitMethod(ACC_PUBLIC, "<init>", "()V", null,   
        null);   
     mw.visitVarInsn(ALOAD, 0);   
 


相关文档:

Java文档注释说明

对于Java语言,最体贴的一项设计就是它并没有打算让人们为了写程序而写程序——人们也需要考虑程序的文档化问题。对于程序的文档化,最大的问题莫过于对文档的维护。若文档与代码分离,那么每次改变代码后都要改变文档,这无疑会变成相当麻烦的一件事情。解决的方法看起来似乎很简单:将代码同文档“链接&rd ......

Java EE 6:EJB 3.1的变化引人注目

  那么要成为架构师的途径似乎只有现在较为流行的软件学院和个人自我培养了。关于软件学院我接触过不少,其宗旨绝大部分都是造就(or打造)企业 需要的软件架构师(or程序员or人才)。教师来源与企业、学员来源与企业、人才输送到企业是他们办学的手段。尽管各个如雨后春笋般出现的软件学院口号差 不多,但恐怕大多只是为了圈 ......

JAVA开发者最常去的20个英文网站

1.[http://www.javaalmanac.com] – Java开发者年鉴一书的在线版本. 要想快速查到某种Java技巧的用法及示例代码, 这是一个不错的去处.
2.[http://www.onjava.com] – O’Reilly的Java网站. 每周都有新文章.
3.[http://java.sun.com] – 官方的Java开发者网站 – 每周都有新文章发表.
4.[http:/ ......

java与mysql乱码的问题 [转]

解决方法一:(最重要的一种方法)
你看下my.ini,有无
[mysql]
default-character-set=utf8
[client]
default-character-set=utf8
[mysqld]
default-character-set=utf8
然后建立表时,也要用(比如)
DROP   TABLE   IF   EXISTS   `Company`;
CREATE &nb ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号