jvm运行时数据区的简单介绍
JVM所管理的内存分为以下几个运行时数据区:程序计数器、Java虚拟机栈、本地方法栈、Java堆、方法区。
其中本文涉及到的主要有:java虚拟机站(简称java栈),java堆和方法区。
这里简单地普及一下这三种数据区的知识,java栈的读取速度是最快的(紧次与CPU的寄存器,跨平台性比寄存器好,android使用的是寄存器),但是里面...
分类:
其他好文 时间:
2014-08-18 13:09:22
阅读次数:
215
自己从网上搜资料拼接了一张JVM内存图:如下图所示:我们思考几个问题:1.jVM是怎么运行的?2.JVM运行时内存是怎么分配的?3.我们写的java代码(类,对象,方法,常量,变量等等)最终存放在哪个区?VM运行时数据区域:1.程序计数器(program Counter Register): 是.....
分类:
编程语言 时间:
2014-08-16 13:45:10
阅读次数:
265
static的三条作用:首先static的最主要功能是隐藏,其次因为static变量存放在静态存储区所以它具备持久性,再者默认值0。1.隐藏:同时编译多个文件时,未加static前缀的全局变量和函数都具有全局可见性。2.持久性:存储在静态数据区的变量会在程序刚开始运行时就完成初始化,也是唯一的一次初...
分类:
其他好文 时间:
2014-08-15 01:20:56
阅读次数:
243
主要参考资料:《深入理解Java虚拟机》,未经本人及原书作者同意禁止转载。JVM中的数据区域JVM中给数据分了这么几个区域:其中: 1.程序计数器: 程序计数器是一块较小的内存空间,为当前线程所执行的字节码的行号指示器。也就是说,程序再翻译成为字节码了之后,分支、循环、跳转、异常处理、线程恢...
分类:
编程语言 时间:
2014-08-14 20:10:29
阅读次数:
281
局部变量在stack(栈)中分配内存;使用new关键字构造出来的对象在heap(堆)中分配内存;静态变量和字符串常量在Data Segment(数据区)分配内存。class Cat{static int sid=0;int id;String name;}Cat cat=new Cat();Stri...
分类:
编程语言 时间:
2014-08-14 00:55:37
阅读次数:
230
jvm在java程序运行时会将它所管理的内存划分成不同的区域做不同的功能,这并不难以想象。主要有两类结构,即:堆和栈。java堆主要是保存运行时的对象和数组数据,是所有线程共享的内存区域,在堆中有方法区、运行时常量池。方法区是代码的存储区,类、方法数据、方法的字节码、..
分类:
其他好文 时间:
2014-08-13 03:41:56
阅读次数:
170
FAT32文件系统学习(3) —— 数据区(DATA区) 今天继续学习FAT32文件系统的数据区部分(Data区)。其实这一篇应该是最有意思的,我们可以通过在U盘内放入一些文件,然后在程序中读取出来;反过来也可以用程序在U盘内写入一下数据,然后在windows下可以看到写入的文件。这些笔者都会在.....
分类:
其他好文 时间:
2014-08-08 23:54:26
阅读次数:
448
从面试的反馈来看,这部分可以问的很难。1、指针与引用的区别指针是一个变量,用来存放地址的变量。引用是原来变量的存储空间的别名。2、指针作为参数的要点a、需要进行指针的合法性检验,防止空指针。b、需要修改指针本身指向的地址时,参数需要是该指针的引用。3、c++程序运行空间数据区(Data Area):...
分类:
编程语言 时间:
2014-08-07 22:34:58
阅读次数:
289
自动内存管理机制 Java虚拟机(JVM)在执行Java程序过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有的区域则是依赖用户线程的启动和结束而建立和销毁。根据《Java虚拟机规范 第2版》规定,运行时数据区包....
分类:
编程语言 时间:
2014-08-07 22:01:56
阅读次数:
349
Java栈与堆堆:顺序随意栈:后进先出(Last-in/First-Out). Java的堆是一个运行时数据区,类的对象从中分配空间。这些对象通过new、newarray、anewarray和multianewarray等指令建立,它们不需要程序代码来显式的释放。堆是由垃圾回收来负责的,堆的优势是可...
分类:
编程语言 时间:
2014-07-30 11:43:03
阅读次数:
315