`

在JVM关闭前想做的操作Rumtime

    博客分类:
  • Java
 
阅读更多

在虚拟机被关闭前想做一些收尾工作,可以使用

Runtime.getRuntime().addShutdownHook(new Thread(){
			@Override
			public void run() {
				log.error("begin to shutdown....");
				try {
					sleep(1*1000*60);
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
				log.error("shutdown completely...");
			}
		});
 注册新的虚拟机来关闭钩子。

Java 虚拟机会为了响应以下两类事件而关闭

     

  • 程序正常退出,这发生在最后的非守护线程退出时,或者在调用 exit(等同于 System.exit)方法时。或者,

     

  • 为响应用户中断而终止 虚拟机,如键入 ^C;或发生系统事件,比如用户注销或系统关闭。
分享到:
评论

相关推荐

    JVM中文指令手册.pdf

    JVM指令手册详细记录了JVM的所有操作码(opcode),也就是字节码指令。这些指令是给JVM解释器或者即时编译器(JIT)使用的低级指令集。在JVM上运行的Java程序会被编译成一系列指令,然后由JVM执行。 从给定文件的...

    对象在jvm中的存储情况

    java对象在jvm中的存储情况 jvm

    JVM指令操作解析及指南手册.pdf

    这份指南的目的是让读者能够理解JVM字节码指令在数值操作、常量加载和变量操作方面的具体行为。掌握了这些知识后,编程人员可以更高效地阅读和理解编译后的Java字节码,对于调试、性能优化和开发工具开发等领域都有...

    推荐一些JVM原理,JVM调优,JVM内存模型,JAVA并发 电子书1

    JVM是运行Java字节码的虚拟计算机,为Java提供了一个跨平台的环境,确保Java程序可以在不同的操作系统上运行而无需修改代码。本文将详细探讨这些概念: 1. JVM原理:JVM的工作原理涉及类加载器(ClassLoader)、类...

    jdk,jvm源码

    在研究JVM源码时,可以参考OpenJDK项目,它是JDK的开源实现,提供了完整的JVM源代码。通过阅读源码,我们可以学习到更多关于类加载、内存管理、线程调度等底层细节,并且能够针对具体问题进行定制化开发。 个人网站...

    jvm 详细介绍,了解jvm各个组成部分和功能

    不同于 C/C++ 这类需要针对不同平台进行编译的语言,Java 采用了一种更为灵活的方式:将 Java 源代码编译为字节码(Bytecode),这种字节码可以在任何安装了 JVM(Java 虚拟机)的平台上运行。这种方式确保了 Java ...

    JVM图解-JVM指令-JVM原型图.rar

    在这个压缩包中,"JVM图解.png"可能是对JVM内部结构的可视化表示,"JVM图解"可能是一个详细的文档,解释了JVM的工作原理,而"JVM指令手册 中文版"则提供了JVM可执行的所有指令的详细信息。下面,我们将深入探讨JVM的...

    jvm 启动过程 JVM 原理

    在JVM的工作过程中,运行时数据区(也称为Java堆内存)是另一个重要的概念。它分为以下区域: - **堆**:存储所有实例对象和数组。Java垃圾收集器负责管理堆内存,进行对象创建和销毁。 - **栈**:每个线程都有...

    jvm指令手册 +JVM必知必会,掌握虚拟机编译过程.rar

    JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,实际上最终还是把字节码解释成具体平台上的机器...

    jvm视频及笔记

    Java虚拟机(JVM)是Java程序运行的核心组件,它负责解释和执行字节码,为开发者...理论学习后,实践操作是巩固知识的关键,尝试在实际项目中应用这些知识,解决性能问题,优化JVM配置,将使你对JVM的理解更加深入。

    JVM指令手册_jvm指令手册_

    3. **算术运算指令**:包括加减乘除等基本数学运算,如`iadd`表示整数加法,`imul`表示整数乘法,这些指令在执行计算时会使用操作数栈。 4. **类型转换指令**:Java是一种强类型语言,不同数据类型的转换需要特定...

    SAP JVM 8.1 64 bits

    1. **64位架构**:SAP JVM 8.1是针对64位操作系统设计的,这意味着它可以利用更多的内存资源,处理更大规模的数据,并且在多处理器系统上提供更好的并行处理能力。64位架构对于大型企业级应用如SAP系统来说至关重要...

    JVM 输出 GC 日志导致 JVM 卡住

    然而,在这样做之后,作者的应用出现了奇怪的问题,表现为处于安全点的时间特别长。 作者通过分析 Safepoint 日志和 GC 日志,发现了三个不同的现象:第一,等待所有线程进入安全点的时间特别长;第二,处于 ...

    JVM

    Java虚拟机(JVM)是Java编程语言的核心组成部分,它为Java程序提供了运行环境,使得Java代码能够在不同的操作系统上“一次编写,到处运行”。JVM是Java平台的一部分,负责执行字节码,管理内存,垃圾收集,以及提供...

    慢慢琢磨jvm 经典

    其设计目标是实现“一次编译,处处运行”,通过将Java字节码转换为特定平台的机器语言,使Java程序能在不同硬件和操作系统上运行。这一过程涉及JVM的内部指令集,类似于不同CPU系列的汇编语言,但具有跨平台兼容性。...

    visualvm监控jvm及远程jvm监控方法

    它集成了一系列功能,如内存分析、线程检查、CPU消耗监控、类加载和垃圾收集等,使得开发者能够深入了解应用在JVM上的运行状况。在本文中,我们将详细探讨如何使用VisualVM来监控本地和远程的JVM实例。 1. **...

    jvm特性与java特性

    JVM在不同的操作系统上实现,使得Java字节码能够在不同的系统上运行而无需修改。这一特性是通过JVM解释执行或即时编译(JIT)字节码实现的。 2. 内存管理:JVM内部有一套完整的垃圾收集机制(Garbage Collection, ...

    jvm-mon基于控制台的JVM监视

    6. **系统资源监控**:除了JVM内部,`jvm-mon`还能提供操作系统级别的信息,如CPU、内存和磁盘使用情况,以全面了解系统健康状况。 ### 使用jvm-mon 要使用`jvm-mon`,首先需要从源代码仓库(如GitHub)克隆或下载...

    JVM-SANDBOX基于JVM的实时无侵入AOP框架容器

    JVM-SANDBOX是一个强大的工具,它允许开发者在Java虚拟机(JVM)上实现无侵入的面向切面编程(AOP)框架,提供实时监控和干预应用程序的能力。这个框架的核心在于其对Java类加载机制的深入理解和利用,使得可以在不...

Global site tag (gtag.js) - Google Analytics