java虚拟机基础

时间:2022-12-26 18:01:13
这是来自阿里巴巴的 温少的作品,整个文档从以下几个方面介绍了JVM基础知识。
• HotSpot
• ClassFile
• ClassLoader
• 内存模型、锁、同步
• JVM内存管理和垃圾收集.
我在这里附上下载地址: JVM基础.pdf
    作者基础很好,也很用心。作者对JVM和 并发很有研究,还有另一个作品,就是广为人知的 fastjson,号称世界上最快的java的json工具,事实也是这样。其中fastjson用到了ASM包中的一部分代码。ASM包被用来动态地修改class文件的代码,在动态代理等经常用到。比如spring,jsonlib都用到了类似的技术。
     fastjson我在自己的代码中已经使用了,效果确实不错。至于有人反映有一些小BUG,目前还没遇到。
    前几天想要破解一个java商业软件,因为不熟悉JVM,只好用反编译工具反编译JAR文件,修改源代码,再重新编译的方式来完成了。这样做,最明显的缺点是,反编译工具反编译的代码可读性差(在编译时,一些编译器会自动对代码进行混淆,反编译后也是混淆后的代码,变量和方法名都不具可读性),反编译的代码不一定正确,包关系丢失等,并且重新编译还有复杂的依赖关系。最后只有写了个注册机。如果熟悉JVM就好办了,用ASM包或者直接修改class文件均可。因此强烈推荐感兴趣的童鞋深入了解下JVM。