你知道Java方法能定义多少个参数吗?
一:为什么研究这么无聊的问题 这两天在读一本老书《Orange'S 一个操作系统的实现》,把丢了很长时间没研究的操作系统又重新拾起来了,在第三章讲解“保护模式”时,作者提到了调用门描述符中的Param Count只有5位,也就是说,最多只支持32个参数,这本来只是一个不是特别重要的细节,但是却勾起了我的思索:在JVM中,一个Java方法,最多能定义多少参数呢?我知道这是一个很无聊的问题,即使能定义一万个,十万个,谁又会真的去这么做呢。但是作为一个Coder,最重要的不就是好奇心吗,没有好奇心,和一条咸鱼又有什么区别呢? 二:实地考察 这种问题,第一步当然就是看看JVM中关于方法的定义,这里以openJDK10中的HotSpot为例。在ConstMethod中,代表参数数量的字段为_size_of_parameters。 u2 _size_of_parameters; // size of the parameter block (receiver + arguments) in words _size_of_parameters的类型为u2,在JVM中,u2为2个字节长,那么理论上来说...