当我们采用“java”命令,实际上就会启动一个JVM进程,JVM负责加载字节码文件,并通过字节码执行引擎在执行我们加载到内存中的字节码文件。
既然.class文件可以反编译为.java文件,那就意味着如果我们不对.class文件做任何处理,有此.class文件的人就有机会通过反编译而获得我们的“商业机密”源代码了。
如何对“.class“文件处理,保证不被人拿到以后反编译获取公司源代码?
1.编译时,采用一些小工具对字节码加密或者做混淆处理。
2.类加载时,对加密的类,采用自定义的类加载器来解密文件即可。
什么情况下会加载class到JVM中?
1.当JVM刚开始启动时,会把有main方法的类先加载到内存中来,然后从main方法入口开始执行。
2.你的代码需要用到这个类的时候