设为首页 加入收藏

TOP

Java class 文件简介(一)
2019-08-04 00:14:01 】 浏览:165
Tags:Java class 文件 简介

一个class文件只能包含一个类或接口。


Java class文件是8位字节的二进制流。


在Java class文件中,可变长度项的大小和长度位于其实际数据之前。


class文件的基本类型


  u1  1byte   无符号类型


  u2  2byte  无符号类型


  u4  4byte   无符号类型


  u8  8byte  无符号类型


==========================================


以下是Java源码文件


public class ClassTest {
    final static int constantInt=12;
    final static String  constantString="我很好";
    static int variableInt=12;
    static String  variableString="我很好";
    private int variable;
    private String variable2;


    public static void main(String[] args) {
        System.out.println("--这是main()方法---");


    }
    public void say() {
        System.out.println("这是普通方法");
    }
    public ClassTest(int variable, String variable2) {
        super();
        this.variable = variable;
        this.variable2 = variable2;
    }
    public ClassTest() {
       
    }


以下是使用uedit 编辑器查看的字节码文件



以下是使用 javap -v ClssTest.class  查看的字节码文件内容 


Last modified 2019-7-24; size 924 bytes
  MD5 checksum be5b20653620d7d2b495a3f99e3fb417
  Compiled from "ClassTest.java"
public class ClassTest
  minor version: 0
  major version: 52
  flags: ACC_PUBLIC, ACC_SUPER
Constant pool:
  #1 = Fieldref          #34.#35        // java/lang/System.out:Ljava/io/PrintStream;
  #2 = String            #36            // --这是main()方法---
  #3 = Methodref          #37.#38        // java/io/PrintStream.println:(Ljava/lang/String;)V
  #4 = String            #39            // 这是普通方法
  #5 = Methodref          #12.#40        // java/lang/Object."<init>":()V
  #6 = Fieldref          #11.#41        // ClassTest.variable:I
  #7 = Fieldref          #11.#42        // ClassTest.variable2:Ljava/lang/String;
  #8 = Fieldref          #11.#43        // ClassTest.variableInt:I
  #9 = String            #44            // 我很好
  #10 = Fieldref          #11.#45        // ClassTest.variableString:Ljava/lang/String;
  #11 = Class              #46            // ClassTest
  #12 = Class              #47            // java/lang/Object
  #13 = Utf8              constantInt
  #14 = Utf8              I
  #15 = Utf8              ConstantValue
  #16 = Integer            12
  #17 = Utf8              constantString
  #18 = Utf8              Ljav

首页 上一页 1 2 3 4 5 下一页 尾页 1/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Java连接RabbitMQ实例 下一篇C语言中static关键字作用

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目