它遵循C约定。C约定反过来基于在堆栈上传递参数的CPU体系结构。第一个non-
vararg自变量以堆栈帧中的固定偏移量结束。如果可以将vararg参数放在首位,则以下参数的堆栈偏移量将取决于您要传递的vararg参数数量。这将大大增加访问它们所需的代码量。
在您的示例中,
String a首先,从概念上讲,偏移量为0,与后面的vararg参数的数量无关。但是
Stringa最后,它可能在偏移量
args.size * 40、4、8、12 等处-您必须在每次需要时进行计算
String a。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)