Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中varargs的最大参数数是多少?_Java_Jvm_Jvm Languages - Fatal编程技术网

java中varargs的最大参数数是多少?

java中varargs的最大参数数是多少?,java,jvm,jvm-languages,Java,Jvm,Jvm Languages,java中vararg可以使用的最大参数数是多少? 我认为应该有一些限制,而且它不是无限的。一个方法(包括静态类初始值设定项)最多可以有64k。如果参数可以用一个字节长的字节码推送,那么调用时可以有大约64000个参数。如果您通过var args传递的参数数量接近于该数量(大约Integer.MAX_VALUE),那你就做错了。@berry120虽然这是一个有点理论性的问题,但并不乏味。请注意,所有告诉数字大于64K的答案都是错误的,不管他们得到多少赞成票。@Ingo哪个答案?;-)啊!!我不知

java中vararg可以使用的最大参数数是多少?
我认为应该有一些限制,而且它不是无限的。

一个方法(包括静态类初始值设定项)最多可以有64k。如果参数可以用一个字节长的字节码推送,那么调用时可以有大约64000个参数。

如果您通过var args传递的参数数量接近于该数量(大约
Integer.MAX_VALUE
),那你就做错了。@berry120虽然这是一个有点理论性的问题,但并不乏味。请注意,所有告诉数字大于64K的答案都是错误的,不管他们得到多少赞成票。@Ingo哪个答案?;-)啊!!我不知道。实际上没有考虑方法大小。但我不能删除我的答案,因为它已被接受(我还是会给你一个+1。谢谢,我学到了一些新东西。:@RohitJain没问题。当我有一次试图创建一个包含解析器表的巨大静态数组时,实际上遇到了这个问题。我必须在不同的静态初始化方法中拆分数组初始化,但是当然不能拆分方法调用…那么
main(String…params)
呢?我可以从命令行传递更多参数吗?@piotrek可能可以,除非您的shell不支持它。现在的限制是宽松的,但我记得通常用于命令行参数的空间是4k。但从严格意义上讲,它不再是Java问题。测试也应该很容易,只需运行一个创建100000个左右文件的shell脚本,然后使用参数*@Ingo“最多64k”运行java prog,您能详细说明一下吗?这是某个JVM规范限制还是以其他方式指定的?