展开全部
居然 整个楼里面都答非所问了 看我62616964757a686964616fe59b9ee7ad9431333365666231的看我的哦 提问者都说的这么清楚了
这个问题很好
日常使用不定参数时候基本是Object...可以等同于 Object[] obj一维数组理解的
数组本质是连续的指针地址 其中数组的头指针是必须的 但是二者的不同在于何处呢?
很明显
Obj...是针对方法传入参数的 即只能在method()内使用
即 不定参数只能作为方法的形参,不能用作变量
然后你看我建立2个test犯法
然后你看我用这些方法
什么意思呢 看到编译器报错了?
public viod method(Object[] obj)
必须传入已经初始化的数组 而已经初始化的数组是定常度的 所以实际没有实现真正的变长度参数
而
public viod method(Object...) 直接传入内容即可 其中的OBJ...对象是存在指针的
你看我运行一下 控制台打印的text text1 传入的 Sring[]a指针地址
java的 数组结构在jvm的堆和栈上是不同的 但是我个人没有理解这问题如果提问者了解欢迎回复我
有关不定参数的使用
public viod method(Object[] obj,Object...) {
Obj操了自己;
}
不过,不定参数有两个规定:第一,方法的参数列表中最多只有一个不定长度的参数;第二,就是不定长度的数组的位置必须是最后一个参数。不然不能通过编译。