导航:首页 > 源码编译 > 编译和加载的区别

编译和加载的区别

发布时间:2022-11-30 05:27:10

‘壹’ 求教java编译与运行的区别。

编译只是编译成了字节码,就是可执行的.class文件
运行时识别,主要是java的RTTI(运行时类型识别)机制和反射机制,而两者之间的区别在于:
”对RTTI来说,编译器在编译期打开和检查.class文件。(换句话说,我们可以用“普通”的方式调用一个对象的所有方法。),而对于反射机制来说,.class文件在编译期是不可获取的,所以是在运行期打开和检查.class文件。“
但是同样的,反射也需要加载这个类的Class对象,所以那个类的class对象对于jvm必须是可取的的,比如在本地机器上,或者通过网络取得,比如取得一串字节串。
具体的内容可以参考《Thinking
in
java》的”类型识别“那一章,讲的比较详细的

‘贰’ C++中什么是编译时,什么是运行时,二者有何区别

编译阶段主要进行语法的检查,无误。将程序代码转换成目标代码(二进制表示,打开看不懂),没有和操作系统进行连接,不能运行。完成连接后,程序能够进入系统运行。
运行时,一定是编译过的,没有语法错误。编译时,没有生成目标文件,可能有语法错误。

‘叁’ 编译和运行有何区别>>>>>>>>>>>>>

编译也就是计算机将你编写的程序,编译(也就是翻译)成计算机可以识别的语言,而运行,就是说要执行你所编写的这个程序,实现一定的功能,通常我们电脑上的软件打开都可以叫做运行

‘肆’ 请问java程序在编译和运行时有什么区别,系统分别都会做什么

Java程序的编译
使用命令: javac *.java
编译时,会将写的.java文件(高级语言),生成相应的字节码文件.class文件(二进制代码)
Java程序的执行
使用命令:java *
流程: 加载到 -- 连接 ---- 初始化 ...
运行时,首先会由将相应的.class文件,加载到内存中,并验证.class文件的有效性,将相应类的Class加载到内存中,并对类中的静态变量进行初始化操作,然后就由 主 类开始执行
具体的可以看一下 JVM 类加载过程,以及jVM的内存分配机制

‘伍’ android的动态加载和静态加载的区别

两者区别: 一,静态库的使用需要: 1 包含一个对应的头文件告知编译器lib文件里面的具体内容 2 设置lib文件允许编译器去查找已经编译好的二进制代码 二,动态库的使用: 程序运行时需要加载动态库,对动态库有依赖性,需要手动加入动态库 三,依赖性: 静态链接表示静态性,在编译链接之后, lib库中需要的资源已经在可执行程序中了, 也就是静态存在,没有依赖性了 动态,就是实时性,在运行的时候载入需要的资源,那么必须在运行的时候提供 需要的 动态库,有依赖性, 运行时候没有找到库就不能运行了 四,区别: 简单讲,静态库就是直接将需要的代码连接进可执行程序;动态库就是在需要调用其中的函数时,根据函数映射表找到该函数然后调入堆栈执行。 做成静态库可执行文件本身比较大,但不必附带动态库 做成动态库可执行文件本身比较小,但需要附带动态库 五: 首先纠正所谓“静态连接就是把需要的库函数放进你的exe之中”的说法。在真实世界中,有三个概念:Use static libary, static linked DLL, dynamic linked DLL. 多数人混淆了static libary 和 static linked DLL的概念,当然他们有似是而非的“相似之处”,比如都用到.lib,下面具体说明。 使用静态库(Use static libary)是把.lib和其他.obj一起build在目标文件中,目标文件可以是.exe,也可以是.dll或.oxc等。一般情况下,可以根本就没有“对应的”.dll 文件,如C Run Time(CRT)库。一个例子就是,写一个main(){},build出来并不是只有几个字节,当然有人会说那还有exe文件头呢?是,即使加上文件头的尺寸,build出的执行文件仍然“莫名的大”。实际上那多出来的部分就是CRT静态库。姑且可以把静态库.lib理解成外部程序的obj文件比较合理,它包含了函数的实现。

‘陆’ 编译运行编译运行,有什么区别

编译:
包括编译和链接两个过程。
编译部分,是把源文件(代码)转换成机器可以识别的二进制语言,这个过程是针对每一个源文件的。
链接,是把编译生成的二进制文件,组合成为一个系统可以执行的可执行文件。
这两部分整体也叫编译。也就是说,广义的编译,就是把代码,转换成可执行文件。
运行:
把编译出来的可执行文件,在系统中运行的过程,称为程序的运行。
打个比方,编译就是做饭的过程,而运行,就是吃饭。二者是完全不同的概念,是计算机软件开发的两个步骤。

‘柒’ Java中类加载出现在哪个阶段,编译期和运行期 类加载和类装载是一样的吗

使用的类,编译/运行时都会被加载。

加载/装载没有区别,翻译的词汇选择因人而异了

运行 javac /java 时 加上 -verbose 选项就可以看到了。

‘捌’ C语言中编译 生成 调试 测试 运行各是什么意思有什么区别

C语言中编译 生成 调试 测试 运行的区别如下:

区别一:

从编译方面来看:

编译依赖于编译器,英文是compile, vc中这一过程是将源代码转换成目标文件,如:obj文件,rc文件等。

区别二:

从生成方面来看:

生成指的是连接的过程,英文是build,依赖于链接器。vc中在这一阶段将所有的目标文件和所有需要用到的组件组合成一个整体,例如需要生成的是windows系统下的PE可执行文件,链接器会依照特定格式将目标文件组合,最后生成PE格式的,exe或dll文件。

区别三:

从调试方面来看:

调试是所有或部分代码编写完成后,让程序在调试器中运行,用这种手段对程序进行分析,找出并修正潜在问题。

区别四:

从运行方面来看:

运行就是让程序在系统中运行。

(8)编译和加载的区别扩展阅读:

C语言的介绍:

C语言是目前流行的通用程序设计语言,是计算机专业人员和计算机爱好者开发软件的首选开发工具。C语言源程序必须经过某种编译工具翻译成为目标机器语言程序才能够在计算机上执行。

然而随着程序编写规模的扩大,顺利编写出正确的程序绝非一件容易的事情,早期的许多编译工具仅仅提供翻译功能,已满足不了应用的要求,编程人员需要-种功能全面并高度集成的编译环境。

程序是一段具有一定功能的代码,编写程序的目的是解决问题。当程序人员写完程序后,其实并不起作用,只有当编写的程序经过一系列的处理后,能够解决问题时。

序才成为真正的程序,这一系列的处理过程,-般就是编辑、编译、连接、调试与运行等。目前最成熟的C语言集成环境主要有Turbo C2.0和Turbo C 3.0( 简称TC30)或Borland C++3.1( 简称BC31)以及Visual C++ 6.0。

‘玖’ 编译和全部编译的区别是什么

全部编译和编译是完全不同的概念。
1、全部编译是指程序代码、界面等的输入、构建,在这期间,开发工具会对输入的代码进行一般的语法检查等,在可视化以前的开发环境下,主要是指代码的输入、编辑。
2、编译是指开发工具的编译程序对编辑过的代码进行转换,以便生成可以执行的代码文件,在可视化以前的开发环境下,编译都是在编辑工作完成以后进行的。

‘拾’ 配置Linux内核的时候,驱动的静态编译和动态编译有什么区别

驱动的动态编译会生成.ko文件,系统启动后需要加载该驱动后才能使用相应设备。
而静态编译则直接编译进内核,系统启动的时候会自动加载该驱动。
静态编译太多驱动至内核,会导致内核体积过大,启动时间较长。而动态编译则比较自由灵活,需要用的时候即加载,不需要的时候即卸载。我以前在EasyARM-iMX280的学习手册里看到写得很清楚,你可以去看看的。

阅读全文

与编译和加载的区别相关的资料

热点内容
为什么有压缩分卷才能继续解压 浏览:316
AnalDelinquent 浏览:889
同人绿帽改编 浏览:624
生病的男人也要去找电影 浏览:565
邵氏全部电影 浏览:281
背着妈妈在楼道和男朋友韩剧 浏览:292
用php开发购物网站 浏览:966
欧美四级怀旧老片 浏览:979
比较黄的台湾电影 浏览:751
图片批量在线压缩 浏览:706
比较黄的穿越小说 浏览:250
电影人狗叫 浏览:507
取消压缩管理的公司 浏览:117
打真军的电影豆瓣 浏览:168
特斯拉app超级充电桩如何使用 浏览:423
男人怀孕电影袋鼠男人 浏览:507
如何删去应用加密 浏览:469
服从命令听指挥陌千依小说 浏览:762
《赤足惊魂》电影介绍 浏览:359
ic卡内数据如何传到服务器 浏览:22