标签列表
Java中可变参数的最大参数数量是多少?
java
jvm
jvm-languages
22
22
在Java中,可变参数(vararg)可以使用的最大参数数量是多少?我相信应该有一定限制,而不是无限制的。
-
ACS
4
4
如果您通过可变参数传递的参数数量接近于Integer.MAX_VALUE(约为21亿),那么您正在做错误的事情。请注意,该句中的“something wrong”意为“做错了某件事”,并非具体错误的描述。
- Michael Berry
3
@berry120 尽管这是一个有些理论的问题,但并不乏味。
- assylias
3
请注意,所有回答数字大于64K的都是错误的,无论它们获得了多少赞同。
- Ingo
1
@Ingo 哪个答案?;-)
- MC Emperor
1
个回答
37
37
一个方法(包括静态类初始化器)最多只能有64k。如果传递的参数可以使用单字节推送,则每个字节长度都为1个字节,可以在调用时拥有大约
64000
个参数。
-
Ingo
11
啊!我不知道那个。实际上没有考虑到方法的大小。但是我不能删除我的答案,因为它已经被接受了。:( 不过我会给你一个+1。谢谢,我学到了新东西。 :)
- Rohit Jain
@RohitJain 没问题。实际上,我曾经在尝试制作一个包含解析器表的巨大静态数组时遇到过这个问题。我不得不将数组初始化拆分为不同的静态初始化方法,但当然你不能拆分方法调用...
- Ingo
2
main(String... params)
怎么办?我能从命令行传递更多参数吗?
- piotrek
1
@piotrek 可能是的,除非你的 shell 不支持。现在限制比较宽松,但我记得以前命令行参数的常规空间只有 4k。但这不再是 Java 的问题了。测试也很容易,只需运行一个创建 100,000 个文件或更多的 shell 脚本,然后使用 * 参数运行你的 Java 程序即可。
- Ingo
1
@PeterLawrey,你确定你理解了问题和我的回答吗?
- Ingo
显示剩余6条评论
回答链接
网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接
相关问题
94
具有可变数量参数的函数
5
Java中的可变参数
3
PreparedStatement批量更新可以添加的参数集的最大数量是多少?
3
可变参数中元素的数量。
31
Java数组中维度的最大数量是多少?
146
Java方法声明中参数的最大数量
33
Java可变参数函数参数
18
Java中具有可变数量参数的字符串格式化
14
Java方法应具有的标准参数数量是多少?
4
在Java中套接字的最大数量是多少?