1.JVM是什么? JVM:Java Virtual Mechinal(Java虚拟机).它是一个虚构的计算机,是通过在实际的计算机上模拟各种功能来实现的。JVM的主要工作是解释自己的指令集(字节码,如java源码编译成class文件在虚拟机上运行)并映射到本地的CPU指令集或OS的系统调用。Jav ...
分类:
编程语言 时间:
2018-06-23 22:46:23
阅读次数:
191
程序计数器:当前线程所执行的字节码的行动指示器 本地方法栈:为虚拟机使用的native方法服务 java虚拟机栈:描述java方法执行的内存模型,每个方法被执行时都会创建一个栈桢,用于存储局部变量,操作栈,动态链接,方法出口等信息。 每个方法方法创建一个栈桢,栈桢存储了当前方法的数据信息(局部变量) ...
分类:
其他好文 时间:
2018-06-23 11:45:11
阅读次数:
131
java虚拟机学习-深入理解JVM(1) java虚拟机学习-慢慢琢磨JVM(2) java虚拟机学习-慢慢琢磨JVM(2-1)ClassLoader的工作机制 java虚拟机学习-JVM内存管理:深入Java内存区域与OOM(3) java虚拟机学习-JVM内存管理:深入垃圾收集器与内存分配策略( ...
分类:
其他好文 时间:
2018-06-23 10:33:13
阅读次数:
180
转自: http://www.open-open.com/lib/view/open1432200119489.html 这两天看了一下深入浅出JVM这本书,推荐给高级的java程序员去看,对你了解JAVA的底层和运行机制有比较大的帮助。废话不想讲了.入主题:先了解具体的概念:JAVA的JVM的内存 ...
分类:
其他好文 时间:
2018-06-21 17:38:55
阅读次数:
155
线上Tomcat服务内存溢出,且不容易重现,又没配置JMX监控端口,如何在不重启Tomcat的情况下备份堆dump和线程dump,进而分析原因? 因为Tomcat以服务模式运行,直接用JVisualVM无法找到该进程,直接在命令行窗口下用jmap等命令也不行。 为此需要借助Download PsTo ...
分类:
其他好文 时间:
2018-06-21 11:55:15
阅读次数:
179
JVM为什么要区分为栈和堆? 栈代表的操作逻辑存储,堆代表的是数据逻辑存储,这样来划分更加清晰; JVM的内存在宏观上面来讲分为私有内存和共享内存;所谓共享内存(堆)寓意就是各个私有的栈(每个线程私有)可以通过引用来共享堆中的对象。这样的设计可以让各个线程共享一个对象;节省空间,另外可以实现逻辑语义 ...
分类:
其他好文 时间:
2018-06-20 00:05:49
阅读次数:
188
这里概要介绍一下JVM在启动后,作为操作系统的一个进程的基本结构,以及从操作系统角度看,JVM如何管理它从操作系统里申请来的内存的,也就是JVM的内存结构或者叫JVM内存模型。 1、JVM的基本结构 JVM启动后,对操作系统来说,JVM是一个的进程,这个进程的基本结构如上图所示。它包括:类加载器子系 ...
分类:
其他好文 时间:
2018-06-14 18:09:45
阅读次数:
169
这两天看了一下深入浅出JVM这本书,推荐给高级的java程序员去看,对你了解JAVA的底层和运行机制有比较大的帮助。废话不想讲了.入主题:先了解具体的概念:JAVA的JVM的内存可分为3个区:堆(heap)、栈(stack)和方法区(method) 堆区:1.存储的全部是对象,每个对象都包含一个与之 ...
分类:
其他好文 时间:
2018-06-13 15:20:45
阅读次数:
147
在讨论JVM内存区域分析之前,先来看一下Java程序具体执行的过程: Java 程序的执行过程:Java 源代码文件(.Java文件)-> Java Compiler(Java编译器)->Java 字节码文件(.class文件)->类加载器(Class Loader)->Runtime Data A ...
分类:
编程语言 时间:
2018-06-09 11:38:03
阅读次数:
177
运行时数据区域 线程私有 __程序计数器__ 正在执行的字节码指令的地址(native方法时为undefined) __Java虚拟机栈__ 存储栈帧(局部变量表,操作数栈,动态链接,方法出口)OOM,StackOverflowError __本地方法栈__ 与虚拟机栈类似,是native方法的栈 ...
分类:
其他好文 时间:
2018-06-06 23:49:12
阅读次数:
207