程序计数器 程序计数器(Program Counter Register)是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成。 由 ...
分类:
其他好文 时间:
2016-10-31 16:15:43
阅读次数:
139
程序运行原理 1、模块的内建__name__属性,主模块其值为__main__,导入模块其值为模块名 1、创建时间,py文件比pyc文件新,则从新生成pyc。 2、magic num,做运行前版本测试,版本不同重新生成pyc。 3、PyCodeObject对象,源代码中的字符串,常量值,字节码指令, ...
分类:
编程语言 时间:
2016-10-24 07:46:01
阅读次数:
246
Java 虚拟机指令集所支持的数据类型: 在 Java 虚拟机中,实际类型与运算类型之间的映射关系,如下表所示: 加载和存储指令用于将数据从栈帧的局部变量表和操作数栈之间来回传输: 将一个局部变量加载到操作栈的指令包括有:iload、iload_<n>、lload、lload_<n>、fload、f ...
分类:
其他好文 时间:
2016-10-03 17:02:25
阅读次数:
503
java虚拟机规范虽然没有强制性约束在什么时候开始类加载过程,但是对于类的初始化,虚拟机规范则严格规定了有且只有四种情况必须立即对类进行初始化,遇到new、getStatic、putStatic或invokeStatic这4条字节码指令时,如果类没有进行过初始化,则需要先触发其初始化。生成这4条指令 ...
分类:
编程语言 时间:
2016-09-24 17:34:52
阅读次数:
209
http://www.infoq.com/cn/articles/jdk-dynamically-typed-language Java虚拟机的字节码指令集的数量自从Sun公司的第一款Java虚拟机问世至JDK 7来临之前的十余年时间里,一直没有发生任何变化[1]。随着JDK 7的发布,字节码指令集 ...
分类:
编程语言 时间:
2016-08-30 07:06:49
阅读次数:
169
java 虚拟机在执行java程序的过程中,会把它所管理的内存划分为若干个不同的区域。 注:java 虚拟机所管理的内存将会包括以下几个运行时数据区域 1.程序计数器,字节码解释器工作时,就是通过改变这个计数器的值来选择下一条需要执行的字节码指令分支,循环,跳转,异常处理,线程恢复都需要来这个计数器 ...
分类:
编程语言 时间:
2016-08-15 12:49:34
阅读次数:
148
JVM栈之局部变量表:包含参数和局部变量 局部变量表存放了基本数据类型、对象引用和returnAddress类型(指向一条字节码指令的地址)。其中64位长度的long和double类型的数据会占用2个局部变量空间(slot)(下图1到3的原因),其余数据类型只占用1个。局部变量表所需的内存空间在编译 ...
分类:
其他好文 时间:
2016-08-09 14:59:19
阅读次数:
295
Python程序的执行原理 2013-09-17 10:35 佚名 tech.uc 2013-09-17 10:35 佚名 tech.uc 1. 过程概述 Python先把代码(.py文件)编译成字节码,交给字节码虚拟机,然后虚拟机一条一条执行字节码指令,从而完成程序的执行。 2. 字节码 字节码在 ...
分类:
编程语言 时间:
2016-07-25 01:36:55
阅读次数:
282
《Java虚拟机规范》阅读笔记-数据类型 JVM 数据类型 1.概述 Java虚拟机的数据类型可分为两大类:原始类型(Primitive Types,也称为基本类型)和引用类型(Reference Types)。 Java虚拟机用不同的字节码指令来操作不同的数据类型 。 2.原始类型 原始类型是最基 ...
分类:
其他好文 时间:
2016-07-15 17:02:48
阅读次数:
149
《Java虚拟机规范》阅读笔记-数据类型JVM数据类型1.概述Java虚拟机的数据类型可分为两大类:原始类型(Primitive Types,也称为基本类型)和引用类型(Reference Types)。Java虚拟机用不同的字节码指令来操作不同的数据类型 。2.原始类型原始类型是最基本的元素,用于... ...
分类:
编程语言 时间:
2016-07-15 17:00:48
阅读次数:
165