java 虚拟机
bigkai12138
这个作者很懒,什么都没留下…
展开
-
java运行时数据区分析
前言此文是我阅读了《深入理解Java虚拟机》和一些其它博客后对于Java运行时数据区的结构组成的一个总结,它阐述了Java 虚拟机的运行时数据区各组成,以及如何通过垃圾回收机制保证内存的可用。由于本人能力的问题,在书写时难免会有错误或纰漏,希望发现的读者可以指出来,以让我进步。运行时数据区JVM 的运行时数据区以俯瞰的角度来看其实并不复杂,主要分为方法区、本地方法栈,虚拟机方法栈、堆、程序计数器,它们的组成如下所示:对于方法区和堆,它们是属于线程共享的,为了提高性能,在堆上会划分出一个小区域在存原创 2020-09-17 12:54:46 · 258 阅读 · 0 评论 -
Class文件解析实战
java跨平台的实现是基于JVM虚拟机的,编写的java源码,编译后会生成一种.class文件,称为字节码文件。java虚拟机就是负责将字节码文件翻译成特定平台下的机器码然后运行。为了保证Class文件在多个平台的通用性,java官方制定了严格的Class文件格式。了解Class文件结构,有利于我们反编译 .class 文件或在程序编译期间修改字节码做代码注入。Class文件结构概览首先先创建一个java类:public class HelloWorld { private static int原创 2020-09-11 15:02:37 · 297 阅读 · 0 评论 -
javaagent入门指南
第一次见到javaagent时,是偶然了解到Spring的AOP中使用了一个Instrumentation技术,对自己来说是一个新的知识点,所以很好奇,因此查阅相关文档和资料进行学习,在此记录,如有不妥之处,请指正。运行环境:操作系统:Windows10jdk版本:openjdk version 11.0.7概述javaagent顾名思义就是一个java代理,我们知道任何一项java应用的启动都需要有一个入口函数,加载从入口函数开始一直扩散到整个应用。类在jvm中的加载顺序是:加载——&g原创 2020-06-23 08:24:55 · 1679 阅读 · 0 评论 -
jdk常用的七种性能监控命令行工具
引言在jdk的开发包里,除了我们常用的java.exe和javac.exe程序外,还有一系列辅助工具,这些工具可以帮助我们更好地分析指定java程序的运行状态,比如jstack.exe、jps.exe、jstate.exe等。下面我们对一些重要的工具进行讲解。注意:在jdk8及以前,工具类的可执行文件的实现都在lib/tools.jar上,但是在jdk9及以后,以前存储在lib中的lib/rt.jar、lib/tools.jar、lib.dt.jar,以及其他各种内部jar文件现在以更高效的格式存储在原创 2020-06-21 08:40:26 · 376 阅读 · 0 评论