关于代码的编译和解释
关于代码的编译和解释
今天学java的时候看见这个问题,特此记录一下
- 编译是把整个文件经过编译器生成机器码的机器指令进行运行。以C/C++为例,编译后会生成一个obj文件,这个文件后面又要翻译成对应操作系统的文件。编译型代码不适合跨平台,因为不同操作系统的编译器不一样,对应的指令集不一样,那么生成的二进制代码可能不一样。比如Windows操作系统用的是X86编译器,而手机系统用的是Arm平台编译器。
- 解释型,不是把源文件整体翻译,而是把源代码通过解释器一行一行的翻译,能够进行跨平台
关于java
java是一种混合型的,他先生成.class文件(二进制字节码),经过执行器翻译后,是放在虚拟机(JVM)上运行的,而不是直接运行在系统上的。
JDK和JRE
JDK:java开发工具包,包括JVM,核心类库,开发工具(javac(编译),java(运行),jdb(调试),jhat(内存分析工具))
JRE:java运行环境:JVM+核心类库,运行工具