虚拟机
文章平均质量分 56
高山流水forever
努力做好后台开发
展开
-
垃圾回收的finalize方法使用
在跟搜索算法不可大的对象在GC时,至少要经过俩次标记过程才能真正的死亡,第一次标记和筛选时判断对象是否有必要执行finalize方法,当对象没有重写finalize方法或者finalize方法被虚拟机调用过,虚拟机将这俩种方法认为没有必要在执行finalize方法。 如果有必要执行,这个对象将被放置在一个F_Queue队列中,并由一条虚拟机自动建立的、低优先级的Finalizer线程去执行。但并不保原创 2015-06-04 18:17:23 · 698 阅读 · 0 评论 -
虚拟机类加载机制
类从被加载到虚拟机内存,到卸载出内存为止,经历了7个阶段:加载、验证、准备、解析、初始化、使用、卸载。其中验证、准备、解析统称为连接。解析有时候在初始化后面,这是为了支持java语言的动态绑定。 加载:加载需要完成以下三件事 通过一个类的全限定名来获取定义此类的二进制字节流; 将这个字节流所代表的静态储存结构转化为方法区运行时数据结构; 在内存中生存一个代表这个类的java.long.Class原创 2016-06-04 20:02:33 · 370 阅读 · 0 评论 -
双亲委派机制
定义:虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制 工作机制 类装载器就是寻找类的字节码文件,并构造出类在JVM内部表示的对象组件。在Java中,类装载器把一个类装入JVM中,要经过以下步骤:(1) 装载:查找和导入Class文件;(2) 链接:把类的二进制数据合并到JRE中;校验:检查载入原创 2016-06-01 14:37:56 · 1149 阅读 · 0 评论 -
分代回收机制
分代收集算法是目前大部分JVM的垃圾收集器采用的算法。它的核心思想是根据对象存活的生命周期将内存划分为若干个不同的区域。一般情况下将堆区划分为老年代(Tenured Generation)和新生代(Young Generation),老年代的特点是每次垃圾收集时只有少量对象需要被回收,而新生代的特点是每次垃圾回收时都有大量的对象需要被回收,那么就可以根据不同代的特点采取最适合的收集算法。 目前大部分原创 2016-05-31 15:29:23 · 2050 阅读 · 1 评论 -
JAVA虚拟机内存机制
1、Java内存区域划分: 运行时的数据区:方法区和堆(各个线程共享的内存区域),程序计数器、Java虚拟机栈和本地方法栈(线程私有的) 程序计数器:当前线程所执行字节码的行号指示器,字节码解释器就是通过改变计算器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理和线程恢复都需要依赖计数器完成。如果线程执行的是一个java方法,计数器记录的是正在执行的虚拟机字节码指令的地址;如果原创 2016-05-31 14:53:39 · 423 阅读 · 0 评论