
Java虚拟机
工作、生活中的笔记记录,主要是与JVM有关的东西。
Steven_sf
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
垃圾收集器
首先需要说明一点的是,本章虽然介绍了几种垃圾收集器,但并不是为了说明哪个收集器好,哪个收集器不好的,因为目前为止还没有哪个收集器可以完全取代其它的收集器的,如果有的话,HotSpot虚拟机也不会实现那么多不同的收集器了。 1 Serial收集器 Serial是最基本、发展历史最悠久的收集器,是一个单线程的收集器,不仅仅体现在它只会使用一个CPU或者一条线程去回收垃圾,而且当它在回收垃圾的时候,其它...原创 2019-03-08 23:01:28 · 337 阅读 · 0 评论 -
JVM垃圾回收算法
1 概述 前面已经介绍过了,jvm运行时的数据区域包括程序计数器、虚拟机栈、本地方法栈、堆和方法区,其中程序计数器、虚拟机栈和本地方法栈是线程私有的,当方法结束或者线程销毁时,这部分的内存就会被回收了,不用过多的考虑。所以,本章所讲的主要是堆和方法区的内存分配与回收问题。 2 对象“死”了吗 我们知道,堆里面几乎存放了java中所有的对象实例,垃圾收集器(GC)在对这部分内存进行回收时,首先需要判...原创 2019-03-07 21:41:14 · 295 阅读 · 0 评论 -
HotSpot虚拟机中的对象
1 对象的创建 这里的对象仅限于普通的java对象,不包括数组和Class对象。一般来说,创建对象通常仅仅通过一个new关键字。当虚拟机遇到一条new的指令时,首先会去检查这个指令所带的参数能不能在常量池中定位到某个类的符号引用,并且检查这个类是否已经加载完毕,当类加载检查通过后,就开始为对象分配内存了,就是上节所提到的,会在java堆中划分出一块确定大小的内存。 在分配内存的时候,主要考虑以下两...转载 2019-03-06 22:25:09 · 466 阅读 · 0 评论 -
Java内存区域与内存溢出异常
序言 Java与C++之间有一堵由内存动态分配和垃圾手机技术所围成的“高墙”,墙外面的人想进去,墙里面的人想出来。 一、运行时数据区域 Java程序在执行时,是由jvm来控制的。Java虚拟机在执行Java程序时,会把它所管理的内存划分为若干个不同的数据区域。主要按照几个区域进行划分: 二、程序计数器 程序计数器是一块较小的内存空间,主要记录线程当前执行到了哪一步。由于多线程是通过轮流切换线程来...原创 2019-03-05 18:52:02 · 338 阅读 · 2 评论