jvm
kingeleven
这个作者很懒,什么都没留下…
展开
-
Java内存模型 CAS
网上有很多关于Java内存模型的文章,在《深入理解Java虚拟机》和《Java并发编程的艺术》等书中也都有关于这个知识点的介绍。但是,很多人读完之后还是搞不清楚,甚至有的人说自己更懵了。本文,就来整体的介绍一下Java内存模型,目的很简单,让你读完本文以后,就知道到底Java内存模型是什么,为什么要有Java内存模型,Java内存模型解决了什么问题等。 本文中,有很多定义和说法,都是笔者自己理解后定义出来的。希望能够让读者可以对Java内存模型有更加清晰的认识。当然,如有偏颇,欢迎指正。 为什么要有内存转载 2020-05-13 00:39:41 · 271 阅读 · 0 评论 -
深入理解JVM(四)—垃圾回收算法和垃圾回收器
一、垃圾回收简介 1.1 什么是垃圾回收 JVM中自动检测并移除不再使用的数据对象的这种机制称为:垃圾回收(Garbage Collection ),简称GC 1.2 为什么要垃圾回收 由于不同JAVA对象存活时间是不一定的,因此,在程序运行一段时间以后,如果不进行垃圾回收,整个程序会因内存耗尽导致整个程序崩溃。垃圾回收还会整理那些零散的内存碎片,碎片过多最直接的问题就是会导致无法分配大块的内存空间以及降低程序的运行效率 二、垃圾对象的判定 2.1 引用计数法 给所有的对象添加一个引用计数器,每当有一个原创 2020-05-12 22:35:23 · 237 阅读 · 0 评论 -
深入理解JVM(三)—JVM内存划分
一、JVM运行时数据区域 二、程序计数器 线程私有 当前线程所执行字节码的行号指示器,控制程序执行顺序,分支,循环,跳转。 三、虚拟机栈 线程私有 JVM栈是程序运行时单位,决定了程序如何执行,或者说数据如何处理。 Java栈内存,以帧的形式存放本地方法的调用状态,包括方法调用的参数、局部变量、中间结果等(方法都是以方法帧的形式存放在方法区的),每调用一个方法就将对应该方法的方法帧压入Java 栈,成为当前方法帧。当调用结束(返回)时,就弹出该帧。活动线程中,只有栈顶的栈帧是有效的,称为当前栈帧转载 2020-05-12 22:29:35 · 125 阅读 · 0 评论 -
深入理解JVM(二)—类加载机制
一、JVM类加载机制 加载 链接(验证 准备 解析) 初始化 使用 卸载 类加载器: 启动类加载器(Bootstrap ClassLoader): 负责加载JAVA_HOME\lib 目录中的,或通过-Xbootclasspath参数指定路径中的,且被虚拟机认可(按文件名识别,如rt.jar)的类。 扩展类加载器(Extension ClassLoader): 负责加载JAVA_HOME\lib\ext 目录中的,或通过java.ext.dirs系统变量指定路径中的类库。 应用程序类加载器(App转载 2020-05-12 22:27:03 · 142 阅读 · 0 评论 -
深入理解JVM(一)—Java与JVM的关联关系
一、JVM简介 英文:JAVA Virtual Machine JVM是一个虚拟出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。 JVM有自己完善的虚拟硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统 JVM屏蔽了与具体操作系统平台相关的信息,使得JAVA程序只需生成在JAVA虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行 三大主流虚拟机: SUN HotSopt: 使用最广泛的虚拟机,兼容性好,开源,我们日常使用这个 Bea JRockit: 执行效转载 2020-05-12 22:23:57 · 1159 阅读 · 1 评论