Java虚拟机
文章平均质量分 54
换了马甲的小强
爆发自己的小宇宙吧!
展开
-
【深入理解Java虚拟机】笔记6:自定义ClassLoader两种方式例子
一、重写findClass实现:package com.example.jvm;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileInputStream;import java.nio.ByteBuffer;import java.nio.channels.Channels;imp...原创 2019-03-10 22:35:29 · 191 阅读 · 0 评论 -
Java中try、catch、finally语句块的执行顺序(从字节码角度分析)
上篇文章从执行结果角度来看Java中try、catch、finally在各个场景下执行顺序,现在从字节码角度来再来看一遍:1. try{return;}catch{}finally{} return;1.1 源代码public static int returnSttat(int i) { System.out.println("return block" + i); ...原创 2018-05-07 15:41:12 · 957 阅读 · 0 评论 -
IDEA Maven项目配置Javap
最近在学习Java的过程中尽量使用IDEA(放弃Eclipse),虽然现在使用IDEA还有些别扭,没有Eclipse那么顺畅,那也只能坚持坚持了,闲话不多说,那就进入我们的正题吧。 步骤1:使用CTRL+ALT+S打开配置界面 步骤2:点击Add进入创建Tool的主界面 这里面需要输入的有四个点: Name:输入别名(这里我输入Javap) Program:输入ja...原创 2018-05-19 15:05:41 · 601 阅读 · 0 评论 -
Java虚拟机指令在线参考
分享两个学习JVM指令集的地址,推荐两个链接打开对照学习! 1. Java Virtual Machine Online Instruction Reference 2. JVM指令集原创 2018-05-19 14:32:03 · 363 阅读 · 0 评论 -
Java性能调优工具——Jps
一、命令说明jps(Java Virtual Machine Process Status Tool)是JDK1.5提供的一个显示当前Java进程的工具(类似Linux操作系统上的ps命令),这个命令主要用于显示当前有哪些Java进程,可以说后续jstat,jstack等命令的基础。二、参数说明C:\Users\Administrator>jps -helpusage: jps...原创 2018-09-12 17:31:11 · 947 阅读 · 0 评论 -
Java性能调优工具——Jstat
一、命令说明jstat(Java Virtual Machine Statistics Monitoring Tool)是从JDK1.5自带的一个轻量级小工具。它位于java/bin目录下,主要利用JVM内建的指令对Java虚拟机的资源和性能进行实时的监控。二、参数说明C:\Users\Administrator>jstat -helpUsage: jstat -help|...原创 2018-09-12 23:46:50 · 5664 阅读 · 1 评论 -
Java性能调优工具——Jinfo
一、命令说明 jinfo(Java Virtual Machine Configuration Info for Java)是从JDK1.5自带的工具,用于查看Java应用程序的参数(JVM参数 + 系统参数),甚至支持在运行时调整部分参数,可以调整的参数如下表。C:\Users\Administrator>java -XX:+PrintFlagsFinal -version | ...原创 2018-09-13 14:07:09 · 1027 阅读 · 0 评论 -
Java性能调优工具——Jmap
一、命令说明jmap(Java Memory Map)用于用于生成堆转储快照,有时候也用于查看内存内存使用情况等。二、参数说明C:\Users\Administrator>jmapUsage: jmap [option] <pid> (to connect to running process) jmap [option] &lt...原创 2018-09-13 18:09:46 · 444 阅读 · 0 评论 -
Java性能调优工具——Jstack
一、命令说明Jstack是Jdk自带的线程跟踪工具,用于打印指定Java进程的线程堆栈信息。二、参数说明jstack -l [pid]注意:windows环境只支持这么一个参数三、使用示例jstack -l 5524 > c:\users\Administrator\Desktop\jstack.txt2018-09-14 12:59:46Full th...原创 2018-09-14 13:29:55 · 24388 阅读 · 2 评论 -
【深入理解Java虚拟机】笔记1:借助CGLIB使元空间内存溢出
一、示例代码public class JavaMethodAreaOOM { static class OOMObject{ } public static void main(String[] args) { while (true) { Enhancer enhancer = new Enhancer(); enhancer.setSuperclass(OOMOb...原创 2019-02-15 21:12:39 · 1305 阅读 · 0 评论 -
【深入理解Java虚拟机】笔记2:GC是采用两次标记决定对象的生存与死亡
一、说明如果使用【可达性分析算法】中不可达的对象,也并非“非死不可”,这时候他们只是暂时处于“缓刑”阶段,真正判断一个对象死亡需要经历“两次标记过程”,步骤如下:1. 使用可达性分析算法判断A对象不可达;2. 如果A对象覆盖finalize()方法或未者已经执行过finalize则进入3,否则进入5;3. 将A对象放到F-Queue队列中,有虚拟机创建的Finalizer线程去执行;4....原创 2019-02-15 21:49:05 · 788 阅读 · 0 评论 -
【深入理解Java虚拟机】笔记3:JConsole死锁代码示例
一、死锁模拟代码public class MonitoringTest { static class SysnAdd implements Runnable { int a; int b; public SysnAdd(int a, int b) { this.a = a; this.b = b; } @Override public voi...原创 2019-02-17 20:58:44 · 143 阅读 · 0 评论 -
【深入理解Java虚拟机】笔记5:Java类加载中被动引用例子
一、通过子类引用父类的静态字段,不会导致子类初始化package com.example.jvm;public class SuperClass { static { System.out.println("superClass init!"); } public static int value = 123;}package com.example.jvm;pub...原创 2019-03-10 14:28:02 · 178 阅读 · 0 评论 -
java.lang.StackOverflowError——因为设置Xss不恰当而导致的虚拟机栈溢出
一、问题现象org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'excelResultManager' defined in URL [file:/home/v5/ApacheJetspeed/webapps/seeyon/WEB-INF/cfgHome/spring/sp...原创 2019-04-03 17:09:43 · 3222 阅读 · 0 评论