静态编译和动态编译有何不同

静态编译和动态编译有何不同,第1张

静态编译清型与动态编译的区别:

1、动态编译的可执行文件需要附带一个的动态链接库,在执行时,需要调用其对应动态链接库中的命令。

所以其优猜余点一方面是缩小了执行文件本身的体积,另一方面是加快了编译速度,节省了系统资源。

缺点一是哪怕是很简单的程序,只用到了链接库中的一两条命令,也需要附带答兆猜一个相对庞大的链接库;二是如果其他计算机上没有安装对应的运行库,则用动态编译的可执行文件就不能运行。

2、静态编译就是编译器在编译可执行文件的时候,将可执行文件需要调用的对应动态链接库(.so)中的部分提取出来,链接到可执行文件中去,使可执行文件在运行的时候不依赖于动态链接库。所以其优缺点与动态编译的可执行文件正好互补。

Java代码正常是静态编译成字节码,由对应平台拆启猜的JVM加载执行,静态编译无法动态扩展功能。动态编译有两种方式实现:

从源码编译,需要调用Java Compiler,程序需要运行于旅型JDK(旁或而不是JRE)之上。

动态字节码生成技术(如CGLib、ASM)创建类。

动态编译可以简化代码,增强类功能,但也带来了代码复杂度,线上不易维护。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12526699.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存