一、JAVA概述1.编译型语言和解释型语言2.JAVA先编译成与平台无关的字节码(*.class)文件,然后由JVM(Java Virtual Machine)来解释,最终转换为机器码。3.不同平台的JVM都是不同的,但提供了相同的接口,达到跨平台目的。4.JRE:Java Runtime Envi...
分类:
编程语言 时间:
2015-08-11 20:46:10
阅读次数:
150
Instrumentation JDK中对它介绍如下:这个类为JVM上运行时的程序提供测量手段。很多工具通过Instrumenation 修改方法字节码 实现收集数据目的。这些通过Instrumentaion搜集数据的工具不会改变程序的状态和...
分类:
编程语言 时间:
2015-08-09 20:52:59
阅读次数:
272
Python解释器的探讨:第一部分函数对象 最近三个月,我和Ned Batchelder花费了大量时间在开发byterun。这个项目byterun(https://github.com/nedbat/byterun)是使用python开发的python字节码的解释器。开发解释器byterun过程中,让我学习到很多东西,以及带来很大的乐趣。在本文系列里,我将带你来体验一下我的开发乐趣,以及使用byt...
分类:
编程语言 时间:
2015-08-07 20:00:13
阅读次数:
96
最近在看spring-mvc的源码,在解析handler方法的时候,有关于获取桥接方法代码,不明白什么是桥接方法,经过查找资料,终于理解了什么是桥接方法。
桥接方法是 JDK 1.5 引入泛型后,为了使Java的泛型方法生成的字节码和 1.5 版本前的字节码相兼容,由编译器自动生成的方法。
我们可以通过Method.isBridge()方法来判断一个方法是否是桥接方法,在字节码中桥接方法会标记...
分类:
编程语言 时间:
2015-08-07 19:56:26
阅读次数:
169
所谓的无关性:
我们一直在强调Java的平台无关性,所谓的一次编写,到处运行。
那么究竟是什么造就了这种平台无关性,那就是Class文件,我们注意到编译完java文件后,会产生一个Class文件,而这些Class文件在各种虚拟机中的有相同的存储格式—–字节码。
除了平台无关性,Java语言还引申出来一个语言无关性。也就是说Java虚拟机是与Class这种特定格式的文件格式关联,所以就说明无论哪...
分类:
其他好文 时间:
2015-08-06 02:05:53
阅读次数:
1193
每个Java虚拟机都有一个类加载器子系统,根据某个全限定名来装入类型,同样每个Java虚拟机都有一个执行引擎,它负责执行那些包含在被装载类的方法中的指令。
当虚拟机运行一个程序时,就需要从已加载的文件中得到信息,将这些信息组织到运行时数据区,以便于管理。Java运行时的数据区域划分
1、程序计数器:程序计数器是一块较小的内存空间,可以看做是当前线程的字节码的行号指示器。
Java虚拟机的多线程...
分类:
编程语言 时间:
2015-08-06 00:27:38
阅读次数:
148
此类错误的常见解决办法: 1、是因为.java文件不在项目的src路径内,也就是说源代码未被eclipse编译,字节码不存在无法运行了在项目名上右键 -> Builder Path -> Configure Build Path -> 选择Source面板 再点Add Folder, 把源代码...
分类:
编程语言 时间:
2015-08-05 12:23:32
阅读次数:
487
这个函数用来编译一段字符串的源码,结果可以生成字节码或者AST(抽像语法树),字节码可以使用函数exec()来执行,而AST可以使用eval()来继续编译。参数source是一串字符串的源码,或者是AST对象数组。参数filename是读取字符串的文件对象,如果不是从文件里读取源码来编译,那么这里可...
分类:
编程语言 时间:
2015-08-05 12:02:46
阅读次数:
272
Java虚拟机是Java程序运行的基础,也是深入理解java的必备知识。
首先JVM的内存分布主要有:程序计数器,虚拟机栈,本地方法栈,Java堆,方法区。其中标红的表示相对更重要。
1)程序计数器
程序计数器是一块很小的内存,是每一块线程的私有空间,主要负责为每一个线程记录下一条需要运行的指令。如果当前线程正在执行一个Java方法,则程序计数器记录正在执行的Java字节码地址,如果...
分类:
其他好文 时间:
2015-08-05 10:29:59
阅读次数:
116
Java虚拟机在执行Java程序的过程中会把它所管理的内存区域分为若干个不同的数据区域。这些区域都有各自的用途,有的区域随虚拟机进程启动而存在,有的区域则依赖用户线程启动和结束而建立和销毁。Java虚拟机所管理的内存将会包括以下几个运行时数据区域。
程序计数器
程序计数器是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的行号指示器,字节码解释器工作时就...
分类:
编程语言 时间:
2015-08-04 11:15:05
阅读次数:
125