Java基础 ->什么是Java字节码?采⽤字节码的好处是什么?

16 篇文章 3 订阅

什么是Java字节码?采⽤字节码的好处是什么?

Java字节码: 扩展名为.class的⽂件就是Java字节码

采⽤字节码的好处: Java字节码通过jvm虚拟机解释,同一个Java字节码不同的jvm执行路线,生成不同平台的⼆进制机器码,同一份代码可以跨平台使用

  • Java中的编译器和解释器:Java中引⼊了虚拟机的概念,即在机器和编译程序之间加⼊了⼀层抽象的虚拟的机器。

  • 这台虚拟的机器在任何平台上都提供给编译程序⼀个的共同的接⼝。编译程序只需要⾯向虚拟机,⽣成虚拟机能够理解的代码,然后由解释器来将虚拟机代码转换为特定系统的⼆进制机器码执⾏。

  • 在Java中,这种供虚拟机理解的代码叫做字节码(即扩展名为 .class的⽂件),它不⾯向任何特定的处理 器,只⾯向虚拟机(只有java的虚拟机可以用,也是一种缺点)。

  • 每⼀种平台(Win丶Linux)的解释器是不同的,但是实现的java虚拟机是相同的。

  • Java源代码经过编译器编译后变成字节码,虚拟机将每⼀条要执⾏的字节码送给解释器,解释器将其翻译成特定机器上的机器码,然后在特定的机器上运⾏。

Java源代码---->编译器---->jvm可执⾏的Java字节码(即虚拟指令)---->jvm---->jvm中解释器----->机器可执⾏的⼆进制机器码---->程序运⾏

  • 采⽤字节码的好处:字节码并不专对⼀种特定的机器,因此,Java程序⽆须重新编译便可在多种不同的计算机上运⾏。

Java比C/C++执行慢的原因?

  • C/C++代码直接解释变成机器可执⾏的⼆进制机器码

  • Java代码还要经过jvm编译(也相当于解释),再解释变成机器可执⾏的⼆进制机器码

    • 摆明了,多加了一节,要慢
  • Java代码还有各种安全机制,检查数组越界,检查类型是否错误,检查是否空指针,检查对象是否需要回收 (JVM) 等等,为了安全稳定所以它慢

    • C++等就程序员自己判断,不去判断自然就还要快喽
  • 当然,为了安全稳定,C++也要走安全检查的,但是相比于Java呢?

  • Java是后台一直在搞安全检查,检查个没停,所以执行又慢了点

    大帅比,点赞了没?

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值