本篇其实就是一个读书笔记,书是《深入理解JAVA虚拟机》,在网上搜索JAVA内存,说的比较好的其实很多都源自这本书,作为一个JAVA程序员,理解虚拟机是通向高级程序员的必经道路。本篇中的图片源自当时网上,具体出处找不到了,请见谅。 所谓的线程安全,其实就是不同线程对同一个资源的访问和修改引发的数据不 ...
分类:
其他好文 时间:
2017-05-25 01:27:13
阅读次数:
298
Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销毁。根据《Java虚拟机规范(Java SE 7版)》的规定,Java虚拟机所管理的内存 ...
分类:
其他好文 时间:
2017-05-19 00:05:04
阅读次数:
197
jvm内存模型 设置最大、最小堆内存 设置线程栈 设置新生代 设置持久代 取得堆快照(堆dump) 使用-XX:+HeapDumpOnOutOfMemoryError参数在程序发生OOM时,导出应用程序的当前堆快照。 通过参数-XX:HeapDumpPath可以指定堆快照的保存位置。 ...
分类:
其他好文 时间:
2017-05-18 12:41:09
阅读次数:
229
1.什么是jvm?(1)jvm是一种用于计算设备的规范,它是一个虚构出来的机器,是通过在实际的计算机上仿真模拟各种功能实现的。(2)jvm包含一套字节码指令集,一组寄存器,一个栈,一个垃圾回收堆和一个存储方法域。(3)JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上 ...
分类:
其他好文 时间:
2017-05-11 18:32:28
阅读次数:
229
JVM定义了若干个程序执行期间使用的数据区域。这个区域里的一些数据在JVM启动的时候创建,在JVM退出的时候销毁。而其他的数据依赖于每一个线程,在线程创建时创建,在线程退出时销毁。 程序计数器 程序计数器是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器。分支、循环、跳转、异常处理、 ...
分类:
其他好文 时间:
2017-05-08 01:18:52
阅读次数:
228
Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域,这些数据区域都有各自的用途,以及创建和销毁的时间,并且它们可以分为两种类型:线程共享的方法区和堆,线程私有的虚拟机...
分类:
其他好文 时间:
2017-05-05 19:23:51
阅读次数:
138
转自:http://blog.csdn.net/chen77716/article/details/5695893 一、JVM内存模型及垃圾收集算法 1.根据Java虚拟机规范,JVM将内存划分为: New(年轻代) Tenured(年老代) 永久代(Perm) 其中New和Tenured属于堆内存 ...
分类:
其他好文 时间:
2017-05-01 00:20:47
阅读次数:
284
一、JVM 1、内存模型 1.1.1 内存分几部分 (1)程序计数器 可看作当前线程所执行的字节码的**行号指示器**。字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成。 在线程创建时创建。执行本地 ...
分类:
编程语言 时间:
2017-04-25 13:36:06
阅读次数:
1362
JVM内存模型1、栈Java栈是与每一个线程关联的,JVM在创建每一个线程的时候,会分配一定的栈空间给线程。存储局部变量、引用、方法、返回值等。StackOverflowError:如果在线程执行的过程中,栈空间不够用,那么JVM就会抛出此异常,这种情况一般是死递归造成的。2、堆 Java中堆是由所 ...
分类:
其他好文 时间:
2017-04-22 09:12:18
阅读次数:
182
深入理解JVM—JVM内存模型 http://www.cnblogs.com/dingyingsi/p/3760447.html 我们知道,计算机CPU和内存的交互是最频繁的,内存是我们的高速缓存区,用户磁盘和CPU的交互,而CPU运转速度越来越快,磁盘远远跟不上CPU的读写速度,才设计了内存,用户 ...
分类:
其他好文 时间:
2017-04-17 23:33:44
阅读次数:
222