JVM具有自动内存管理机制,Java不需要像c/c++一样,为每一个new操作写配对的delete/free代码,不容易出现内存泄露和溢出。JVM内存区域主要包括如下部分:程序计数器、Java虚拟机栈、本地方法栈、Java堆、方法区。程序计数器程序计数器可以视为当前线程所执行的字节码行号指示器,如果当前执行的是Native方法,计数器的值为空(Undefined)。在JVM的概念模型中,字节码解释器...
分类:
编程语言 时间:
2016-05-06 15:18:53
阅读次数:
187
大多数 JVM 将内存区域划分为 Method Area(Non-Heap)(方法区) ,Heap(堆) , Program Counter Register(程序计数器) , VM Stack(虚拟机栈,也有翻译成JAVA 方法栈的),Native Method Stack ( 本地方法栈 ),其 ...
分类:
其他好文 时间:
2016-04-29 22:17:41
阅读次数:
238
内存的划分本文所谈的内存是指的运行时数据区域,分为:
共享的数据区:
堆(Heap)
方法区(Method Area)
线程隔离的数据区:
虚拟机栈(VM Stack)
本地方法栈(Native Method Stack)
程序计数器(Program Counter Register)
Java线程栈的内存管理(隔离内存)线程隔离的性质意味着线程和栈是关联的,每个线程在创建时会创建自己的...
分类:
其他好文 时间:
2016-04-29 19:25:32
阅读次数:
149
内存的划分本文所谈的内存是指的运行时数据区域,分为:
共享的数据区:
堆(Heap)
方法区(Method Area)
线程隔离的数据区:
虚拟机栈(VM Stack)
本地方法栈(Native Method Stack)
程序计数器(Program Counter Register)
Java线程栈的内存管理(隔离内存)线程隔离的性质意味着线程和栈是关联的,每个线程在创建时会创建自己的...
分类:
其他好文 时间:
2016-04-26 21:32:06
阅读次数:
167
java常量池是一个经久不衰的话题,也是面试官的最爱,题目花样百出,小菜早就对常量池有所耳闻,这次好好总结一下。 理论 小菜先拙劣的表达一下jvm虚拟内存分布: 程序计数器是jvm执行程序的流水线,存放一些跳转指令,这个太高深,小菜不懂。 本地方法栈是jvm调用操作系统方法所使用的栈。 虚拟机栈是j ...
分类:
编程语言 时间:
2016-04-24 18:53:00
阅读次数:
149
Java虚拟机垃圾收集器与内存分配策略概述
那些内存需要回收,什么时候回收,如何回收是GC需要完成的3件事情。
程序计数器,虚拟机栈与本地方法栈这三个区域都是线程私有的,内存的分配与回收都具有确定性,内存随着方法结束或者线程结束就回收了。
java堆与方法区在运行期才知道创建那些对象,这部分内存分配是动态的,本章笔记中分配与回收的内存指的就是:java堆与方法区。
判断对象已...
分类:
编程语言 时间:
2016-04-19 19:47:33
阅读次数:
225
Java虚拟机的内存模型分为五个部分,分别是:程序计数器、Java虚拟机栈、本地方法栈、堆、方法区。这五个区域既然是存储空间,那么为了避免Java虚拟机在运行期间内存存满的情况,就必须得有一个垃圾收集者的角色,不定期地回收一些无效内存,以保障Java虚拟机能够健康地持续运行。这个垃圾收集者就是平常我们所说的“垃圾收集器”,那么垃圾收集器在何时清扫内存?清扫哪些数据?这就是接下来我们要解决的问题。...
分类:
其他好文 时间:
2016-04-19 19:39:38
阅读次数:
156
[last updated :2014/11/7] JVM执行时数据区(JVM Runtime Area)事实上就是指JVM在执行期间,其对计算机内存空间的划分和分配。本文将通过下面几个话题来讨论JVM执行时数据区。 Topic 1. JVM执行时数据区里有什么?Topic 2. 虚拟机栈 是什么? ...
分类:
编程语言 时间:
2016-04-10 17:35:23
阅读次数:
176
运行时数据区域 运行时数据区域 1虚拟机栈 (1). 线程私有(生命周期与线程相同) (2). Java方法执行内存模型:每个方法执行时会创建一个Stack Frame用于存储局部变量表、操作数栈、动态链接、方法出口等信息。 每个方法从调用到执行完成的过程,就对应着一个Stack Frame在vm ...
分类:
其他好文 时间:
2016-04-10 01:17:09
阅读次数:
153
虚拟机字节码执行引擎
1. 所有的Java虚拟机的执行引擎都是一致的:输入的是字节码文件,处理过程是字节码解析的有效过程,输出的是执行结果。
2. 运行时栈帧结构:
栈帧是支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区中的虚拟机栈的栈元素。栈帧存储了方法的局部变量表、操作数栈、动态链接和方法返回地址等信息,每一个方法调用从调用开始到执行完成都对应着一个栈帧在虚拟机栈里...
分类:
其他好文 时间:
2016-04-07 07:12:17
阅读次数:
183