BCEL是一个java字节码引擎库,有了他我们可以方便的表示出class文件的数据,另外BCEL还支持动态的创建和改变java class文件。这里我仅是初略的了解BCEL解释class文件的功能,为我后面学习FindBugs工具做准备,需要深入学习BCEL的创建、改变class文件的功能,可以查看...
分类:
其他好文 时间:
2015-05-15 19:46:10
阅读次数:
218
总结下类加载机制相关的知识图谱。
类加载机制,包括三大步骤。
1.装载load 。目的是生成类加载实例id
2.链接 ,检测字节码格式以及内部调用匹配情况。静态变量初始化
3.初始化。主要是类加载器加载类的顺序。
对于自定义类加载,开发者完成自己的实现。
bootstrap负责rt.jar类加载,rt是java规范定义的接口与实现。
extension扩展jre中的jar。
s...
分类:
其他好文 时间:
2015-05-15 17:43:39
阅读次数:
168
李哲—MAY13,2015语言本身Ruby语言支持语法级别的系统,框架,甚至语言本身的方法复写,一般叫做元编程(metaprogramming),此基础之上还有一些术语为mixin,方法的动态定义,运行时类改写等等,这些技术和机制可以让语言本身就能实现其他语言需要字节码才能实现的功能,例如..
分类:
其他好文 时间:
2015-05-15 01:26:58
阅读次数:
243
ProGuard是一个压缩、优化和混淆Java字节码文件的免费的工具,它可以删除无用的类、字段、方法和属性。可以删除没用的注释,最大限度地优化字节码文件。它还可以使用简短的无意义的名称来重命名已经存在的类、字段、方法和属性。这样做的结果是更小的jar、apk……,并且更难被反编译。Android.....
分类:
移动开发 时间:
2015-05-14 15:53:03
阅读次数:
199
大部分程序员在编程中都遇到过Java中文问题,但是只要你知道了Java系统的中文问题原理,我们就可以对中文问题说拜拜。最古老的解决方案是使用String的字节码转换,这种方案问题是不方便,我们需要破坏对象封装性,进行字节码转换。还有一种方式是对J2EE容器进行编码设置,如果J2EE应用系统脱离该容器...
分类:
编程语言 时间:
2015-05-14 13:57:13
阅读次数:
139
Clojure,这是什么鬼?一门基于JVM(现在也有基于.NET CLR的了:Clojure CLR) 的函数式编程语言。在JVM平台运行的时候,会被编译为JVM的字节码进行运算。。为什么要学它?其设计思想独特。有何先进独特之处?后面我会讲。说实话,现在编程语言满天飞,哥也只是玩过C/C++/Bas...
分类:
其他好文 时间:
2015-05-12 15:03:39
阅读次数:
135
1.Java运行原理 编译+解释型语言: 程序代码经编译后转换为一种称为java字节码(.class文件)的中间语言 file.java---》Class.class java虚拟机JVM将字节码解释为机器码,然后在计算机上运行。编译只进行一次,而解释在每次运行程序时都会进行。2.定义常...
分类:
编程语言 时间:
2015-05-11 19:36:36
阅读次数:
143
最近学习了javassist的使用方法。javassist是一个字节码类库,可以用他来动态生成类,动态修改类等等。下面是如果用javassist来动态创建一个类的demol我们需要创建的目标类,如下:Java代码publicclassJavassistClass{privateStringname=...
分类:
编程语言 时间:
2015-05-10 22:05:07
阅读次数:
140
在此之前,我们已经讨论过了成员内部类可以无条件访问外部类的成员,那具体究竟是如何实现的呢?下面通过反编译字节码文件看看究竟。事实上,编译器在进行编译的时候,会将成员内部类单独编译成一个字节码文件,下面是Outter.java的代码:public class Outter { private...
分类:
编程语言 时间:
2015-05-10 17:06:23
阅读次数:
153
JDK VS JRE
JDK:Java Development Kit,是Java的开发环境,包含开发所需要的工具
JRE:Java Runtime Environment,是Java的运行环境,作用是运行Java程序
Java知识点
Java是通过JVM来执行字节码文件
Java是跨平台的,因为JVM不是跨平台的,每个操作系统...
分类:
编程语言 时间:
2015-05-10 09:48:15
阅读次数:
162