java void 方法,Java如何知道void方法何时完成其方法体?

解析器知道执行结束的位置,甚至添加一个返回,例如:

public static void main(String args[]) {

}

编译为:

public static main([Ljava/lang/String;)V

L0

LINENUMBER 34 L0

RETURN

L1

LOCALVARIABLE args [Ljava/lang/String; L0 L1 0

MAXSTACK = 0

MAXLOCALS = 1

}

这同样适用于您的代码(尽管我已经在返回0中添加了代码,因为您的代码无法编译):

public int doSomething(int x)

{

otherMethod(x);

System.out.println("otherMethod is complete.");

return 0;

}

public void otherMethod(int y)

{

//method body

}

编译代码:

public doSomething(I)I

L0

LINENUMBER 38 L0

ALOAD 0

ILOAD 1

INVOKEVIRTUAL TestRunner.otherMethod (I)V

L1

LINENUMBER 39 L1

GETSTATIC java/lang/System.out : Ljava/io/PrintStream;

LDC "otherMethod is complete."

INVOKEVIRTUAL java/io/PrintStream.println (Ljava/lang/String;)V

L2

LINENUMBER 40 L2

ICONST_0

IRETURN

L3

LOCALVARIABLE this LTestRunner; L0 L3 0

LOCALVARIABLE x I L0 L3 1

MAXSTACK = 2

MAXLOCALS = 2

// access flags 0x1

public otherMethod(I)V

L0

LINENUMBER 46 L0

RETURN

L1

LOCALVARIABLE this LTestRunner; L0 L1 0

LOCALVARIABLE y I L0 L1 1

MAXSTACK = 0

MAXLOCALS = 2

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值