`

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()`,因为这可能会导致某些线程没有...

    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