![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
evior
因为爱 所以爱
展开
-
JVM虚拟机----ClassLoader类加载机制
Java程序并不是一个原生的可执行文件,而是由许多独立的类文件组成,每一个文件对应一个Java类。此外,这些类文件并非立即全部装入内存的,而是根据程序需要装入内存。ClassLoader专门负责类文件装入到内存。在class文件中描述的各种信息,最终都需要被加载到虚拟机中之后,才能被运行和使用。虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验,转换,解析和初始化,最终形成可以被...转载 2018-08-30 17:34:41 · 179 阅读 · 0 评论 -
JVM虚拟机--JVM的监控工具
JVM监控工具Java的安装包自带了很多优秀的工具,善用这些工具对于监控和调试Java程序非常有帮助。常用工具如下:jps 用途:jps用来查看JVM里面所有进程的具体状态, 包括进程ID,进程启动的路径等等。常用参数:-l: 输出完成的包名称;-m: 输出程序的命令行输入参数;-v: 输出完整的JVM参数。jstack 用途:1)查看java程序崩溃生成cor...转载 2018-08-30 18:07:02 · 205 阅读 · 0 评论 -
JVM虚拟机---JVM锁机制
1.线程安全如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。----使用锁,维护计数器的串行访问与安全性 import java.util.ArrayList;import java.util.List;public class Test...转载 2018-08-30 18:45:05 · 205 阅读 · 0 评论 -
JVM虚拟机---Class文件的结构
Class文件是一组以8位字节为基础单位的二进制流,包含多个数据项目(数据项目的顺序,占用的字节数均由规范定义),各个数据项目严格按照顺序紧凑的排列在Class文件中,不包含任何分隔符,使得整个Class文件中存储的内容几乎全部都是程序运行的必要数据,没有空隙。当遇到需要占用超过8位字节以上空间的数据项目时,会按照高位在前的方式分割为多个8位字节进行存储数据项目分为2种基本数据类型(以及由这两...转载 2018-08-30 18:54:59 · 187 阅读 · 0 评论 -
Java虚拟机----深入JVM字节码执行引擎
我们都知道,在当前的Java中(1.0)之后,编译器讲源代码转成字节码,那么字节码如何被执行的呢?这就涉及到了JVM的字节码执行引擎,执行引擎负责具体的代码调用及执行过程。就目前而言,所有的执行引擎的基本一致:输入:字节码文件 处理:字节码解析 输出:执行结果。物理机的执行引擎是由硬件实现的,和物理机的执行过程不同的是虚拟机的执行引擎由于自己实现的。运行时候的栈结构每一个线程都有...转载 2018-08-30 20:24:46 · 131 阅读 · 0 评论 -
JVM虚拟机----JVM内存结构
主要内容如下:JVM启动流程 JVM基本结构 内存模型 编译和解释运行的概念 一、JVM启动流程:JVM启动时,是由java命令/javaw命令来启动的。二、JVM基本结构:JVM基本结构图:《深入理解Java虚拟机(第二版)》中的描述是下面这个样子的: Java中的内存分配:Java程序在运行时,需要在内存中的分配空间。为了提高运算效率,就...转载 2018-08-30 11:44:26 · 152 阅读 · 0 评论 -
JVM虚拟机--JVM的参数设置与调优
一、Trace跟踪参数(跟踪GC、类、变量的内存变化情况)打开GC跟踪日志(每次执行GC的信息都能打印,获得执行时间,空间大小):-verbose:gc 或 -XX:+printGC 或 -XX:+printGCDetails 类加载监控:(监控类加载的顺序)-XX:+TraceClassLoading 二、堆的分频参数-Xmx10M 指定最大堆,JVM最多能够使用...转载 2018-08-30 11:55:18 · 177 阅读 · 0 评论 -
JVM虚拟机---JVM的GC算法与种类
1、GC 垃圾收集 Garbage Collection 通常被称为“GC”,它诞生于1960年 MIT 的 Lisp 语言,经过半个多世纪,目前已经十分成熟了。 jvm 中,程序计数器、虚拟机栈、本地方法栈都是随线程而生随线程而灭,栈帧随着方法的进入和退出做入栈和出栈操作,实现了自动的内存清理,因此,我们的内存垃圾回收主要集中于 java 堆和方法区中,在程序运行期间,这部...转载 2018-08-30 12:16:23 · 476 阅读 · 0 评论