随笔分类 -  JVM②

深入理解Java虚拟机的一些学习记录和总结
摘要:前言 高效并发是程序员们写代码时一直所追求的,HotSpot虚拟机开发团队也为此付出了很多努力,为了在线程之间更高效地共享数据,以及解决竞争问题,HotSpot开发团队做出了各种锁的优化技术常见的有:自适应自旋锁(Adaptive Spinning)、锁消除(Lock Elimination)、锁粗 阅读全文
posted @ 2018-06-04 23:00 纪莫 阅读(673) 评论(0) 推荐(2)
摘要:前言 线程:程序流执行的最小单元。线程是比进程更轻量级的调度执行单位,线程的引入,可以把一个进程的资源分配和执行调度分开,各个线程既可以共享进程资源(内存地址、文件I/O等),又可以独立调度(线程是CPU调度的基本单位)。 Java语言定义了5中线程状态,在任意一个时间点,一个线程只能有且只有其中的 阅读全文
posted @ 2018-06-02 19:50 纪莫 阅读(794) 评论(0) 推荐(0)
摘要:对于volatile型变量的特殊规则 关键字volatile可以说是Java虚拟机提供的最轻量级的同步机制。 在处理多线程数据竞争问题时,不仅仅是可以使用synchronized关键字来实现,使用volatile也可以实现。 Java内存模型对volatitle专门定义了一些特殊的访问规则,当一个变 阅读全文
posted @ 2018-05-31 01:10 纪莫 阅读(797) 评论(2) 推荐(0)
摘要:前言 Java虚拟机规范中定义了一种Java的内存模型,即Java Memoory Model(简称JMM),用来实现让Java程序在各个平台下都能达到一致的内存访问效果。JVM是整个虚拟机,JMM模型属于JVM的一部分。 定义Java内存模型并不是一件容易的事情,即要足够严谨,又要足够宽松。初始的 阅读全文
posted @ 2018-05-30 01:16 纪莫 阅读(690) 评论(0) 推荐(2)
摘要:前言 JVM设计团队把类加载阶段中的“通过一个类的全限定名来获取描述此类的二进制字节流”这个动作放到Java虚拟机外面去实现,以便让应用程序自己决定如何去获取所需要的类。实现这个动作的代码模块称为“类加载器”。 类与类加载器 类加载器虽然只用户实现类的加载动作,但它在Java程序中起到的作用却远远不 阅读全文
posted @ 2018-05-28 23:38 纪莫 阅读(738) 评论(0) 推荐(1)
摘要:类的整个生命周期的7个阶段是:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)、卸载(Unloading)。 类加载的全过程主要包括:加载、验证、准备、解析、初始化这5个 阅读全文
posted @ 2018-05-27 19:09 纪莫 阅读(1483) 评论(0) 推荐(0)
摘要:虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是类的加载机制。 在Java语言里面,类型的加载、连接和初始化过程都是在程序运行期间完成的。类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括: 加载 阅读全文
posted @ 2018-05-26 01:15 纪莫 阅读(1514) 评论(0) 推荐(0)
摘要:先回顾一下上一篇介绍的JVM中常见几种垃圾收集算法: 标记-清除算法(Mark-Sweep)。 复制算法(Copying)。 标记整理算法(Mark-Compact)。 分代收集算法(Generational Collecting)。 如果说收集算法是内存回收的方法论。那么垃圾收集器就是内存回收的具 阅读全文
posted @ 2018-05-22 00:05 纪莫 阅读(624) 评论(0) 推荐(0)
摘要:简述 因为各个平台的虚拟机的垃圾收集器的实现各有不同,所以只介绍几个常见的垃圾收集算法。 JVM中常见的垃圾收集算法有以下四种: 标记-清除算法(Mark-Sweep)。 复制算法(Copying)。 标记整理算法(Mark-Compact)。 分代收集算法(Generational Collect 阅读全文
posted @ 2018-05-10 00:39 纪莫 阅读(415) 评论(0) 推荐(0)
摘要:前言 先来回顾一下,在jvm运行时数据区,分为两部分,一个部分是线程共享区,主要包括堆和方法区,另一部是线程私有区分包括本地方法栈,虚拟机栈和程序计数器。在线程私有部分的三个区域是随着线程生和灭的。栈中的栈帧随着方法的进入和退出而执行着出栈和入栈操作。每一个栈帧所用内存大小在类结构确定下来时就已知了 阅读全文
posted @ 2018-04-22 19:48 纪莫 阅读(578) 评论(0) 推荐(0)
摘要:简述 今天继续写《深入理解java虚拟机》的对象创建的理解。这次和上次隔的时间有些长,是因为有些东西确实不好理解,就查阅各种资料,然后弄明白了才来做记录。 (此文中所阐述的内容都是以HotSpot虚拟机为例的。) 对象的创建 java程序在运行过程中无时无刻都有对象被创建出来,那么创建对象是个怎么样 阅读全文
posted @ 2018-04-15 19:18 纪莫 阅读(2357) 评论(0) 推荐(1)
摘要:本博客是为了自己学习JVM而建立,只记录一些自己学习的经过。 最近在看《深入理解Java虚拟机》这本书,里面的内容,很是乏味,因为看不懂所以就会觉得很枯燥,觉得很枯燥看着看着就犯困,然后就睡过去了,再醒来就没心思看书了。不过自己还是要坚持学习,虽然计划赶不上变化,但是还是有自己的小目标的。加油吧。 阅读全文
posted @ 2018-04-08 22:27 纪莫 阅读(670) 评论(0) 推荐(3)