经常有人把Java内存区分为堆内存(Heap)和栈内存(Stack),这种区分方法比较粗糙,Java内存区域的划分实际上远比这复杂。Java虚拟机在执行Java程序的过程...
通常情况下,我们在研究JVM内存布局的时候,主要研究的就是Java虚拟机栈和堆(Heap)。这也是大多人将Java虚拟机内存粗分为栈内存和堆内存的原因。
其一是标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容; 其二是非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足...
JDK内置工具使用 一、javah命令(C Header and Stub File Generator) 二、jps命令(Java Virtual Machine Pr...
jps(Java Virtual Machine Process Status Tool)是JDK 1.5提供的一个显示当前所有java进程pid的命令,简单实用,非常适...
jinfo用于观察、修改运行中的java程序的运行环境参数:参数包括Java System属性和JVM命令行参数。
jmap(Java Memory Map)命令可以获得运行中的jvm的堆的快照,从而可以离线分析堆,以检查内存泄漏,检查一些严重影响性能的大对象的创建,检查系统中什么对象...
jstat是JDK自带的一个轻量级小工具。全称“Java Virtual Machine statistics monitoring tool”,它位于java的bin目...
jstack命令主要用于调试java程序运行过程中的线程堆栈信息,可以用于检测死锁,进程耗用cpu过高报警问题的排查。
jvisualvm同jconsole都是一个基于图形化界面的、可以查看本地及远程的JAVA GUI监控工具,可以认为jvisualvm是jconsole的升级版,因此这里...
前面的内容分析了JVM运行时的内存区域划分,并代码进行了实际的讲解。下面我们对象分代年龄的角度对JVM内存进行划分,这与JVM的垃圾回收息息相关。
HotSpot虚拟机的对象头包括两部分信息,第一部分用于存储对象自身的运行时数据,如哈希码(HashCode)、GC分代年龄、锁状态标志、线程持 有的锁、偏向线程ID、...
堆中几乎存放着Java世界中所有的对象实例,垃圾收集器在对堆进行回收前,第一件事情就是要确定这些对象有哪些还“存活”着,哪些已经“死去”(即不可能再被任何途径使用的对象)...
由于垃圾收集算法的实现涉及大量的程序细节,而且各个平台的虚拟机操作内存的方法又各不相同,因此本节不打算过多地讨论算法的实现,只是介绍几种算法的思想及其发展过程。
如果说收集算法是内存回收的方法论,垃圾收集器就是内存回收的具体实现。Java虚拟机规范中对垃圾收集器应该如何实现并没有任何规定,
多线程中稍微不注意就会出现线程安全问题,那么什么是线程安全问题?为什么会出现线程安全问题?出现线程安全的问题一般是因为**主内存和工作内存数据不一致性**和**重排序**...
Java不仅仅是一门编程语言,还是一个由一系列计算机软件和规范形成的技术体系,这 个技术体系提供了完整的用于软件开发和跨平台部署的支持环境,并广泛应用于嵌入式系统、移动终...