package com.test.hook;
public class T {
/**
* java 虚拟机关闭钩子
java.lang.Runtim类提供了addShutdownHook(Thread hook)方法,用来添加虚拟机关闭的钩子。
用途
1应用程序正常退出,在退出时执行特定的业务逻辑
2虚拟机非正常退出,比如用户按下ctrl+c,操作系统关闭等。在退出时执行必要的挽救措施。
操作系统来不及通知虚拟机就Over的情况下,这个是没有用处的,比如直接断电
*/
public static void main(String[] args) {
System.out.println("start'''");
Runtime.getRuntime().addShutdownHook(new HookThread());
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("end......");
}
}
class HookThread extends Thread{
public void run(){
System.out.println("run .......");
}
}
输出
start'''
end......
hook run ......
分享到:
相关推荐
JAVA虚拟机关闭钩子(Shutdown Hook).docx
这通常通过反射和JNI(Java Native Interface)来完成,因为它们允许我们与Java虚拟机之外的本地代码交互。一个常见的方法是创建一个本地方法,该方法在底层操作系统上设置鼠标钩子,并通过JNI调用这个方法。 以下...
Java钩子(Hook)机制是Java虚拟机(JVM)提供的一种高级机制,允许程序员在特定的事件发生时插入自定义的行为。这个机制基于Java的动态代理和反射API,使得我们可以在程序运行时对某些行为进行拦截和处理。在Java中...
深入理解java虚拟机 第二版 源码 原文链接: 引言 目前国内大厂均开源了自己的 Android 热修复框架,阿里的《深入探索 Android 热修复技术原理》全面介绍了热修复技术的现状,原理与展望。一方面是阿里系为代表的...
java.lang.management 提供管理接口,用于监视和管理 Java 虚拟机以及 Java 虚拟机在其上运行的操作系统。 java.lang.ref 提供了引用对象类,支持在某种程度上与垃圾回收器之间的交互。 java.lang.reflect 提供类...
其中,垃圾回收机制(Garbage Collection, GC)是Java虚拟机(JVM)的一项重要特性,它能够自动检测并回收不再使用的对象占用的内存空间,从而有效避免了内存泄漏问题。本文将详细介绍Java中的垃圾回收机制及其工作原理...
java.lang.management 提供管理接口,用于监视和管理 Java 虚拟机以及 Java 虚拟机在其上运行的操作系统。 java.lang.ref 提供了引用对象类,支持在某种程度上与垃圾回收器之间的交互。 java.lang.reflect 提供类和...
在这个过程中,理解JVM(Java虚拟机)的角色至关重要,因为它是对象生命周期的主要管理者。 首先,让我们了解一下JVM的结构。JVM是Java虚拟机的缩写,它的主要任务是执行符合Java字节码规范的.class文件。JRE(Java...
java.lang.management 提供管理接口,用于监视和管理 Java 虚拟机以及 Java 虚拟机在其上运行的操作系统。 java.lang.ref 提供了引用对象类,支持在某种程度上与垃圾回收器之间的交互。 java.lang.reflect 提供类和...
Java虚拟机(JVM)的工作原理,包括类加载、垃圾回收和性能调优也是进阶学习的重点。 Spring框架是Java企业级应用的基石,特别是Spring Boot简化了应用程序的启动和配置。Spring Cloud则为构建分布式系统提供了工具...
- 当需要终止Java虚拟机(JVM)时,应使用`java.lang.System.exit(int status)`方法。这不仅能正确关闭JVM,还能确保资源被释放。 - 注意不要在多线程环境中随意调用`System.exit()`,因为这可能会导致某些线程没有...
日历表格面板 [ConfigLine.java] 控制条类 [RoundBox.java] 限定选择控件 [MonthMaker.java] 月份表算法类 [Pallet.java] 调色板,统一配色类 Java扫雷源码 Java生成自定义控件源代码 2个目标文件 Java实现HTTP连接...
java.lang.management 提供管理接口,用于监视和管理 Java 虚拟机以及 Java 虚拟机在其上运行的操作系统。 java.lang.ref 提供了引用对象类,支持在某种程度上与垃圾回收器之间的交互。 java.lang.reflect 提供类...
java.lang.management 提供管理接口,用于监视和管理 Java 虚拟机以及 Java 虚拟机在其上运行的操作系统。 java.lang.ref 提供了引用对象类,支持在某种程度上与垃圾回收器之间的交互。 java.lang.reflect 提供类...
- `freeMemory()`: 返回当前Java虚拟机中的可用内存。 - `totalMemory()`: 返回Java虚拟机总内存。 - `maxMemory()`: 返回Java虚拟机可以使用的最大内存。 3. **系统退出**: - `exit(int status)`: 强制终止...
1. `totalMemory()`: 这个方法返回Java虚拟机当前分配的总的内存大小。这包括堆内存以及JVM用于自身操作的内存。 2. `freeMemory()`: 它返回当前可用的内存量,即当前未被对象占用的堆内存大小。 3. `gc()`: 这是...
`crazy_context_set_java_vm()`函数是Crazy Library中的一个重要接口,它允许设置Java虚拟机(Java VM)的引用。在JNI中,Java VM是Java世界和本地世界之间的桥梁,通过这个函数,本地代码能够访问到Java VM,从而...
Java虚拟机(JVM)在接收到退出指令时,会尝试执行所有注册的关闭钩子,这些钩子通常是实现`Runnable`接口的线程对象。 **关闭钩子的生成步骤**: 1. 创建一个继承自`Thread`的子类。 2. 在子类中实现`run`方法,...
java.lang.management 提供管理接口,用于监视和管理 Java 虚拟机以及 Java 虚拟机在其上运行的操作系统。 java.lang.ref 提供了引用对象类,支持在某种程度上与垃圾回收器之间的交互。 java.lang.reflect 提供类...