Java 动态性(4) - 字节码操作

2018-10-30
阅读 7 分钟
2.5k
BCELByte Code Engineering Library (BCEL), 这是Apache Software Foundation 的 Jakarta 项目的一部分.BCEL是Java classworking广泛使用的一种框,它可以让您深入JVM汇编语言进行类操作的细节.BCEL与Javassist有不同的处理字节码方法,BCEL在实际的JVM指令层次上进行操作(BCEI拥有丰富的JVM指令级支持)而Javassist所强调...

Java动态性(3) - 脚本引擎执行javascript代码

2018-10-30
阅读 3 分钟
3.9k
脚本引擎介绍使得Java应用程序可以通过一套固定的接口与各种脚本引擎交互,从而达到在Java平台上调用各种脚本语言的目的 Java脚本API是连通Java平台和脚本语言的桥梁 可以吧一些复杂异变的业务逻辑交给脚本语言处理,这又大大提高了开发效率

Java动态性(2) - 之反射机制(Reflection)

2018-10-30
阅读 12 分钟
1.8k
1.Java的动态性 反射机制 动态编译 动态执行JavaScript代码 动态字节码操作 2.动态语言 程序运行时,可以改变程序得结构或变量类型.典型语言: Python,Ruby,JavaScript等. 如下JavaScript代码 {代码...} C,C++,Java不是动态语言,但Java有一定的动态性,我们可以利用反射机制,字节码操作获得类似动态语言的特性 Java的动态性...

Java动态性(1) - 动态编译(DynamicCompile)

2018-10-29
阅读 2 分钟
5.1k
动态编译的两种做法: 通过Runtime调用javac,启动新的进程去操作(6.0之前,不是真正的动态编译)Runtime run = Runtime.getRuntime(); Process process = run.exec("javac -cp d:/myjava/Helloworld.java")