Jvm-Class文件格式

本文详细解析了JVM类文件的结构,包括常量池、访问标志、类和父类信息、接口、字段、方法及属性等内容。介绍了如何使用javap、BinEd和Jclasslib等工具查看字节码,深入探讨了JVM如何执行类文件。

在这里插入图片描述

#1常量池1号位置存储常量池中的常量数量

constant_pool表:constant_pool_count-1、
access_flags:通过super按位运算出类的类型
this_class
super class
interfaces:接口
fields:属性类型
methods:方法
attribute:通过方法表,执行jvm指令(JVM的汇编语言)

观察ByteCode方法

javap -v classpath,BinEd,Jclasslib

JClasslib使用

编译后光标在类体中,view->show bytecode with jclasslib
在这里插入图片描述
constant pool count = 16 - 1 从01开始

Duplicate class androidx.annotation.AnimRes found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.AnimatorRes found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.AnyRes found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.AnyThread found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.ArrayRes found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.AttrRes found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.BinderThread found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.BoolRes found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.CallSuper found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.CheckResult found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.ChecksSdkIntAtLeast found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.ColorInt found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.ColorLong found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.ColorRes found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.ContentView found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.DimenRes found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.Dimension found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.Discouraged found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.DisplayContext found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.DoNotInline found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.DrawableRes found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.FloatRange found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.FontRes found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.FractionRes found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.GravityInt found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.GuardedBy found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.HalfFloat found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.IdRes found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.InspectableProperty found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.InspectableProperty$EnumEntry found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.InspectableProperty$FlagEntry found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.InspectableProperty$ValueType found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.IntDef found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.IntRange found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.IntegerRes found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.InterpolatorRes found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.Keep found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.LayoutRes found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.LongDef found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.MainThread found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.MenuRes found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.NavigationRes found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.NonNull found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.NonUiContext found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.Nullable found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.PluralsRes found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.Px found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.RawRes found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.RequiresApi found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.RequiresFeature found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.RequiresPermission found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.RequiresPermission$Read found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.RequiresPermission$Write found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.RestrictTo found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.RestrictTo$Scope found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.Size found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.StringDef found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.StringRes found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.StyleRes found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.StyleableRes found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.TransitionRes found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.UiContext found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.UiThread found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.VisibleForTesting found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.WorkerThread found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Duplicate class androidx.annotation.XmlRes found in modules annotation-1.3.0.jar -> annotation-1.3.0 (androidx.annotation:annotation:1.3.0) and annotation-jvm-1.7.0.jar -> annotation-jvm-1.7.0 (androidx.annotation:annotation-jvm:1.7.0) Go to the documentation to learn how to Fix dependency resolution errors. 怎么解决
最新发布
10-18
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值