java虚拟机
文章平均质量分 86
jiuxiao199132
这个作者很懒,什么都没留下…
展开
-
jvm学习记录--01 jvm的基本架构
前言Visual,VMware属于系统系统虚拟机。运行与系统操作系统上的一款软件,提供仿真硬件环境,可以运行一些其他操作系统的软件平台. Java虚拟机是一个虚拟机,属于程序虚拟机。我们编写的程序运行与Java虚拟机上,再由Java虚拟机与操作系统进行交互从而运行我们编写的程序. Java虚拟机有多个版本(hotspot,Openjdk,J9等),这里所述基于hotspot,因为这个版本是使用最原创 2017-11-07 13:54:33 · 180 阅读 · 0 评论 -
jvm学习记录--10 虚拟机类加载机制
类加载过程类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载七个阶段。它们开始的顺序如下图所示: 其中类加载的过程包括了加载、验证、准备、解析、初始化五个阶段。在这五个阶段中,加载、验证、准备和初始化这四个阶段发生的顺序是确定的,而解析阶段则不一定,它在某些情况下可以在初始化阶段之后开始,这是为了支持Java语言的运行时绑定(也成为动态原创 2017-11-21 17:07:44 · 249 阅读 · 0 评论 -
jvm学习记录--08 性能监控Java工具篇
前言在jdk中提供了一些工具帮助开发人员解决一些问题。上一篇中提到的jps,jstack就是出自jdk。 jdk/bin目录下提供了很多exe文件其实都是jar文件的包装,真正的实现在jdk/lib/tools.jar中jps–查看Java进程jps命令可以查看所有的Java进程jps存放在JAVA_HOME/bin/jps,使用时为了方便请将JAVA_HOME/bin/加入到Path。[no1@原创 2017-11-14 16:43:17 · 420 阅读 · 0 评论 -
jvm学习记录--07 性能监控操作系统篇
linux系统监控工具top命令top命令可以从宏观上观察操作系统的cpu,内存使用情况,以及每个进程的使用cpu情况,内存情况。参数说明-b : 批处理-c : 显示完整的命令-I : 忽略失效过程-s : 保密模式-S : 累积模式-i<时间> : 设置间隔时间-u<用户名> : 指定用户名-p原创 2017-11-13 11:29:15 · 803 阅读 · 0 评论 -
jvm学习记录--06 垃圾回收对象内存分配策略
堆内存分配示意图对象优先进入EdenHotSpot虚拟机新生代内存布局及算法 (1)、将新生代内存分为一块较大的Eden空间和两块较小的Survivor空间; (2)、每次使用Eden和其中一块Survivor; (3)、当回收时,将Eden和使用中的Survivor中还存活的对象一次性复制到另外一块Survivor; (4)、而后清理原创 2017-11-10 15:07:04 · 202 阅读 · 0 评论 -
jvm学习记录--05 垃圾收集器分类
前言垃圾收集器是垃圾回收算法(标记-清除算法、复制算法、标记-整理算法等)的具体实现,不同商家、不同版本的JVM所提供的垃圾收集器可能会有很在差别,本文主要介绍HotSpot虚拟机中的垃圾收集器。不同的垃圾收集器有不同的特性,适用于不同的场景。没有最好的收集器,更没有万能的收集;选择的只能是适合具体应用场景的收集器。垃圾收集器的组合图中展示了7种不同分代的收集器: Serial、ParNew、Pa原创 2017-11-10 10:51:47 · 175 阅读 · 0 评论 -
jvm学习记录--04 垃圾回收概念与垃圾回收算法
垃圾回收存在与内存中,但是没有被使用的对象。这些对象如果不清除,就会一直保留到程序结束。如果这些对象占据着内存空间,而其他对象需要使用内存空间的时候发现内存又不够。那么就会出现内存溢出,垃圾回收就是要清理这些没有被使用的对象,释放内存空间。在c/c++等语言中对象的释放是通过程序员手动释放的。 在Java语言中对象的释放是由垃圾回收机制自动的释放的,不需要程序员来参与。垃圾回收有三个需要完成的过程原创 2017-11-09 14:44:10 · 218 阅读 · 0 评论 -
jvm学习记录--03 jvm参数配置
前言通过虚拟机参数可以对虚拟机进行设置(如设置堆大小,栈深度等),可以对虚拟机进行跟踪(跟踪垃圾回收信息,类加载情况)。 通过对虚拟机参数的设置来解决诊断问题与性能优化。参数的使用有三种 -XX:+ 开启参数-XX:- 关闭参数-XX:= 将option参数的值设置为value跟踪Java虚拟机垃圾回收-XX:+PrintGC使用参数-XX:+PrintGC原创 2017-11-08 11:50:27 · 223 阅读 · 0 评论 -
jvm学习记录--02 jvm运行时数据区域(内存区域)
jvm运行时数据区域JVM主要由类加载器子系统、运行时数据区(内存空间)、执行引擎以及与本地方法接口等组成。其中运行时数据区又由方法区、堆、Java栈、PC寄存器、本地方法栈,直接内存组成。其中本地方法栈与直接内存由操作系统提供,jvm负责调用。PC寄存器PC寄存器又称作程序计数器,每一个线程都是私有的。用于保存当前线程正在执行的位置,由于Java是支持多线程执行的,所以程序执行的轨迹不可能一直都是原创 2017-11-07 15:31:57 · 189 阅读 · 0 评论 -
jvm学习记录--09 Class文件结构
不仅跨平台,还能跨语言Java能够跨平台在window,linux,mac等不同平台的操作系统上运行是因为Java虚拟机的存在,Javac把Java代码编译成class文件,Java虚拟机执行class文件,由于Java虚拟机在多个不同操作系统平台都有实现。所有Java语音才能跨平台执行。但时至今日,商业机构和开源机构已经在Java语言之外发展出一大批在Java虚拟机之上运行的语言,如Clojure转载 2017-11-16 11:54:21 · 253 阅读 · 0 评论