首页
学习
活动
专区
工具
TVP
发布

Jimoer

专栏作者
102
文章
73052
阅读量
40
订阅数
深入理解JVM(③)虚拟机性能监控、故障处理工具
JDK的bin目录中有一系列的小工具,除了java.exe、javac.exe这两个编译和运行Java程序外,还有打包、部署、签名、调试、监控、运维等各种场景都会用到这些小工具。
纪莫
2020-06-23
5830
JVM学习记录-线程安全与锁优化(二)
高效并发是程序员们写代码时一直所追求的,HotSpot虚拟机开发团队也为此付出了很多努力,为了在线程之间更高效地共享数据,以及解决竞争问题,HotSpot开发团队做出了各种锁的优化技术常见的有:自适应自旋锁(Adaptive Spinning)、锁消除(Lock Elimination)、锁粗化(Lock Coarsening)、轻量级锁(Lightweight Locking)和偏向锁(Biased Locking)等。
纪莫
2018-08-01
4160
JVM学习记录-线程安全与锁优化(一)
线程:程序流执行的最小单元。线程是比进程更轻量级的调度执行单位,线程的引入,可以把一个进程的资源分配和执行调度分开,各个线程既可以共享进程资源(内存地址、文件I/O等),又可以独立调度(线程是CPU调度的基本单位)。
纪莫
2018-08-01
3820
JVM学习记录-Java内存模型(二)
在处理多线程数据竞争问题时,不仅仅是可以使用synchronized关键字来实现,使用volatile也可以实现。
纪莫
2018-08-01
2280
JVM学习记录-Java内存模型(一)
Java虚拟机规范中定义了一种Java的内存模型,即Java Memoory Model(简称JMM),用来实现让Java程序在各个平台下都能达到一致的内存访问效果。JVM是整个虚拟机,JMM模型属于JVM的一部分。
纪莫
2018-08-01
2450
JVM学习记录-类加载器
JVM设计团队把类加载阶段中的“通过一个类的全限定名来获取描述此类的二进制字节流”这个动作放到Java虚拟机外面去实现,以便让应用程序自己决定如何去获取所需要的类。实现这个动作的代码模块称为“类加载器”。
纪莫
2018-08-01
3270
JVM学习记录-垃圾收集器
先回顾一下上一篇介绍的JVM中常见几种垃圾收集算法: 标记-清除算法(Mark-Sweep)。 复制算法(Copying)。 标记整理算法(Mark-Compact)。 分代收集算法(Generati
纪莫
2018-07-06
3260
JVM学习记录-垃圾回收算法
简述 因为各个平台的虚拟机的垃圾收集器的实现各有不同,所以只介绍几个常见的垃圾收集算法。 JVM中常见的垃圾收集算法有以下四种: 标记-清除算法(Mark-Sweep)。 复制算法(Copying)。 标记整理算法(Mark-Compact)。 分代收集算法(Generational Collecting)。  标记-清除算法 标记-清除算法是现代垃圾回收算法的思想基础,主要分为两个阶段:标记阶段和清除阶段。首先根据可达分析算法,标记处可以回收的对象,标记完成后,进行清除阶段,将标记为可回收的对象进行清除。
纪莫
2018-06-14
5270
JVM学习记录-对象已死吗
前言 先来回顾一下,在jvm运行时数据区,分为两部分,一个部分是线程共享区,主要包括堆和方法区,另一部是线程私有区分包括本地方法栈,虚拟机栈和程序计数器。在线程私有部分的三个区域是随着线程生和灭的。栈中的栈帧随着方法的进入和退出而执行着出栈和入栈操作。每一个栈帧所用内存大小在类结构确定下来时就已知了。因此这线程私有区的内存分配和回收都具备确定性,简单概括的说:这部分内存在类加载时分配,在线程结束时回收。(个人理解) 而线程共享区(堆和方法区)则不一样,一个方法中的多个分支需要的内存可能不一样,只有在程序处于
纪莫
2018-04-24
6980
JVM学习记录-jvm的内存结构管理和运行时数据区理解
本博客是为了自己学习JVM而建立,只记录一些自己学习的经过。 最近在看《深入理解Java虚拟机》这本书,里面的内容,很是乏味,因为看不懂所以就会觉得很枯燥,觉得很枯燥看着看着就犯困,然后就睡过去了,再
纪莫
2018-04-19
7040
jvm学习记录-对象的创建、对象的内存布局、对象的访问定位
简述 今天继续写《深入理解java虚拟机》的对象创建的理解。这次和上次隔的时间有些长,是因为有些东西确实不好理解,就查阅各种资料,然后弄明白了才来做记录。 (此文中所阐述的内容都是以HotSpot虚拟机为例的。) 对象的创建 java程序在运行过程中无时无刻都有对象被创建出来,那么创建对象是个怎么样的过程呢?还是看看我自己的理解吧。 判断是否已经执行类加载 当虚拟机遇到一条new指令时 ,首先去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已经被加载、解析和初始化
纪莫
2018-04-19
9050
没有更多了
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档