啥叫Native Code

本文介绍了Native Code,即特定于处理器的机器码,它可以直接由虚拟机执行。对比了Native Code与字节码的区别,并详细阐述了Java程序的编译执行过程,指出Java因字节码的解释执行特性被称作解释性语言。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Native Code — 本机代码

已被编译为特定于处理器的机器码的代码。
这些代码可以直接被虚拟机执行。
与字节码的区别:虚拟机是一个把通用字节码转换成用于特定处理器的本地代码的程序

本地代码(native code)是计算机编程(代码),编译用来运行一个特殊的处理器(如英特尔x86级的处理器)和它的特殊指令集。如果同一个程序在不同的处理器上执行的话软件就必须能够模拟出旧的处理器的指令。这种情况下,同一个程序是在模拟模式下运行的,这样就会导致它比在本机模式下运行速度慢。(这个程序可以重写并且重新编译这样就可以用新的处理器执行本机模式了。)

本地代码也可以与字节码区分开来(有时候叫做编译代码),这种代码可以在虚拟机上运行(比如JAVA虚拟机)。虚拟机是一个把通用字节码转换成用于特定处理器的本地代码的程序。微软的.NET编译器产生的就是字节码微软叫它作中间语言)。Java字节码和微软的中间语言都能在执行前被即时编译器编译成高性能的本机代码。

Java程序编译执行过程

java编译器将源文件(.java)编译成机器码(.class)。然后java虚拟机再将这些机器码解释成为本地具体平台可执行的指令集。

为何说Java是解释性语言

它与C++相比有何不同?

  • C++编译器是将源代码一次性地直接编译链接成本地可执行的本地代码。即C++编译好的程序不需要任何其他环境,可直接执行。
  • Java编译器只是将源代码编译成通用字节码,运行需要JVM的支持,JVM将字节码再转换成本地可执行的本地代码。它是边翻译字节码边执行,故而称为解释器。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值