Java虚拟机
文章平均质量分 85
凤舞九天的博客
这个作者很懒,什么都没留下…
展开
-
虚拟机类加载机制
虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。在Java语言里,类型的加载、连接和初始化过程都是在程序运行期间完成的,这种策略虽然会令类加载时稍微增加一些性能开销,但是会为Java应用程序提供高度的灵活性,Java里天生可以动态扩展的语言特性就是依赖运行期动态加载和动态链接这个特点实现的。原创 2016-12-01 17:30:29 · 325 阅读 · 0 评论 -
Java内存区域与内存溢出异常
一.运行时数据区域1.程序计数器程序计数器是一块较小的内存空间,它可以看做是当前线程所 执行的字节码的行号指示器。在虚拟机的概念模型里,字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要以来这个急死乎其来完成。用于Java虚拟机的多线程是通过线程轮流切换并分配处理器执行时间的方式来实现的,在任何一个确定的时刻,一个处理器原创 2016-11-24 17:17:01 · 363 阅读 · 0 评论 -
虚拟机字节码执行引擎
执行引擎是Java虚拟机最核心的组成部分之一。“虚拟机”是相对于“物理机”的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、硬件、指令集和操作系统层面上的,而虚拟机的执行引擎则是由自己实现的,因此可以自行制定指令集与执行引擎的结构体系,并且能够执行那些不被硬件直接支持的指令集格式。在Java虚拟机规范中制定了虚拟机字节码执行引擎的概念模型,这个概念模型成为各种虚拟机执行原创 2016-12-07 15:09:29 · 433 阅读 · 0 评论 -
垃圾收集器与内存分配策略
当需要排查各种内存溢出、内存泄漏问题时,当垃圾收集成为系统达到更高并发量的瓶颈时,我们就需要对内存动态分配与内存回收技术实施必要的监控和调节。Java内存运行时区域的各个部分,其中程序计数器、虚拟机栈、本地方法栈3个区域都是随线程而生,随线程而灭,内存分配和回收都具备确定性,在方法结束或者线程结束时内存自然就跟着回收了,所以这几个区域不需要过多考虑回收的问题。而Java堆和方法区则不一样,这部分内存原创 2016-11-25 16:31:41 · 405 阅读 · 0 评论 -
垃圾收集器与内存分配策略(二)
四.垃圾收集器1.serial收集器serial收集器是最基本、发展历史最悠久的收集器,它是一个单线程的收集器,在进行垃圾收集时,必须暂停其他所有的工作线程,直到它收集结束。它优于其他收集器的地方:简单而高效(与其他收集器的单线程比),对于限定单个CPU的环境来说,Serial收集器由于没有线程交互的开销,专心做垃圾收集自然可以获得最高的单线程收集效率。在用户的桌面应用场景中,分配给虚拟机管理的内存原创 2016-11-28 15:04:18 · 318 阅读 · 0 评论