字节码格式字节码是JVM的机器语言。JVM加载类文件时,对类中的每个方法,它都会得到一个字节码流。这些字节码流保存在JVM的方法区中。在程序运行过程中,当一个方法被调用时,它的字节码流就会被执行。根据特定JVM设计者的选择,它们可以通过解释的方式,即时编译(Just-in-time compilation)的方式或其他技术的方式被执行。方法的字节码流就是JVM的指令(instruction)序列。每...
分类:
其他好文 时间:
2016-03-28 00:15:04
阅读次数:
171
一、Java程序运行机制 Java语言编写的程序需要经过编译生成与平台无关的字节码(.class文件)。 这种字节码必须使用Java解释器(JVM)来解释执行。 JVM是可运行Java字节码文件的虚拟计算机,将字节码转换成特定系统的机器码执行。 二、JDK安装目录下文件及其作用 1、bin:该路径存 ...
分类:
编程语言 时间:
2016-03-26 18:50:57
阅读次数:
182
原文地址:http://www.cnblogs.com/dingyingsi/p/3760447.html 1、程序计数器 程序计数器(Program Counter Register)是一块较小的内存空间,它的作用可以看 做是当前线程所执行的字节码的行号指示器。在虚拟机的概念模型里(仅是概念模型, ...
分类:
其他好文 时间:
2016-03-26 15:45:06
阅读次数:
205
答:Java虚拟机是一个可以执行字节码的虚拟进程;Java设计的应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或是重新编译。 答:继承、封装、抽象、多态。 继承:继承是原有的类派生出子类,子类自动分享父类数据和方法的机制,这是类之间的一种关系,提高了代码的复用性和可扩展性。 封装:
分类:
编程语言 时间:
2016-03-22 00:31:15
阅读次数:
274
Protocol Buffers(简称protobuf)是谷歌的一项技术。用于将结构化的数据序列化、反序列化。经经常使用于网络传输。 这货实际上相似于XML生成和解析。但protobuf的效率高于XML,只是protobuf生成的是字节码,可读性比XML差。相似的还有json、Java的Serial
分类:
编程语言 时间:
2016-03-21 18:01:38
阅读次数:
457
一、HelloWorld 字节码生成 众所周知,Java 程序是在 JVM 上运行的,不过 JVM 运行的其实不是 Java 语言本身,而是 Java 程序编译成的字节码文件。可能一开始 JVM 是为 Java 语言服务的,不过随着编译技术和 JVM 自身的不断发展和成熟,JVM 已经不仅仅只运行
分类:
其他好文 时间:
2016-03-21 07:06:47
阅读次数:
190
java语言的起源,java之父。《James Goling》; 程序首先被翻译成中间语言,这种中间语言称为字节码,一个程序被翻译成字节码后,对所有电器都是相同的,然后在使用一种程序,将字节码翻译为特定电器的机器语言。这种程序即小又容易编写,因而也不会昂贵。 因为只有一种中间语言,所以两个步骤中最难
分类:
其他好文 时间:
2016-03-20 21:02:41
阅读次数:
186
简介Java代码是非常容易反编译的。为了很好的保护Java源代码,我们往往会对编译好的class文件进行混淆处理。ProGuard是一个混淆代码的开源项目。它的主要作用就是混淆,当然它还能对字节码进行缩减体积、优化等,但那些对于我们来说都算是次要的功能。引用ProGuard官方的一段话来介绍就是: ...
分类:
其他好文 时间:
2016-03-20 02:00:33
阅读次数:
296
一、类加载器 首先来看一下 java 程序的执行过程。 从这个框图很容易大体上了解 java 程序工作原理。首先,你写好 java 代码,保存到硬盘当中。然后你在命令行中输入 此时,你的 java 代码就被编译成字节码(.class).如果你是在 Eclipse IDE 或者其他开发工具中,你保存代
分类:
编程语言 时间:
2016-03-19 14:22:21
阅读次数:
197
通过之前的静态代理可以发现,静态代理比较死板,是编译期code好代理对象代码,再由jvm转换成字节码,代理对象就已经存在了。 而且,每个对象都要自定义一个自己的一个代理对象。 而动态代理,则是通过了java的反射机制,在程序的运行期动态的活的代理对象。 下面看个小例子吧:
分类:
其他好文 时间:
2016-03-18 14:46:51
阅读次数:
172