美文网首页
1.1 数据结构

1.1 数据结构

作者: 9cc222f2bb0a | 来源:发表于2018-02-28 16:28 被阅读0次

虚拟机的结构

一共有虚拟机栈,本地方法栈,堆,方法区(永久区),直接内存

一、虚拟机栈:也叫作局部变量表,包含:八种基本数字类型,对象的引用,以及指向一条字节码指令

    注意:

        1. 对象的应用可能是指向对象,同时也可能指向一个代表对象的句柄或者与此对象相关的位置;

        2. 八种基本数据类型,只有double跟long会占据两个slot,且占据的内存空间在编译期间已经完全确定,方法运行期间不会改变局部变量表的大小;

二、堆:各个线程的共享内存区域,唯一目的就是存储对象

三、方法区:各个线程的共享内存区域,用于存储已被加载的类信息,常量,静态变量,即时编译器编译后的代码。

    方法区比较难进行垃圾回收,回收的对象是针对常量池以及对类型的卸载。

四、运行时常量池:是方法区的一部分,存放各种编译期产生的字面量跟符号引用,相比较于class文件,常量池的要求没有那么严格,且是可以动态改变的,即不强要求一定要在编译时期才能改变。

五、直接内存:直接内存并不是虚拟机运行时数据区的一部分,所以并不受Java堆大小的限制,在对比NIO中直接内存与堆内存IO的效率的时候,发现,直接内存的读写效率大概在两倍左右,但是创建及销毁的耗费远远超过堆内存。

相关文章

网友评论

      本文标题:1.1 数据结构

      本文链接:https://www.haomeiwen.com/subject/keybxftx.html