什么是字节码?

java中引入了虚拟机的概念,就是在机器和程序之间加入了一层抽象的虚拟机器。这台机器在各个平台中都给程序提供了接口。

程序只需要面向虚拟机编程,而不需要管理这套程序是否在什么平台执行。编写好的程序,由解释器来编译后,成为机器可以读懂并且执行的代码。在java中,将虚拟机可以读懂的代码,称之为字节码。这里记住不要混淆了。是将虚拟机可以读懂的代码称之为字节码。也就是java中的class文件。而不是机器可以读懂的代码,机器可以读懂的那个二进制命令。0和1组成的文件。

Java源码=》编译器=》JVM可执行的Java字节码(虚拟指令或class文件)=》JVM=》JVM解释器=》机器可执行的二进制文件=》程序运行。

其实问你什么字节码,就相当于校验你是否懂得什么是解释型语言,编译型语言了。

编译型语言

需要通过编译器,将源代码编译成机器码之后才能执行的语言。一般是通过编译和链接两个步骤,编译是将我们的程序编译成机器码,链接是程序和依赖库等串联起来。

优点:编译器一般会有预编译的过程对代码进行了优化,因为编译只做了一次,运行时不会在编译,所以编译型语言效率高。

缺点:编译之后如果想要修改某一个功能,就需要整个模块重新编译。编译的时候根据对应的运行环境生成不同的机器码。不同的操作系统之间,可能会有问题。需要根据环境的不同,生成不同的可执行文件。

代表语言:C、C++、Pascal、Object-C以及最近很火的苹果新语言swift,GO

解释型语言

解释型语言不需要编译,相比编译型语言省了道工序,解释型语言在运行程序的时候才逐行进行翻译。字节码也是解释型的一部分。

优点:有良好的平台兼容性,只要安装了虚拟机,就可以。容易维护,方便快速部署,不用停机维护。

缺点:每次运行的时候都要解释一遍,性能上不如编译型语言。

代表语言:JavaScript、Python、Erlang、PHP、Perl、Ruby

采用字节码的好处

其实上述的文字中,如果有听懂的话,应该已经知道答案了。字节码问的含义就是,什么是解释型语言?字节码的好处就是,解释型语言的优点?

Java 语言通过字节码的方式,在一定程度上解决了传统解释型语言执行效率低的问题,同时又保留了解释型语言可移植的特点。所以 Java 程序运行时比较高效,而且,由于字节码并不专对一种特定的机器,因此,Java程序无须重新编译便可在多种不同的计算机上运行。

什么是字节码?采用字节码的最大好处是什么?相关推荐

  1. 最大报销额java_何为字节码?采用字节码的最大好处是什么?_学小易找答案

    [填空题]新创建的线程默认的优先级是( ) (10.0分) [其它]利用 switch 语句,将百分制成绩转换成 5 级制成绩.其对应关系如下所示: 0~59 : E 60~69 : D 70~79 ...

  2. 什么是字节码?采用字节码的好处是什么?

    Java中的编译器和解释器: Java中引入了虚拟机的概念,就是在机器和编译程序(idea等)之间加入了一层抽象的虚拟机.这台虚拟机器在任何平台上都提供编译程序一个共同的接口,所以就算在window. ...

  3. 【Java面试】什么是字节码?采用字节码的好处是什么?

    文章目录 编译语言与解释语言 什么是字节码? Java的编译器和解释器 Java 程序从源代码到运行一般有下面 3 步: 编译语言与解释语言 编译语言就是类似于C语言这种,在运行真正的代码之前先需要进 ...

  4. 什么是字节码,采用字节码的好处是什么?

    java中的编译器和解释器: java中引用了虚拟机的概念,即在机器和编译程序之间加入了一层抽象的虚拟机器.这台虚拟的机器在任何平台上都提供给编译程序一个共同的接口. 编译程序只需要面向虚拟机,生成虚 ...

  5. 字符,字节和编码, ASCII码, DBCS码,SBCS码 与Unicode码

    字符,字节和编码, ASCII码, DBCS码,SBCS码 与Unicode码 http://www.regexlab.com/zh/encoding.htm 1. 编码问题的由来,相关概念的理解 1 ...

  6. java字节码文件加密_java 字节码加密源码

    java 字节码加密源码 java 2021-2-16 下载地址 https://www.codedown123.com/73152.html java 字节码加密源码,实现对class加密解密 资源 ...

  7. python有哪些码_Python字节码介绍

    Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 了解Python字节码是什么,Python如何使用它来执行代码,以及了解它可以帮我们干什么. 如果你曾经编 ...

  8. 干货|什么是字节码?字节码扩展名是什么?

    黑马程序员视频库 播妞微信号:heiniu526 传智播客旗下互联网资讯.学习资源免费分享平台 字节码产生的背景 Java最初诞生的目的就是为了在不依赖于特定的物理硬件和操作系统环境下运行,那么也就是 ...

  9. Java字节码,字节码指令

    目录 字节码 字节码指令分类 方法栈和栈帧(操作数栈,局部变量数组) 字节码指令 操作数栈相关指令 局部变量数组相关的指令 将常量加载到操作数栈上的指令 高层语义的字节码指令 字段访问指令 方法调用指 ...

最新文章

  1. 如何导出NK.bin中的内容
  2. SharePoint 2007 URL地址快速一览表
  3. ffmpeg内存模型及AVPacket和AVFrame API基本使用
  4. pl/sql developer导入导出
  5. 数据结构 - 栈(链表实现栈的入栈出栈)
  6. php 缩略图 失真,WORDPRESS缩略图失真变形模糊的解决方法
  7. httpurlconnection 封装_不要再封装各种Util工具类了,看看这个框架
  8. Silverlight 数据库 - Silverlight Database
  9. Ableton Live 11 Suite for Mac(专业音乐创作软件)
  10. Ubuntu 10.04的安装
  11. 利用 pyspider 框架抓取猫途鹰酒店信息
  12. SQl2008配置管理工具服务显示远程过程调用失败
  13. COGS 1299. bplusa【听说比a+b还要水的大水题???】
  14. 记录服务磁盘满了清理记录
  15. ps CS6 不能直接拖入图片的问题!!win8 系统下
  16. $F $ 等符号的意思
  17. Linux服务器查看带宽,进程和线程
  18. 适合小程序定制的企业有哪些?
  19. 个人博客开源系统XBlog介绍和部署
  20. 5个开源免费的Java项目快速开发脚手架

热门文章

  1. 西游记中神兽谛听的能力 这款小程序也有
  2. Python+Django+Mysql个性化图书推荐系统 图书在线推荐系统 基于用户、项目、内容的协同过滤推荐算法(带设计报告)
  3. onunload,onbeforeunload,load事件
  4. 平面设计中的网格系统pdf_【200421】平面设计必看书籍超越平凡的设计平面设计中的网格系统等|电子书资源免费分享...
  5. 关于测试工程师进入职场如何规划自己的职业测试生涯。
  6. MySQL基本数据类型与Java基本数据类型
  7. Swiper + 图片懒加载
  8. SOC的定义、适用性和组成
  9. 优雅整洁的 Java 代码命名技巧,风之极·净化
  10. [比赛|考试] 咕咕掉的一些比赛总结