jvm 数据区划分学习

Java virtual machine 运行时数据存储区域划分

2015年1月25日

19:15

  • Pc  寄存器

Each Java Virtual Machine thread has its own pc (program counter) register.

每一个jvm线程都拥有自己的pc 寄存器。

源文档 <http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-2.html#jvms-2.5>

the pc register contains the address of the Java Virtual Machine instruction currently being executed.

寄存器里保存了当前正在被执行的jvm指令的地址。

源文档 <http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-2.html#jvms-2.5>

  • Jvm stack(jvm 栈)

Each Java Virtual Machine thread has a private Java Virtual Machine stack, created at the same time as the thread.

每个jvm线程都拥有一个自己的jvm栈,在线程创建的时候创建。

源文档 <http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-2.html#jvms-2.5>

  • Heap (堆)

The Java Virtual Machine has a heap that is shared among all Java Virtual Machine threads. The heap is the run-time data area from which memory for all class instances and arrays is allocated.

jvm的堆是被所有线程所共享的,堆是运行时数据分配类实例对象和数组的内存空间。

源文档 <http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-2.html#jvms-2.5>

The heap is created on virtual machine start-up. Heap storage for objects is reclaimed by an automatic storage management system (known as a garbage collector)

源文档 <http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-2.html#jvms-2.5>

  • Method area (方法区)

The Java Virtual Machine has a method area that is shared among all Java Virtual Machine threads.

方法区被所有线程共享

The method area is created on virtual machine start-up. Although the method area is logically part of the heap,

源文档 <http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-2.html#jvms-2.5>

  • 运行时常量池

Each run-time constant pool is allocated from the Java Virtual Machine‘s method area (§2.5.4). The run-time constant pool for a class or interface is constructed when the class or interface is created (§5.3) by the Java Virtual Machine.

运行时的常量池是方法区的一部分,它是在jvm创建一个类或者是接口时生成的。

源文档 <http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-2.html#jvms-2.5>

  • 本地方法区 native method stack

An implementation of the Java Virtual Machine may use conventional stacks, colloquially called "C stacks," to support native methods (methods written in a language other than the Java programming language).

本地方法区通常是使用传统的栈来调用用其他语言编写的本地方法。

源文档 <http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-2.html#jvms-2.5>

时间: 2024-11-10 07:13:23

jvm 数据区划分学习的相关文章

需要同时掌握AVA和Linux,才可以继续大数据课程的学习

大数据包含的技术知识很多,如果是从头学起,一般是从两个方面入手,一是基础:二是专业技能.下面我们不妨从这两个方面给出一个简单的学习过程.希望对你有所帮助. 一.基础 学习大数据的两大基础就是JAVA和Linux,学习顺序不分前后.需要同时掌握,才可以继续大数据课程的学习. 在这里小编建了一个大数据学习交流扣扣群:529867072,我自己整理的最新的大数据进阶资料和高级开发教程,如果有想需要的,可以加群一起学习交流 Java:大家都知道Java的方向有JavaSE.JavaEE.JavaME,学

转:内存区划分、内存分配、常量存储区、堆、栈、自由存储区、全局区[C++][内存管理][转载]

内存区划分.内存分配.常量存储区.堆.栈.自由存储区.全局区[C++][内存管理][转载] 一. 在c中分为这几个存储区1.栈 - 由编译器自动分配释放2.堆 - 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收3.全局区(静态区),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域.- 程序结束释放4.另外还有一个专门放常量的地方.- 程序结束释放                          

mysql实现插入数据到分表

use mysql;/*创建原始数据表*/DROP TABLE IF EXISTS `articleinfo`;CREATE TABLE `articleinfo`(`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,`title` VARCHAR(20) DEFAULT NULL,`content` VARCHAR(20) DEFAULT NULL,`comment_time` VARCHAR(20) DEFAULT NULL) E

如何进入大数据领域,学习路线是什么?

小白如何学习大数据技术?大数据怎么入门?大数据的应用前景等等问题,已成为热门大数据领域热门问题,今天小编就来为大家具体解答一下关于大数据学习的相关问题. 随着大数据行业的快速发展,也随之出现了一些问题,比如大数据人才的缺失就是目前急需解决的一个问题,那么很多学大数据的人又出现了一些问题,就是大家普遍担心的就是零基础能不能学习大数据,会不会不好学? 答案是可以学.大数据学习并不是高深莫测的,虽然对于零基础学员来说不是那么简单,但是只要你认真学习,加上有专业老师的指导和针对性的训练,相信你也是可以完

了解大数据,才能更好地学习大数据(附学习路线)

其实简单的来说,大数据就是通过分析和挖掘全量的非抽样的数据辅助决策. 大数据可以实现的应用可以概括为两个方向,一个是精准化定制,第二个是预测.比如像通过搜索引擎搜索同样的内容,每个人的结果却是大不相同的.再比如精准营销.百度的推广.淘宝的喜欢推荐,或者你到了一个地方,自动给你推荐周边的消费设施等等. 随着大数据行业的快速发展,也随之出现了一些问题,比如大数据人才的缺失就是目前急需解决的一个问题,那么很多学大数据的人又出现了一些问题,就是大家普遍担心的就是零基础能不能学习大数据,会不会不好学? 零

数据与计算机通信学习笔记

数据与计算机通信学习笔记---- OSI(Open Systems Interconnection--开放式系统互联(参考模型))是一个层的模型. 特点: 每一层提供一部分通信功能. 每一层依赖于上一层所提供的功能,并为下一高层提供服务. 一个层的改变不需要其他层的变化.     OSI模型示意图 物理层:关心在物理媒体上的无结构比特流的传输,处理机械的,电气的,功能的和过程化的特性,以接入物理媒体.(在此层工作的有转发器等设备.) 数据链路层:提供跨越物理层的可靠信息传递,携带必要的同步,差错

C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 大数据支持分表优化

公司的短信平台,数据量越来越大了,需要对数据进行一些优化,下面是拆分后的数据库量参考. 新开发的软件模块,必须支持分表,拆表的功能一个数据表里,不适合保存1000万以上的记录新开发的业务模块,能分表的全分表,否则,将来我们无法用其他小型数据库,例如mysql 现在系统的短信已经进行了拆表接着打算把日志也进行拆表确保数据库里,没有庞大的表,随时可以切换数据库 每个人把自己负责的事情,做到自己能力的及至,做到部门能力的及至,公司能力的及至,就很有希望了有时候我说话很随意,但是一般会注意,我说出去的话

数据持久化编程学习总结

一.JDBC编程 1. 使用JDBC规范 在数据库编程方面,最先使用的数据持久化技术无疑是JDBC 可以说JDBC(Java Data Base Connectivity)是学习其它数据持久化技术的基础 Java中访问数据库使用的就是JDBC,基本操作有CRUD(Create-Read-Update-Delete) JDBC定义了数据库的连接,SQL语句的执行以及查询结果集的遍历,一般操作步骤如下: 1.      注册驱动:DriverManager.registerDriver(driver

PHP 数据库驱动、连接数据不同方式学习笔记

相关学习资料 http://www.php.net/manual/zh/refs.database.php http://www.php.net/manual/zh/internals2.pdo.php http://bbs.phpchina.com/thread-184537-1-1.html http://www.metsky.com/archives/660.html http://www.phpbuilder.com/ http://www.w3school.com.cn/php/php