虚拟机
文章平均质量分 97
vm
伊布拉西莫
思想上的强者,行动上的弱者。
展开
-
深入理解java内存模型03-顺序一致性
深入理解java内存模型 -学习笔记 深入理解java虚拟机 JSR133 转载自并发编程网 本文链接地址: 深入理解Java内存模型未正确同步的程序会表现出出人意料的行为程序中用到了局部变量 r1 和 r2,以及共享变量 A 和 B。可能会出现 r2 == 2、 r1 == 1 这样的结果。 直觉上,应当要么指令 1 先执行要么指令 3先执行。...转载 2018-07-06 16:25:18 · 237 阅读 · 0 评论 -
深入理解java内存模型04-volatile,锁,final
深入理解java内存模型 -学习笔记 深入理解java虚拟机 JSR133 转载自并发编程网 本文链接地址: 深入理解Java内存模型VALATILEvalatile的特性 关键字valatile可以说是Java虚拟机提供的最轻量级的同步机制,当一个变量被定义为volatile类型之后,它将具备两种特性:可见性:另一种说法是:对于volatile变量...转载 2018-07-06 16:25:24 · 252 阅读 · 0 评论 -
实战java虚拟机08- class装载
实战java虚拟机 深入理解java虚拟机Class文件的装载流程Class文件通常是以文件的形式存在的(当然任何二进制流类型都可以是Class类型),只有被java虚拟机装载的Class才能在程序中使用。 类加载的条件 Class只有在必须要使用的时候才会被装载,Java虚拟机不会无条件的装载Class类型。Java虚拟机规定,一个类或接口在初次使用之前,必须要进行...原创 2018-07-13 10:41:16 · 194 阅读 · 0 评论 -
实战java虚拟机09- classloader
实战java虚拟机 深入理解java虚拟机ClassLoader类加载器(ClassLoader),它的主要工作在Class装载的加载阶段。其主要作用是从系统外部获得Class二进制数据流,然后交给java虚拟机进行连接、初始化等操作(ClassLoader无法改变类的连接和初始化工作)。 ClassLoader是一个抽象类,它提供了一些重要的接口,用于自定义Class的...原创 2018-07-14 09:49:55 · 296 阅读 · 0 评论 -
实战java虚拟机11-动态函数调用
实战java虚拟机 深入理解java虚拟机在java原创 2018-07-24 22:11:30 · 349 阅读 · 0 评论 -
JVM中的逃逸分析
本文转载自-http://www.importnew.com/23150.html逃逸分析(Escape Analysis)是目前Java虚拟机中比较前沿的优化技术。逃逸分析的基本行为就是分析对象动态作用域:当一个对象在方法中被定义后,它可能被外部方法所引用,例如作为调用参数传递到其他地方中,称为方法逃逸。 例如:public static StringBuffer craeteSt...转载 2018-07-24 22:38:49 · 169 阅读 · 0 评论 -
实战java虚拟机12-程序编译与优化
实战java虚拟机 深入理解java虚拟机早期(编译期)优化原创 2018-07-25 21:14:20 · 359 阅读 · 0 评论 -
实战java虚拟机10-虚拟机指令
实战java虚拟机 深入理解java虚拟机原创 2018-07-20 16:27:09 · 377 阅读 · 0 评论 -
Instrumentation 应用简介
引用: java-instrumentation引用:Instrumentation 新功能简介java Instrumentation指的是可以用独立于应用程序之外的代理(agent)程序来监测和协助运行在JVM上的应用程序。这种监测和协助包括但不限于获取JVM运行时状态,替换和修改类定义等。场景一个ATM应用程序,允许我们取钱还有一个Java代理,它允许我们通过衡量投入的时间...原创 2019-09-06 18:15:39 · 1015 阅读 · 1 评论 -
深入理解java内存模型02-重排序
转载自并发编程网 – ifeve.com本文链接地址: 深入理解Java内存模型硬件的效率一致性高速缓存 & 缓存一致性 由于计算机的存储设备和处理器的运算速度有几个数量级的差距,所以现代计算机系统都不得不加入一层读写速度尽可能接近处理器的高速缓存(Cache)来作为内存与处理器之间的缓冲;将运算需要使用到的数据复制到缓存中,让运算能快速进行,当运算结束后在从缓存同步...转载 2018-07-06 16:25:11 · 543 阅读 · 0 评论 -
实战java虚拟机02- 常用虚拟机参数
实战java虚拟机 学习笔记jdk版本 这里介绍一个联接的方式,设置java_home的方法:mklink /J "D:\study\jdk\jdk_link" "D:\study\jdk\jdk16\jdk1.6.0_45"原创 2018-06-21 19:51:41 · 867 阅读 · 0 评论 -
实战java虚拟机03- 垃圾回收算法
实战java虚拟机垃圾回收的概念垃圾回收(Garbage Collection,简称GC).垃圾回收是java体系最重要的组成部分。和C/C++的手工内存管理不同,java虚拟机提供了一套全自动的内存管理方案,尽可能的减少开发人员在内存资源管理方面的工作量。 GC中的“垃圾”是指:存在于内存中、不会再被使用的对象,而“回收”,也相当于把垃圾“倒掉。” 早在C/C++时代,...原创 2018-06-25 08:45:36 · 204 阅读 · 0 评论 -
实战java虚拟机04- 垃圾回收器与GC参数
实战java虚拟机串行回收器原创 2018-06-26 15:24:09 · 652 阅读 · 0 评论 -
实战java虚拟机07- class文件结构
实战java虚拟机 深入理解java虚拟机class文件class文件的结构并不是一成不变的,随着java虚拟机的不断发展,总是不可避免地会对class文件结构做出一些调整,但是其基本结构和框架是非常稳定的。 Class文件是一组以8字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑的排列在class文件之中,中间没有添加任何分割符,这使得整个Class文件中存储的...原创 2018-07-09 15:07:10 · 158 阅读 · 0 评论 -
实战java虚拟机05- 分析java堆
JDK性能监控工具jdk开发包中,除了比较熟悉的java.exe,javac.exe,还有一系列的辅助工具,它们都存放在jdk安装目录/bin目录下,乍一看这些都是exe,但实际上它们只是将java程序的一层包装,真正的实现是在lib/tools.jar中。以jps命令为例,它实质上是运行:java -classpath $JAVA_HOME/lib/tools.jar sun...原创 2018-07-02 11:22:53 · 243 阅读 · 0 评论 -
实战java虚拟机06- 锁与并发
实战java虚拟机 深入理解java虚拟机HotSpot虚拟机对象探秘对象的创建 java是一门面向对象的语言,在java程序运行的过程中无时无刻都有对象被创建出来。从语言层面上,创建对象通常仅仅是一个new关键字而已,而在虚拟机中,对象(普通java对象,非数组、Class对象)的创建又是怎样一个过程呢? 对象的内存分布 在HotSpot虚拟机中,对象在内存中...原创 2018-07-03 17:12:41 · 202 阅读 · 0 评论 -
性能监控工具-JDK性能监控
JDK性能监控工具jdk开发包中,除了比较熟悉的java.exe,javac.exe,还有一系列的辅助工具,它们都存放在jdk安装目录/bin目录下,乍一看这些都是exe,但实际上它们只是将java程序的一层包装,真正的实现是在lib/tools.jar中。以jps命令为例,它实质上是运行:java -classpath $JAVA_HOME/lib/tools.jar sun...原创 2018-06-28 17:30:15 · 16460 阅读 · 0 评论 -
性能监控工具-操作系统性能监控
实战java虚拟机Linux下的性能监控工具显示系统整体资源使用情况——top命令 linux公社-top详解 top命令是linux下常用的性能工具,它能够实时的显示系统中各个进程的资源占用情况。 top - 23:30:07 up 14 min, 1 user, load average: 0.00, 0.00, 0.00Tasks: 91 total, ...原创 2018-06-28 17:30:43 · 1825 阅读 · 0 评论 -
深入理解java内存模型01-基础
深入理解java内存模型基础并发编程模型的分类java内存模型的抽象重排序处理器重排序与内存屏障指令happens-before重排序数据依赖性as-if-serial语义程序顺序规则重排序对多线程的影响顺序一致性数据竞争与顺序一致性保证顺序一致性内存模型同步程序的顺...转载 2018-07-06 16:25:04 · 168 阅读 · 0 评论 -
实战java虚拟机01- 认识java虚拟机的基本结构
实战java虚拟机 学习笔记认识java虚拟机的基本结构一、 java虚拟机的基本结构 1. 类加载子系统:负责从文件系统或者网络中加载class信息。 2. 方法区:1加载的类信息放在方法区,方法区还会包括运行时常量信息,如:字符串字面量和数字常量 3. java堆:在虚拟机启动时建立,几乎所有的java对象都放在java堆中。堆空间是线程共享的。 4. 直...原创 2018-05-22 17:56:52 · 776 阅读 · 0 评论