前言 要实现classLoader动态解密class文件,就必须先了解Java的类加载机制、了解双亲委托机制。然后自定义一个classLoader,继承于classLoader。 文章中引用到上一篇文章中的解密方法(edCipher.decryptClass(name)),详情请移步至:Java加解 ...
分类:
编程语言 时间:
2018-08-10 19:48:27
阅读次数:
301
前言 在日常开发中,可能会遇到要对系统中比较敏感的代码进行保护,那么下面就总结一下保护源码的方法中最简单的方式,即文件加密 首先,加密和解密的大致思想是:加密无非就是对class文件进行异或一下,解密呢,那就是再对class文件异或回来即可。 加密后的文件如果想要用到的话,就需要classLoade ...
分类:
编程语言 时间:
2018-08-10 17:56:59
阅读次数:
187
自定义类加载器一般步骤大概为 1. 继承 ClassLoader 类 2. 复写 findClass方法 在findClass方法中传入一个String类型参数 一般为类所在的路径可以为网络url,或者本地路径。加上类的名称。 先检查类所在的包是否存在getPackage方法 如果不存在通过父类的d ...
分类:
其他好文 时间:
2018-08-10 11:01:22
阅读次数:
173
一.JVM学习 1.1JVM运行机制的最重要的三点:加载(类加载器,classloader) 、内存管理(包含GC)、执行。 如果再加上JDK所作的把java文件编译为二进制class文件的步骤,就组成了Java代码的执行机制三部曲: 编译–>加载–>执行 2.1 Java编译机制 Java编译机制 ...
分类:
其他好文 时间:
2018-08-09 22:03:29
阅读次数:
146
对于JavaWeb而言,获取类路径下的资源,就是获取classes目录下的资源。 获取资源的方式有两种,利用Class或ClassLoader。 Class类的getResourceAsStream(String path): 路径以“/”开头,相对classes路径; 路径不以“/”开头,相对当前 ...
分类:
其他好文 时间:
2018-08-07 15:06:55
阅读次数:
155
(一)Eclipse IDE的做法 它会解析所有的Java文件、Class文件。技巧:在Eclipse中,选中Interface,按下F4,就可以查看到所有的实现类及子接口。 例如: (二)自己怎么做? (1)如果你自己也不知道这个接口有哪些实现类 采用java默认的ClassLoader是没有办法 ...
分类:
系统相关 时间:
2018-08-07 12:49:34
阅读次数:
369
静态库、动态连接库 程序编制一般需经编辑、编译、连接、加载和运行几个步骤。在我们的应用中,有一些公共代码是需要反复使用,就把这些代码编译为“库”文件;在连接步骤中,连接器将从库文件取得所需的代码,复制到生成的可执行文件中。这种库称为静态库,其特点是可执行文件中包含了库代码的一份完整拷贝;缺点就是被多 ...
分类:
其他好文 时间:
2018-08-07 00:24:03
阅读次数:
146
原文地址: 全面理解Java内存模型(JMM)及volatile关键字 关联文章: 深入理解Java类型信息(Class对象)与反射机制 深入理解Java枚举类型(enum) 深入理解Java注解类型(@Annotation) 深入理解Java类加载器(ClassLoader) 深入理解Java并发 ...
分类:
编程语言 时间:
2018-08-05 18:58:52
阅读次数:
209
java的开发主要以http为基础。 反射:主要用于工具和框架的开发。 反射是对于类的再抽象;通过字符串来抽象类。 JAVA类的运行:classLoader:加载到虚拟机(vm) Vm中只能存储对象(动态运行时的概念),.class文件加载到VM上就成为一个对象,同时初始静态成员及静态代码(只执行一 ...
分类:
编程语言 时间:
2018-08-05 12:59:53
阅读次数:
128
类加载器就是负责检索并加载其他Java类或者资源(如文件)的对象,它一般继承于java.lang.ClassLoader这个抽象类(除了BootstrapClassLoader)。 实际上,程序中所有的类都是通过类加载器进行加载的,并且它们都持有各自类加载器对象的引用,可以通过java.lang.C ...
分类:
其他好文 时间:
2018-08-04 12:05:00
阅读次数:
117