最近在看《深入理解Java虚拟机》,书中给了几个例子,比较好的说明了几种OOM(OutOfMemory)产生的过程,大部分的程序员在写程序时不会太关注Java运行时数据区域的结构:感觉有必要通过几个实在的例子来加深对这几个区域的了解1)Java堆所有对象的实例分配都在Java堆上分配内存,堆大小由-...
分类:
编程语言 时间:
2015-06-14 12:18:45
阅读次数:
157
深入理解Java虚拟机:JVM高级特性与最佳实践 阅读笔记(内存原理、异常处理): 1.???? Jvm运行时,内存划分如图所示: ? 2.???? 程序计数器: ?????? Jvm将这个计数看作当前线程执行某条字节码的...
分类:
编程语言 时间:
2015-06-04 19:39:29
阅读次数:
205
大概两三个月之前阅读了《深入理解Java虚拟机》(周志明著),也为了加深印象,这里简单的做下总结,想完整点了解JVM知识的也可以阅读本书,书写的不错,相当通俗易懂。第一部分 内存管理机制:Java内存区域与内存溢出:Java内存区域分为堆、栈(Java虚拟机栈和本地方法栈,不过对于hotspot来讲...
分类:
其他好文 时间:
2015-05-29 21:45:07
阅读次数:
187
学习自周志明老师的《深入理解Java虚拟机》第二版类的加载时机如上图所示: 类从被加载到虚拟机内存中开始,直到卸载出内存为止,它的整个生命周期包括了: 加载、验证、准备、解析、初始化、使用和卸载 这7个阶段。其中, 验证、准备和解析这三个部分统称为连接(linking) 。 其中,加载、验证、准.....
分类:
其他好文 时间:
2015-05-25 21:54:46
阅读次数:
97
《深入理解Java虚拟机》 第二版中介绍到了类的加载过程。一个类从加载入内存到卸载出内存为止,整个生命周期包括:Loading(加载)-----Verification(验证)-----Preparation(准备)-----Resolution(解析)-----Initialization(初始化...
分类:
其他好文 时间:
2015-05-25 18:04:53
阅读次数:
132
本文引用自:深入理解Java虚拟机的第2章内容 Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来。 概述: 对于从事C和C++程序开发的开发人员来说,在内存管理领域,他们既是拥有最高权力的皇帝,又是从事最基础工作的劳动人民—既拥有每一...
分类:
其他好文 时间:
2015-05-23 11:22:27
阅读次数:
163
---恢复内容开始---参考文献:深入理解Java虚拟机 周志明《Java虚拟机规范SE 7版》规定,Java虚拟机所管理的内存将会包括以下几个运行时数据区域。如图:程序计数器(Program Counter Register)是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的信号指示...
分类:
编程语言 时间:
2015-05-19 00:26:51
阅读次数:
199
文章开始之前,首先需要申明,本系列文章讨论的是HotSpot VM,文章中多数观点基于《深入理解Java虚拟机:JVM高级特性与最佳时间 周志明》,笔者如有理解错误,欢迎指正。
在开始探索jvm虚拟机之前,不得不对jvm的内存区域进行讨论,依旧先附上图表:
程序计数器
程序计数器,也能叫做PC寄存器,从名字上来理解可能会把它想成一个计数的内存区域,但是,了解汇编的人会知道...
分类:
其他好文 时间:
2015-05-16 20:35:12
阅读次数:
162
编译器Java是编译型语言,按照编译的时期不同,编译器可分为:前端编译器:其实叫编译器的前端更合适些,它把*.java文件转变成*.class文件,如Sun的Javac、Eclipse JDT中的增量式编译器ECJ; JIT编译器:虚拟机的后端运行期编译器(Just In Time Compiler...
分类:
编程语言 时间:
2015-05-15 15:07:59
阅读次数:
153
参考文献:深入理解Java虚拟机 周志明 Java编程思想 Bruce Eckel为什么自动化垃圾回收后还要了解GC呢:当需要排查各种溢出、内存泄漏问题时,当垃圾收集成为系统达成更高并发量的瓶颈时,我们就需要对这些“自动化”的技术实施必要的监控和调节。垃圾回收的主要区域:Java堆和方...
分类:
编程语言 时间:
2015-05-13 00:24:34
阅读次数:
266