java Java代码的静态编译和动态编译中的问题是什么?
浏览量:1382
时间:2021-04-13 10:08:06
作者:admin
Java代码的静态编译和动态编译中的问题是什么?
Java代码通常被静态编译成字节码,由相应平台的JVM加载和执行。静态编译无法动态扩展函数。动态编译可以通过两种方式实现:从源代码编译、调用java编译器和在JDK(而不是JRE)上运行。动态字节码生成技术(如cglib、ASM)创建类。动态编译可以简化代码,增强类功能,但也带来了代码的复杂性,不易在线维护。
静态库和动态库的区别有哪些?
对于服务器应用程序,为了尽量减少环境的影响,避免开发环境和联机环境的差异,以及其他应用程序对同一台机器的影响,即使用动态库,我们还倾向于打包所有使用的库。(最新的想法是打包整个文件系统,比如docker)。所以静态链接的优点是:1。节省空间:链接器将只复制您使用的对象。
2. 简单的包装。实际上,动态库的原始名称是共享对象。如果不准备共享,使用动态库是不好的。除非:
3。应用程序是多可执行和多进程结构,因此动态库既节省内存又节省磁盘空间。
4. 应用程序应该动态加载进程内插件:进程空间中的多个静态库会让您烦恼。
什么叫静态库和动态库?
静态库被加载到源代码中进行编译,例如各种头文件。
动态库被映射到程序的内存空间,以便在程序运行时进行动态加载,例如DLL文件。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。