【Java】一篇文章让你了解字节码是什么

本文详细介绍了字节码的概念,包括它与机械码的区别、使用字节码的优势,以及在JVM中的地位。通过实例探讨了Java中的字节码,展示了如何查看字节码,并提出了关于字节码与十六进制形式之间转换的疑问。
摘要由CSDN通过智能技术生成

了解字节码
解读字节码(上)
解读字节码(下)

一、什么是字节码

1. 先来说一下什么是机械码

机械码就是cpu能够直接读取并运行的代码,它是用二进制编码表示的,也叫做机械指令码。在编写这种代码时,需要主动地去控制cpu的一切资源,而且需要记住全部指令所做的动作,十分的麻烦,当然这也是计算机的底层代码,处理开发计算机的专业人员之外,已经很少人去研究了。

2.字节码

字节码是一种中间状态二进制文件,是由源码编译过来的,可读性没有源码的高。cpu并不能直接读取字节码,在java中,字节码需要经过JVM转译成机械码之后,cpu才能读取并运行。

3.使用字节码的好处

一处编译,到处运行。java就是典型的使用字节码作为中间语言,在一个地方编译了源码,拿着.class文件就可以在各种计算机运行,每个计算机上的jvm就会有所不同了。

4.字节码在JVM中的状态

在这里插入图片描述

5.额外提一点

编译型语言

只需要编译一次,就能够将源代码编译成机械码。执行效率高,可移植性低,依赖编译器。
典型代表:C、C++、Pascal、Object-C以及最近很火的苹果新语言swift,GO

解释型语言

第一次编译时,并不会直接将源代码编译成机械码,而是编译成一种中间状态的二进制文件(字节码),由虚拟机来对这个二进制文件进行第二次编译,这次才是编译成机械码。执行效率比编译型语言低,但是可移植性高,依赖虚拟机。
典型代表:JavaScript、Python、Erlang、PHP、Perl、Ruby

二、java中的字节码

1.查看字节码的方式

  1. 首先打开idea,在里面创建一个.java文件
package test;

public class ByteCodeTest {
   
    private int a = 0;
    public int get() {
   
        return a;
    }
}

然后在另一个类上,运行main方法,调用这个类

  1. 找到编译后的.class文件
    out文件夹下面会多出一个我们刚刚编写的java文件相同名称的.cla
  • 6
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员徐小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值