java dispatch类_《深入理解Java虚拟机》- 重载与重写

[root@localhost tmp5]# javap -verbose DynamicDispatch

Classfile/usr/local/asmtools-7.0-build/binaries/lib/tmp5/DynamicDispatch.classLast modified Aug19, 2019; size 514bytes

MD5 checksum a9486d1c7dc75a210b82bd18f1782dfa

Compiled from"DynamicDispatch.java"

public classDynamicDispatch

minor version:0major version:52flags: ACC_PUBLIC, ACC_SUPER

Constant pool:

#1 = Methodref #8.#22 //java/lang/Object."":()V

#2 = Class #23 //DynamicDispatch$Man

#3 = Methodref #2.#22 //DynamicDispatch$Man."":()V

#4 = Class #24 //DynamicDispatch$Woman

#5 = Methodref #4.#22 //DynamicDispatch$Woman."":()V

#6 = Methodref #12.#25 //DynamicDispatch$Human.sayHello:()V

#7 = Class #26 //DynamicDispatch

#8 = Class #27 //java/lang/Object

#9 =Utf8 Woman

#10 =Utf8 InnerClasses

#11 =Utf8 Man

#12 = Class #28 //DynamicDispatch$Human

#13 =Utf8 Human

#14 = Utf8 #15 =Utf8 ()V

#16 =Utf8 Code

#17 =Utf8 LineNumberTable

#18 =Utf8 main

#19 = Utf8 ([Ljava/lang/String;)V

#20 =Utf8 SourceFile

#21 =Utf8 DynamicDispatch.java

#22 = NameAndType #14:#15 //"":()V

#23 =Utf8 DynamicDispatch$Man

#24 =Utf8 DynamicDispatch$Woman

#25 = NameAndType #29:#15 //sayHello:()V

#26 =Utf8 DynamicDispatch

#27 = Utf8 java/lang/Object

#28 =Utf8 DynamicDispatch$Human

#29 =Utf8 sayHello

{publicDynamicDispatch();

descriptor: ()V

flags: ACC_PUBLIC

Code:

stack=1, locals=1, args_size=1

0: aload_01: invokespecial #1 //Method java/lang/Object."":()V

4: returnLineNumberTable:

line1: 0

public static voidmain(java.lang.String[]);

descriptor: ([Ljava/lang/String;)V

flags: ACC_PUBLIC, ACC_STATIC

Code:

stack=2, locals=3, args_size=1

0: new #2 //class DynamicDispatch$Man

3: dup4: invokespecial #3 //Method DynamicDispatch$Man."":()V

7: astore_18: new #4 //class DynamicDispatch$Woman

11: dup12: invokespecial #5 //Method DynamicDispatch$Woman."":()V

15: astore_216: aload_117: invokevirtual #6 //Method DynamicDispatch$Human.sayHello:()V

20: aload_221: invokevirtual #6 //Method DynamicDispatch$Human.sayHello:()V

24: new #4 //class DynamicDispatch$Woman

27: dup28: invokespecial #5 //Method DynamicDispatch$Woman."":()V

31: astore_132: aload_133: invokevirtual #6 //Method DynamicDispatch$Human.sayHello:()V

36: returnLineNumberTable:

line22: 0line23: 8line25: 16line26: 20line28: 24line29: 32line30: 36}

SourceFile:"DynamicDispatch.java"InnerClasses:static #9= #4 of #7; //Woman=class DynamicDispatch$Woman of class DynamicDispatch

static #11= #2 of #7; //Man=class DynamicDispatch$Man of class DynamicDispatch

static abstract #13= #12 of #7; //Human=class DynamicDispatch$Human of class DynamicDispatch

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值