字节码指令集简介:Java虚拟机的指令由一个字节长度的、代表着某种特定操作含义的操作码(Opcode)以及跟随其后的零至多个代表此操作所需参数的操作数(Operands)所构成。虚拟机中许多指令并不包含操作数,只有一个操作码。do { 自动计算PC寄存器以及从PC寄存器的位置取出操作码; i...
分类:
编程语言 时间:
2015-05-22 12:57:34
阅读次数:
124
java虚拟机中提供了5种调用字节码指令,分别是 invokestatic: 调用静态方法 invokespecial:调用实例构造器方法,私有方法,和父类方法. invokevirtual:调用虚方法. invokeinterfaceL调用接口方法,会在运行时再确定一个实现此接口的对象. ...
分类:
其他好文 时间:
2015-05-05 01:20:31
阅读次数:
150
一些不得不说的概念JVMJVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。JVM屏蔽了与具体操作系统平台相关的信息,使Ja..
分类:
其他好文 时间:
2015-04-23 00:22:39
阅读次数:
168
JVM的内存空间:1. 寄存器 (Registers):最快的保存区域,位于处理器内部,由编译器分配。主要作用是记录当前线程所执行的字节码的行号。字节码解释器工作时就是通过改变当前线程的程序计数器选取下一条字节码指令来工作。任何分支、循环、方法调用、判断、异常处理、线程等待以及恢复线程、递归等都是通...
分类:
编程语言 时间:
2015-04-20 18:16:15
阅读次数:
204
这句话感觉道出了GC的本质 1.程序计数器(Program Counter Register) 程序计数器是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的行号指示器。字节码解释器工作时就是通过改为这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基...
分类:
编程语言 时间:
2015-04-04 12:09:53
阅读次数:
204
这几天从图书馆借了《深入理解Java虚拟机》,看到内存区域这一章,总结了一下。Java虚拟机所管理的内存区域如下图所示:其中各区域具体的作用如下1、程序计数器字节码解释器通过改变程序计数器的值来选取下一条要执行的字节码指令(分支、循环线程恢复等基础功能都需要依赖这个计数器);每个线程都有一个独立的程...
分类:
其他好文 时间:
2015-03-27 23:50:24
阅读次数:
288
程序计数器
指令执行的指示器.
每个线程都有独立的程序计数器,互无影响,我们称这类区域为线程私有的内存.
执行Java方法,计数器记录的是正在执行的虚拟机字节码指令地址;如果执行的是native方法,这个计数器为空.
此内存区域唯一一个没有规定任何OutOfMemoryError的区域.
虚拟机栈
Java虚拟机栈也是线程私有的,它的生命周期与线程相同.
虚拟机栈描述的是Java方法执行的内存模型:...
分类:
编程语言 时间:
2015-03-17 10:27:53
阅读次数:
176
深入理解String类的immutable特性。从字节码指令层面了解字符串连接符号+的本质,以及如何避免低效率使用+号。了解String中==与equals方法判断的异同及常见面试题解答。最后,附上常量池说明及通过反射改变方法区中的运行时常量池代码...
分类:
编程语言 时间:
2015-02-28 11:27:20
阅读次数:
177
java运行时数据区域总结线程私有:程序计数器:它是一块较小的内存区域,可以把它看作当前线程所执行的字节码的行号指示器。如果线程正在执行的是一个java方法,这个计数器记录的是正在执行的虚拟机字节码指令的地址;如果正在执行的是native方法,这个计数器值则为空。注意:..
分类:
编程语言 时间:
2015-02-14 01:25:22
阅读次数:
294
Java虚拟机所管理的内存会包括以下几个运行时数据区域: 程序计数器:是一块较小的内存空间,它可以看做是当前线程所执行的字节码的行号指示器。如果线程正在执行的是一个Java方法,这个计数器记录的是正在执行的虚拟机字节码指令的地址。如果正在执行的事Native方法,这个计数器值则为空。 Java虚.....
分类:
其他好文 时间:
2015-02-01 19:02:16
阅读次数:
258