值得学习的地方:在reference这一侧是如何做到了对应用透明? 分析代码后不难发现:使用javassist的字节码技术+代理。 这种实现框架对应用透明的手段,在struts2的action上也有类似手段,actionproxy加反射,struts2的action也是一个普通的bean类就可以充当...
分类:
其他好文 时间:
2015-09-22 16:43:34
阅读次数:
143
Java虚拟机类装载的原理及实现(转)一、引言 Java虚拟机(JVM)的类装载就是指将包含在类文件中的字节码装载到JVM中, 并使其成为JVM一部分的过程。JVM的类动态装载技术能够在运行时刻动态地加载或者替换系统的某些功能模块, 而不影响系统其他功能模块的正常运行。本文将分析JVM中的类装载系统...
分类:
编程语言 时间:
2015-09-17 23:04:13
阅读次数:
241
Android安全-代码安全1-ProGuard混淆处理ProGuard简介ProGuard是一个SourceForge上非常知名的开源项目。官网网址是:http://proguard.sourceforge.net/。Java的字节码一般是非常容易反编译的。为了很好的保护Java源代码,我们往.....
分类:
移动开发 时间:
2015-09-13 18:43:32
阅读次数:
262
Java把源代码(XXX.java)翻译(javac)成字节码(Bytecode)(XXX.class),再在Java运行时系统上执行(java)字节码,这样就可以跨平台了。Java是面向对象语言(OOL),OOP的三原则是封装(Encapsulation)、继承(Inheritance)和多态(p...
分类:
编程语言 时间:
2015-09-12 19:03:07
阅读次数:
236
1. 过程概述 Python先把代码(.py文件)编译成字节码,交给字节码虚拟机,然后虚拟机一条一条执行字节码指令,从而完成程序的执行。2. 字节码 字节码在Python虚拟机程序里对应的是PyCodeObject对象。 .pyc文件是字节码在磁盘上的表现形式。3. pyc文件 PyCodeObje...
分类:
编程语言 时间:
2015-09-11 16:05:37
阅读次数:
167
FindBugs是一个静态分析工具,在程序不需运行的情况下,分析class文件,将字节码与一组缺陷模式进行对比,试图寻找真正的缺陷或者潜在的性能问题。本文档主要详细说明FindBugs 2.0.3版本中各项检测器的作用,该版本共有156个缺陷检测器,分为11个类别。1. No Category(无类...
分类:
数据库 时间:
2015-09-11 15:38:56
阅读次数:
690
一、工作目标在服务端执行临时代码。实现的过程中要解决的问题:(1)如何编译提交到服务器的java代码?ans:提交字节码,其实也可以提交.java文件。(2)如何执行编译后的java代码 ?ans: 让加载器加载这个类生成的class对象,再反射调用类的方法。(3) 如何收集java的执行结果?an...
分类:
编程语言 时间:
2015-09-10 00:29:38
阅读次数:
172
http://www.ticmy.com/?p=43重点:局部变量表 和 操作数栈的执行过程。使用javac编译后再使用javap -c Test反编译这个类查看它的字节码,如下(只摘取main方法):public static void main(java.lang.String[]);Code:...
分类:
编程语言 时间:
2015-09-10 00:22:37
阅读次数:
227
jvm内存区域程序计数器一块很小的内存空间,作用是当前线程所执行的字节码的行号指示器。java栈与程序计数器一样,java栈(虚拟机栈)也是线程私有的,其生命周期与线程相同。通常存放基本数据类型,对象引用(一个指向对象起始地址的引用指针或一个代表对象的句柄),reeturnAddress类型(指向一...
分类:
编程语言 时间:
2015-09-09 12:48:02
阅读次数:
210
因为Python的线程虽然是真正的线程,但解释器执行代码时,有一个GIL锁:Global Interpreter Lock,任何Python线程执行前,必须先获得GIL锁,然后,每执行100条字节码,解释器就自动释放GIL锁,让别的线程有机会执行。这个GIL全局锁实际上把所有线程的执行代码都给上了锁...
分类:
编程语言 时间:
2015-09-08 12:15:04
阅读次数:
129