编译和运行

Posted Im X

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编译和运行相关的知识,希望对你有一定的参考价值。

编译和运行

编译时

编译时顾名思义就是正在编译的时候.那啥叫编译呢?就是编译器帮你把源代码翻译成机器能识别的代码.(当然只是一般意义上这么说,实际上可能只是翻译成某个中间状态的语言.比如Java只有JVM识别的字节码,C#中只有CLR能识别的MSIL.另外还有啥链接器.汇编器.为了了便于理解我们可以统称为编译器)

编译时就是简单的作一些翻译工作,比如检查老兄你有没有粗心写错啥关键字了啊.有啥词法分析,语法分析之类的过程

运行时

所谓运行时就是代码跑起来了.被装载到内存中去了.(你的代码保存在磁盘上没装入内存之前是个死家伙.只有跑到内存中才变成活的).而运行时类型检查就与前面讲的编译时类型检查(或者静态类型检查)不一样.不是简单的扫描代码.而是在内存中做些操作,做些判断.

编译就是把我们的高级编程语言转换成机器可以是别的语言。跟类加载并无关系,类是加载的.class文件

在编译期,所有的*.java文件被编译成.class文件。在运行期,class文件只有被加载到jvm内存中才能运行。这个装载工作是由类装载器完成的。实质就是把class文件从硬盘读取到内存中,并对数据进行校验,转化解析和初始化,最终形成可以被jvm直接使用的java类型。

 

以上是关于编译和运行的主要内容,如果未能解决你的问题,请参考以下文章

如何在VSCode内编译运行C++

反汇编出来的地址是运行地址还是编译地址?

编译和运行

如何在VSCode内编译运行C++

如何在UltraEdit中编译和运行Java程序

简述JAVA程序的编辑编译和运行过程