微笑如一
首页 网络收藏 分解查字

相关: 相似查询
浏览:372
内容:


Hook翻译成中文就是勾子的意思,在java中它表示在事件到达终点前进行拦截或监控的一种行为。
「钩子」的意思,就是在事件传送到终点前截获并监控事件的传输,像个钩子钩上事件一样,并且能够在钩上事件时,处理一些自己特定的事件。

当jvm进程退出的时候,或者受到了系统的中断信号,hook线程就会启动,一个线程可以注入多个钩子,
一个实例:
import java.io.IOException;
import java.util.concurrent.TimeUnit;

public class HookTest {
    public static void main(String[] args) throws IOException {
        Runtime.getRuntime().addShutdownHook(new Thread(){
            @Override
            public void run() {
                try {
                    System.out.println("这个钩子启动");
                    TimeUnit.SECONDS.sleep(2);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                System.out.println("这个钩子退出");
            }
        });

    }
}


参考:
JAVA HOOK(钩子)线程介绍
https://zhuanlan.zhihu.com/p/62270446
Java基础:基于反射和动态代理的Hook
https://www.jianshu.com/p/40d7f9e10f32
Java: Hook技术
https://blog.csdn.net/qq_30207527/article/details/85169582
Java的Hook线程及捕获线程执行异常
https://www.cnblogs.com/junjie2019/p/10588493.html
浅析java的退出钩子(Hook)
https://blog.csdn.net/loveli178/article/details/90704869


联系: web@xiaoruyi.cn