JVM
盖世胖胖
冠军的心是至死不渝。
展开
-
Java虚拟机运行时数据区
Java虚拟机在执行Java程序的过程中会把它管理的内存划分为若干个不同的数据区域。这些数据区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些则依赖用户线程的启动和结束而建立和销毁。Java虚拟机所管理的内存包括以下几个运行时数据区域: 这些运行时数据区域的访问属性、内存配置参数和描述如下: 关于内存配置参数 - -Xms:表示java虚拟机堆区初始内存分配的原创 2017-02-12 17:57:28 · 230 阅读 · 0 评论 -
对象创建、内存布局和访问定位
对象创建在语言层面上,创建对象通常仅是一个new关键字而已,而在虚拟机中,对象的创建又是怎样一个过程呢? 虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用。如果没有,则先执行相应的类加载过程。 为新生对象分配内存,对象所需内存的大小在类加载完成后便可完全确定,那么为对象分配空间的任务等同于把一块确定大小的内存从Java堆中划分出来。分配方式有以下两种,选择原创 2017-02-12 20:10:06 · 255 阅读 · 0 评论 -
垃圾收集器
如果说收集算法是内存回收的方法论,那么垃圾回收器就是内存回收的具体实现。 不同厂商、不同版本的虚拟机所提供的垃圾收集器可能有很大差别,并且一般会根据应用特点和要求组合出各个年代所使用的收集器。 HotSpot虚拟机包含的收集器如下图: 各个垃圾回收器的回收算法、组合方式、应用场景如下图: 先详细说一下CMS收集器运作的大致步骤: 1. 初始标记阶段(CMS initial mark):标记原创 2017-02-10 16:44:33 · 204 阅读 · 0 评论