`

java 虚拟机钩子

 
阅读更多
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

    JAVA虚拟机关闭钩子(Shutdown Hook).docx

    java鼠标钩子实现

    这通常通过反射和JNI(Java Native Interface)来完成,因为它们允许我们与Java虚拟机之外的本地代码交互。一个常见的方法是创建一个本地方法,该方法在底层操作系统上设置鼠标钩子,并通过JNI调用这个方法。 以下...

    java钩子实现源码

    Java钩子(Hook)机制是Java虚拟机(JVM)提供的一种高级机制,允许程序员在特定的事件发生时插入自定义的行为。这个机制基于Java的动态代理和反射API,使得我们可以在程序运行时对某些行为进行拦截和处理。在Java中...

    深入理解java虚拟机第二版源码-MethodHook:钩子java方法

    深入理解java虚拟机 第二版 源码 原文链接: 引言 目前国内大厂均开源了自己的 Android 热修复框架,阿里的《深入探索 Android 热修复技术原理》全面介绍了热修复技术的现状,原理与展望。一方面是阿里系为代表的...

    JAVA_API1.6文档(中文)

    java.lang.management 提供管理接口,用于监视和管理 Java 虚拟机以及 Java 虚拟机在其上运行的操作系统。 java.lang.ref 提供了引用对象类,支持在某种程度上与垃圾回收器之间的交互。 java.lang.reflect 提供类...

    java高级之垃圾回收机制

    其中,垃圾回收机制(Garbage Collection, GC)是Java虚拟机(JVM)的一项重要特性,它能够自动检测并回收不再使用的对象占用的内存空间,从而有效避免了内存泄漏问题。本文将详细介绍Java中的垃圾回收机制及其工作原理...

    Java 1.6 API 中文 New

    java.lang.management 提供管理接口,用于监视和管理 Java 虚拟机以及 Java 虚拟机在其上运行的操作系统。 java.lang.ref 提供了引用对象类,支持在某种程度上与垃圾回收器之间的交互。 java.lang.reflect 提供类和...

    Java对象的生命周期[参照].pdf

    在这个过程中,理解JVM(Java虚拟机)的角色至关重要,因为它是对象生命周期的主要管理者。 首先,让我们了解一下JVM的结构。JVM是Java虚拟机的缩写,它的主要任务是执行符合Java字节码规范的.class文件。JRE(Java...

    java api最新7.0

    java.lang.management 提供管理接口,用于监视和管理 Java 虚拟机以及 Java 虚拟机在其上运行的操作系统。 java.lang.ref 提供了引用对象类,支持在某种程度上与垃圾回收器之间的交互。 java.lang.reflect 提供类和...

    java进阶学习日记

    Java虚拟机(JVM)的工作原理,包括类加载、垃圾回收和性能调优也是进阶学习的重点。 Spring框架是Java企业级应用的基石,特别是Spring Boot简化了应用程序的启动和配置。Spring Cloud则为构建分布式系统提供了工具...

    java-编写跨平台Java程序注意事项

    - 当需要终止Java虚拟机(JVM)时,应使用`java.lang.System.exit(int status)`方法。这不仅能正确关闭JVM,还能确保资源被释放。 - 注意不要在多线程环境中随意调用`System.exit()`,因为这可能会导致某些线程没有...

    JAVA上百实例源码以及开源项目源代码

    日历表格面板 [ConfigLine.java] 控制条类 [RoundBox.java] 限定选择控件 [MonthMaker.java] 月份表算法类 [Pallet.java] 调色板,统一配色类 Java扫雷源码 Java生成自定义控件源代码 2个目标文件 Java实现HTTP连接...

    JavaAPI中文chm文档 part2

    java.lang.management 提供管理接口,用于监视和管理 Java 虚拟机以及 Java 虚拟机在其上运行的操作系统。 java.lang.ref 提供了引用对象类,支持在某种程度上与垃圾回收器之间的交互。 java.lang.reflect 提供类...

    JavaAPI1.6中文chm文档 part1

    java.lang.management 提供管理接口,用于监视和管理 Java 虚拟机以及 Java 虚拟机在其上运行的操作系统。 java.lang.ref 提供了引用对象类,支持在某种程度上与垃圾回收器之间的交互。 java.lang.reflect 提供类...

    Runtime 源码分析

    - `freeMemory()`: 返回当前Java虚拟机中的可用内存。 - `totalMemory()`: 返回Java虚拟机总内存。 - `maxMemory()`: 返回Java虚拟机可以使用的最大内存。 3. **系统退出**: - `exit(int status)`: 强制终止...

    Java Runtime类详解_动力节点Java学院整理

    1. `totalMemory()`: 这个方法返回Java虚拟机当前分配的总的内存大小。这包括堆内存以及JVM用于自身操作的内存。 2. `freeMemory()`: 它返回当前可用的内存量,即当前未被对象占用的堆内存大小。 3. `gc()`: 这是...

    test_jni_hooks.rar_crazy

    `crazy_context_set_java_vm()`函数是Crazy Library中的一个重要接口,它允许设置Java虚拟机(Java VM)的引用。在JNI中,Java VM是Java世界和本地世界之间的桥梁,通过这个函数,本地代码能够访问到Java VM,从而...

    通过JDK源码分析关闭钩子详解

    Java虚拟机(JVM)在接收到退出指令时,会尝试执行所有注册的关闭钩子,这些钩子通常是实现`Runnable`接口的线程对象。 **关闭钩子的生成步骤**: 1. 创建一个继承自`Thread`的子类。 2. 在子类中实现`run`方法,...

    [Java参考文档]

    java.lang.management 提供管理接口,用于监视和管理 Java 虚拟机以及 Java 虚拟机在其上运行的操作系统。 java.lang.ref 提供了引用对象类,支持在某种程度上与垃圾回收器之间的交互。 java.lang.reflect 提供类...

Global site tag (gtag.js) - Google Analytics