222_尚学堂_高淇_java300集最全视频教程_JVM核心机制_深入类加载器_自定加密解密类加载器

时间:2021-07-01 15:29:19

知识点总结:

  1. 取反
    使用简单的取反操作作为加密的方式,与0xFF异或来实现
    异或:对应位不相同就返回1,相同返回0
    每一位与1异或,原本是1,因为相同返回0,1变成0;原本是0,因为不相同返回1,0变成1;从而实现取反的功能

  2. 文件IO流
    FileInputStream和FileOutputStream,从输入流得到字节,取反,输出给输出流,从而得到加密之后的类文件。

  3. 解密类加载器
    读取class文件时有一个解密的过程,对字节取反。自定义类加载器需要继承ClassLoader父类,重写findClass()方法。

  4. 双亲委托机制
    子类会先调用父类加载器进行加载,如果所有父类都无法加载,才调用子类(通常是自定义类加载器)来加载。是否使用双亲委托机制,是可以在自定义加载器是自己控制的。
    双亲委托机制中try-catch的使用,由于优先调用父类加载器,如果父类加载器无法加载,那么程序无法继续执行,报错停止。通过try-cath代码块包括父类加载器加载的那段代码,程序会遇到异常之后,执行catch中的代码,然后继续执行之后的代码。如果异常可以忽略,那么catch代码块中直接什么都不写即可,程序会继续正常执行。这是try-catch一个之前自己没有意识到的功能。