
Java虚拟机
Jassy1994
这个作者很懒,什么都没留下…
展开
-
Java内存区域
Java虚拟机在执行Java程序时,将它管理的内存划分为几个不同的数据区域,这些区域都有各自的用途以及创建和销毁的时间; Java虚拟机所管理的内存一般包括以下几个区域: 1. 程序计数器 一块较小的内存空间,是当前线程的行号指示器(字节码解释器工作时通过改变这个计数器的值来选择下一条需要执行的字节码指令),每条线程都需要有一个独立的程序计数器;此内存区域没有规定OutOfMemor原创 2017-03-11 17:19:18 · 498 阅读 · 0 评论 -
虚拟机中创建与访问对象
Java程序无时无刻不在和对象打交道。 Java语言中创建对象使用new关键字,当虚拟机遇到一条new指令时,开始创建对象,分为以下几个步骤: 1. 类加载、解析与初始化; 2. 加载完成后,新对象所需要的内存空间大小已被确定,虚拟机将一块确定大小的内存从堆中划分出来,这里有两种分配方式,1. 若Java堆是规整的,则分配内存只需将指针向空闲空间那边移动一段与对象大小相等的距离,这种方式被称原创 2017-03-11 17:35:31 · 497 阅读 · 0 评论 -
Java垃圾收集
1. Java的垃圾收集算法: 1.1 什么样的对象应该被清除? 引用计数算法: 给对象添加一个引用计数器,每个引用它的地方,计数器值加一,引用断开时,计数器值减一,当计数器值为0时,这个对象就是不可能再被 使用的,可以被清除; 引用计数算法简单,判定效率高,但是无法解决对象之间相互循环引用的问题; 可达性分析算法: 通过一系列GC Roots的对象原创 2017-03-11 20:48:14 · 478 阅读 · 0 评论