Java虚拟机
云聪
喜欢简洁的抽象,也着迷神奇的细节,我担心自己因为过于偏向抽象而变得肤浅,也害怕自己因为太过深入细节而迷失,这让我很痛苦,但是我不会放弃挣扎,因为我相信挣扎的过程就是成长。
展开
-
Java函数调用栈
Java的函数调用栈就是Java虚拟机栈,它是线程私有的,与线程一同被创建,用于存储栈帧。栈帧随着方法的调用而创建,随着方法的结束而销毁。可以说栈帧是方法的抽象。于是,可以通过打印出Java虚拟机栈中的栈帧信息来了解函数调用过程。用于实现这个过程的Java代码如下:package methodcall;public class Methods { public void meth原创 2015-05-17 10:46:33 · 5316 阅读 · 0 评论 -
在Linux下安装JITwatch
一、安装并运行JITwatch1. 下载jitwatchgit clone https://github.com/AdoptOpenJDK/jitwatch.git(前提是你已经安装了git,如果没有安装git,又不想安装,可以直接去github上下载,下载页面地址:https://github.com/AdoptOpenJDK/jitwatch)2. 进入ji原创 2015-06-30 16:57:43 · 1200 阅读 · 0 评论 -
Java虚拟机 堆和栈
“堆栈”这个词总是让我迷惑,因为除了这个词,我还经常看到单独的“堆”和“栈”,今天就来梳理一下。首先,讲讲我们的主题,Java虚拟机里的堆和栈。它俩都是虚拟机运行时数据区里的一个块区域。堆用于存储对象,是线程共享的,当虚拟机启动时就被创建了。而栈用于存储栈帧,是线程私有的,随着线程的启动而建立,结束和销毁。原创 2015-12-10 21:41:25 · 1437 阅读 · 2 评论 -
Java运行时数据区
Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。其中有一些区域会随着虚拟机的启动而创建,随着虚拟机的退出而销毁;另一些则是与线程一一对应的,这些与线程对应的数据区域会随着线程的开始而创建,结束而销毁。原创 2015-12-07 21:48:35 · 757 阅读 · 0 评论 -
Java虚拟机 程序计数器
通常的程序计数器(PC)是计算机CPU中的一个重要部件,它存储着CPU要执行的命令的地址。在计算机从通电到断电这期间,CPU做的事儿也就是不断执行程序计数器指向的指令和更新程序计数器的值使之指向下一条要执行的指令。Java虚拟机中的程序计数器是Java运行时数据区中的一小块内存区域,但是它的功能和通常的程序计数器是类似的,它指向虚拟机正在执行字节码指令的地址。具体点儿说,当虚拟机执行的方法不是原创 2015-12-07 22:16:59 · 3572 阅读 · 0 评论