代码改变世界

随笔分类 -  JVM

深入浅出 JVM GC(4)常用 GC 参数介绍

2019-12-11 20:58 by GarfieldEr007, 425 阅读, 收藏, 编辑
摘要: # 前言 从前面的3篇文章中,我们分析了5个垃圾收集器,还有一些 GC 的算法,那么,在 GC 调优中,我们肯定会先判断哪里出现的问题,然后再根据出现的问题进行调优,而调优的手段就是 JVM 提供给我们的那些参数或者说选项,这些参数将会改变 GC 的运行方式。因此,他们显得极为重要。 我们将每一个垃 阅读全文

再有人问你Java内存模型是什么,就把这篇文章发给他

2018-11-13 21:39 by GarfieldEr007, 316 阅读, 收藏, 编辑
摘要: 前几天,发了一篇文章,介绍了一下JVM内存结构、Java内存模型以及Java对象模型之间的区别。有很多小伙伴反馈希望可以深入的讲解下每个知识点。Java内存模型,是这三个知识点当中最晦涩难懂的一个,而且涉及到很多背景知识和相关知识。 网上有很多关于Java内存模型的文章,在《深入理解Java虚拟机》 阅读全文

《成神之路-基础篇》JVM——Java内存模型(已完结)

2018-11-13 21:37 by GarfieldEr007, 340 阅读, 收藏, 编辑
摘要: Java内存模型 本文是《成神之路系列文章》的第一篇,主要是关于JVM的一些介绍。 持续更新中 Java内存模型 JVM内存结构 VS Java内存模型 VS Java对象模型(Hollis原创) 再有人问你Java内存模型是什么,就把这篇文章发给他。(Hollis原创) 内存模型是怎么解决缓存一致 阅读全文

JVM监测分析JConsole

2018-11-11 21:38 by GarfieldEr007, 211 阅读, 收藏, 编辑
摘要: 一、基本操作 启动界面 1.JConsole是什么 从Java 5开始引入了JConsole。JConsole是一个内置Java性能分析器,可以从命令行或在GUI shell中运行。您可以轻松地使用JConsole(或者,它更高端的“近亲” VisualVM)来监控Java应用程序性能和跟踪Java 阅读全文

JConsole详解

2018-11-11 21:37 by GarfieldEr007, 524 阅读, 收藏, 编辑
摘要: 一、JConsole是什么 从Java 5开始 引入了 JConsole。JConsole 是一个内置 Java 性能分析器,可以从命令行或在 GUI shell 中运行。您可以轻松地使用 JConsole(或者,它更高端的 “近亲” VisualVM )来监控 Java 应用程序性能和跟踪 Jav 阅读全文

jconsole工具使用

2018-11-11 21:36 by GarfieldEr007, 337 阅读, 收藏, 编辑
摘要: Jconsole,Java Monitoring and Management Console。Jconsole是JDK自带的监控工具,在JDK/bin目录下可以找到。它用于连接正在运行的本地或者远程的JVM,对运行在java应用程序的资源消耗和性能进行监控,并画出大量的图表,提供强大的可视化界面。 阅读全文

JVM 虚拟机字节码指令表

2018-11-11 21:01 by GarfieldEr007, 777 阅读, 收藏, 编辑
摘要: 把JVM虚拟机字节指令表整理了一下,方便搜索,偶尔复习下 纯手工整理,可能存在一些问题,如果发现请及时告之我会修正 from: https://segmentfault.com/a/1190000008722128 阅读全文

轻松看懂Java字节码

2018-11-11 21:01 by GarfieldEr007, 5428 阅读, 收藏, 编辑
摘要: java字节码 计算机只认识0和1。这意味着任何语言编写的程序最终都需要经过编译器编译成机器码才能被计算机执行。所以,我们所编写的程序在不同的平台上运行前都要经过重新编译才能被执行。 而Java刚诞生的时候曾经提过一个非常著名的宣传口号: "一次编写,到处运行"。 Write Once, Run A 阅读全文

大话+图说:Java字节码指令——只为让你懂

2018-11-11 20:59 by GarfieldEr007, 1055 阅读, 收藏, 编辑
摘要: 前言 随着Java开发技术不断被推到新的高度,对于Java程序员来讲越来越需要具备对更深入的基础性技术的理解,比如Java字节码指令。不然,可能很难深入理解一些时下的新框架、新技术,盲目一味追新也会越来越感乏力。 本文既不求照本宣科,亦不求炫技或著文立说,仅力图以最简明、最形象生动的方式,结合例子与 阅读全文

深入理解java虚拟机(六)字节码指令简介

2018-11-11 20:59 by GarfieldEr007, 366 阅读, 收藏, 编辑
摘要: Java虚拟机指令是由(占用一个字节长度、代表某种特定操作含义的数字)操作码Opcode,以及跟随在其后的零至多个代表此操作所需参数的称为操作数 Operands 构成的。由于Java虚拟机是面向操作数栈而不是寄存器的架构,所以大多数指令都只有操作码,而没有操作数。 字节码指令集是一种具有鲜明特点、 阅读全文

JVM Object Query Language (OQL) 查询语言

2018-11-11 17:10 by GarfieldEr007, 561 阅读, 收藏, 编辑
摘要: Object Query Language (OQL) OQL is SQL-like query language to query Java heap. OQL allows to filter/select information wanted from Java heap. While pr 阅读全文

JVM OQL查询语言

2018-11-11 17:08 by GarfieldEr007, 624 阅读, 收藏, 编辑
摘要: OQL查询语言 SELECT Clause The SELECT clause determines what to extract from the heap dump. To display objects and be able to browse the outgoing reference 阅读全文

Java命令学习系列(七)——javap

2018-11-10 21:56 by GarfieldEr007, 382 阅读, 收藏, 编辑
摘要: javap是jdk自带的一个工具,可以对代码反编译,也可以查看java编译器生成的字节码。 一般情况下,很少有人使用javap对class文件进行反编译,因为有很多成熟的反编译工具可以使用,比如jad。但是,javap还可以查看java编译器为我们生成的字节码。通过它,可以对照源代码和字节码,从而了 阅读全文

Java命令学习系列(六)——jinfo

2018-11-10 21:55 by GarfieldEr007, 254 阅读, 收藏, 编辑
摘要: jinfo可以输出java进程、core文件或远程debug服务器的配置信息。这些配置信息包括JAVA系统参数及命令行参数,如果进程运行在64位虚拟机上,需要指明-J-d64参数,如:jinfo -J-d64 -sysprops pid 另外,Java7的官方文档指出,这一命令在后续的版本中可能不再 阅读全文

Java命令学习系列(五)——jhat

2018-11-10 21:54 by GarfieldEr007, 355 阅读, 收藏, 编辑
摘要: jhat(Java Heap Analysis Tool),是一个用来分析java的堆情况的命令。之前的文章讲到过,使用jmap可以生成Java堆的Dump文件。生成dump文件之后就可以用jhat命令,将dump文件转成html的形式,然后通过http访问可以查看堆情况。 jhat命令解析会Jav 阅读全文

Java命令学习系列(三)——Jmap

2018-11-10 21:53 by GarfieldEr007, 276 阅读, 收藏, 编辑
摘要: Jmap jmap是JDK自带的工具软件,主要用于打印指定Java进程(或核心文件、远程调试服务器)的共享对象内存映射或堆内存细节。可以使用jmap生成Heap Dump。在Java命令学习系列(零)——常见命令及Java Dump介绍和Java命令学习系列(二)——Jstack中分别有关于Java 阅读全文

Java命令学习系列(四)——jstat

2018-11-10 21:53 by GarfieldEr007, 245 阅读, 收藏, 编辑
摘要: jstat(JVM Statistics Monitoring Tool)是用于监控虚拟机各种运行状态信息的命令行工具。他可以显示本地或远程虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据,在没有GUI图形的服务器上,它是运行期定位虚拟机性能问题的首选工具。 jstat位于java的bin 阅读全文

Java命令学习系列(二)——Jstack

2018-11-10 21:52 by GarfieldEr007, 292 阅读, 收藏, 编辑
摘要: jstack是java虚拟机自带的一种堆栈跟踪工具。 功能 jstack用于生成java虚拟机当前时刻的线程快照。线程快照是当前java虚拟机内每一条线程正在执行的方法堆栈的集合,生成线程快照的主要目的是定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待等。 线程出现停 阅读全文

Java命令学习系列(一)——Jps

2018-11-10 21:51 by GarfieldEr007, 339 阅读, 收藏, 编辑
摘要: jps位于jdk的bin目录下,其作用是显示当前系统的java进程情况,及其id号。 jps相当于Solaris进程工具ps。不象”pgrep java”或”ps -ef grep java”,jps并不使用应用程序名来查找JVM实例。因此,它查找所有的Java应用程序,包括即使没有使用java执行 阅读全文

Java命令学习系列(零)——常见命令及Java Dump介绍

2018-11-10 21:50 by GarfieldEr007, 1148 阅读, 收藏, 编辑
摘要: 一、常用命令: 在JDK的bin目彔下,包含了java命令及其他实用工具。 jps:查看本机的Java中进程信息。 jstack:打印线程的栈信息,制作线程Dump。 jmap:打印内存映射,制作堆Dump。 jstat:性能监控工具。 jhat:内存分析工具。 jconsole:简易的可视化控制台 阅读全文