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