当前位置: 首页 > 面试题库 >

字节码和机器码的区别

萧焱
2023-03-14
本文向大家介绍字节码和机器码的区别相关面试题,主要包含被问及字节码和机器码的区别时的应答技巧和注意事项,需要的朋友参考一下

机器码,学名机器语言指令,有时也被称为原生码,是电脑的CPU可直接解读的数据。

字节码是一种中间状态(中间码)的二进制代码(文件)。需要直译器转译后才能成为机器码。

什么是机器码

机器码(machine code),学名机器语言指令,有时也被称为原生码(Native Code),是电脑的CPU可直接解读的数据。
通常意义上来理解的话,机器码就是计算机可以直接执行,并且执行速度最快的代码。
总结:机器码是电脑CPU直接读取运行的机器指令,运行速度最快,但是非常晦涩难懂,也比较难编写

什么是字节码
字节码(Bytecode)是一种包含执行程序、由一序列 op 代码/数据对 组成的二进制文件。字节码是一种中间码,它比机器码更抽象,需要直译器转译后才能成为机器码的中间代码。

总结:字节码是一种中间状态(中间码)的二进制代码(文件)。需要直译器转译后才能成为机器码。

-----------

#is  比较的是内存地址
#== 比较的是值
# int     具有范围:-5---256
#对于int 小数据池
 范围:-5----256 创建的相间的数字,都指向同一个内存地址

#对于字符串 (面试)
1、小数据池 如果有空格,那指向两个内存地址,
2、长度不能超过 20
3、不能用特殊字符

i = 'a'*20
j = 'a'*20
print(i is j)   # True

i = "a"*21
j = "a"*21
print(i is j)   # False

关于编码所占字节
unicode: 所有字符(无论英文、中文等)   1个字符:2个字节
gbk:一个字符,英文1个字节,中文两个字节
utf-8:英文1个字节、 欧洲:2个字节, 亚洲:3个字节


在utf-8中,一个中文字符占用3个字节
在gbk中一个汉字占用2个字节
黎诗 = utf-8(6字节)=48
黎诗 = gbk(4字节)=32

字节和位的关系。
  #一个字节(byte) = 8 位(bit)
  # 位为最小的单位

简述变量命名规范
  #1、以字母,数字,下划线任由结合
  #2、不能以命名太长,不使用拼音,中文
  #3、不能以数字开头
  #4、不能用关键词

 

 

 

 类似资料:
  • > 在计算机汇编语言中,助记符是操作的缩写。它被输入到每个汇编程序指令的操作代码字段中。例如,表示将注册为。所以、和都是助记符。它们由汇编器翻译。 汇编语言中的指令(语句)一般非常简单,不像高级编程语言中的指令(语句)。通常,助记符是单个可执行机器语言指令(操作码)的符号名称,并且为每个机器语言指令定义至少一个操作码助记符。每个指令通常由一个操作或操作码加上零个或多个操作数组成。

  • 问题内容: 我正在使用Hibernate 4.2并构建时间字节码工具来解决出现在关系上的懒惰问题和(https://developer.jboss.org/wiki/SomeExplanationsOnLazyLoadingone- to-one ) 您知道之间有什么区别吗? Hibernate字节码检测工具:http : //docs.jboss.org/hibernate/orm/4.3/ma

  • 虽然AST可以直接解释执行,实现也不复杂,但大部分语言,比如java,python,ruby(1.9版本之后)使用虚拟机解释字节码执行。字节码和AST的执行有很强的一致性,但字节码执行机制可以实现一些更细粒度的控制 这里的虚拟机是指执行一种低级语言字节码的虚拟机,这个限定可能强了些,比方说,前面说的一个AST解释器,也可以看做是一种虚拟机,因为理论上是可以有一个机器解释AST执行,但这里我们说的虚

  • 问题内容: 什么是好的免费字节码编辑器?我想要一个带有GUI的编辑器… 我没有运气尝试了jbe-0.1b(无法保存字节码更改)。 问题答案: UI并不完美,但是您可以使用Eclipse Bytecode Outline插件将任何Java类转换为ASM代码,对其进行编辑,并生成更改后的类。这可能是目前最轻松的方式。 http://asm.ow2.org/eclipse/index.html

  • 问题内容: 我遇到了一些有关JVM / JIT活动的参考,其中似乎在编译字节码和解释字节码之间有区别。该特定注释声明的字节码在前10000次运行时进行解释,然后进行编译。 “编译”和“解释”字节码之间有什么区别? 问题答案: 解释字节码基本上是逐行读取字节码,不进行任何优化或任何操作,然后对其进行解析并实时执行。由于许多原因,这种方法效率低下,其中包括Java字节码设计得不能快速解释的问题。 编译

  • 问题内容: 看起来您可以用字节码做的任何事情,都可以像使用本机代码一样轻松快捷地完成。从理论上讲,您甚至可以通过以字节码分发程序和库,然后在安装时编译为本地代码,而不是JIT来保持平台和语言的独立性。 因此,通常来说,什么时候您要执行字节码而不是本机? 问题答案: SGI的Hank Shiffman说(很久以前,但这是事实): Java使用字节码而不是使用系统的本机代码具有三个优点: 可移植性 :