随笔分类 -  jvm

摘要:JVM之内存分配与回收策略 前言 对象的内存分配,往大的方向上讲,就是在堆上分配,少数情况下也可能会直接分配在老年代中,分配的规则并不是百分之百固定的,其细节决定于当前使用的是哪种垃圾收集器组合,当然还有虚拟机中与内存相关的参数。垃圾收集器组合一般就是Serial+Serial Old和Parall 阅读全文
posted @ 2017-09-01 10:04 牧v尘 阅读(224) 评论(0) 推荐(0)
摘要:一、垃圾收集算法 (1)标记—清除算法 “标记-清除”(Mark-Sweep)算法,如它的名字一样,算法分为“标记”和“清除”两个阶段:首先标记出所有需要回收的对象,在标记完成后统一回收掉所有被标记的对象。之所以说它是最基础的收集算法,是因为后续的收集算法都是基于这种思路并对其缺点进行改进而得到的。 阅读全文
posted @ 2017-08-31 17:48 牧v尘 阅读(185) 评论(0) 推荐(0)
摘要:二、垃圾回收 1、概述 程序计数器、虚拟机栈、本地方法栈三个区域随线程而生,随线程而灭。栈中的栈桢随方法的进入和退出而执行着出栈和入栈操做。每一个栈桢分配多少内存基本上在类结构确定下来时就知道的,因此,这几个区域分配的内存和回收都具备去定性,这几个区域不需要过多的考虑回收的问题。因为,方法结束或线程 阅读全文
posted @ 2017-08-31 15:28 牧v尘 阅读(141) 评论(0) 推荐(0)
摘要:一、内存溢出OutOfMemoryError (1)java堆溢出 ①Java堆用于存储对象实例,只要不断地创建对象,并且保证GC Roots到对象之间有可达路径来避免垃圾回收机制清除这些对象,那么在对象数量到达最大堆的容量限制后就会产生内存溢出异常。 代码清单1中代码限制Java堆的大小为20MB 阅读全文
posted @ 2017-08-30 17:51 牧v尘 阅读(339) 评论(0) 推荐(0)
摘要:一、java技术体系 1、sun官方所定义的java技术体系包括了如下的几个组成部分: java程序设计语言 java虚拟机 java API类库 class文件 第三方java类库 2、java技术体系包含的内容如下图所示: (1)JDK:Java Development Kit,包含java程序 阅读全文
posted @ 2017-08-30 12:00 牧v尘 阅读(209) 评论(0) 推荐(0)
摘要:运行时数据区域 1、概述 对于Java程序员来说,在java虚拟机自动内存管理机制下,我们可以把内存管理的权利交给java虚拟机;正因为如此我们才要了解java虚拟机是怎样使用内存的,来解决内存泄漏和溢出方面的问题! 2、运行时数据区域 Java虚拟机所管理的内存将会包括以下几个运行时数据区域 (1 阅读全文
posted @ 2017-08-30 10:54 牧v尘 阅读(133) 评论(0) 推荐(0)