java多线程 java的可变参数为什么只能放在最后一个?
java的可变参数为什么只能放在最后一个?
变量参数是Java1.5的一个新特性。当参数个数不确定且类型确定时使用。Java将变量参数视为数组。
变量参数有一个非常重要的说明,即当一个方法中有多个参数时,它必须在最后一项中。
原因:变量参数用于传递不确定参数的数量,这意味着无论您提供多少参数,只要是其类型,都将正确传递。如果它放在前面,并且传递了所有参数,那么后面相同类型的参数将不会被传递。
而且,Java无法区分传入的参数是属于前一个变量参数还是属于后一个参数。它按顺序传递参数。例如,您编写的方法中的形式参数是
public void method(int x,string name);
调用方法时,传入参数的顺序必须是
int first,然后是string,例如,method(18,“Bob”);如果顺序不匹配,则为method(“Bob”,18);将报告错误。
因此,为了防止不必要的错误,Java只规定变量参数必须放在参数列表的最后一项,并且一个方法只能有一个变量参数。
以上只是一些个人观点。如有不妥之处,欢迎批评指正
java能为方法参数设置默认参数吗?
无法设置默认参数。因为同时支持“默认参数”和“方法重载”,所以存在歧义问题。为了简单起见,Java可能不使用“默认参数”。使用“方法重载”可以间接达到“默认参数”的效果,避免代码太黑。例如,重载方法是间接实现的:public class a{public void DOA(inta)}public void DOA(){这个。doA(0)//这里默认传入0,类似于此方法重载。默认值}
只要定义了它,就会分配内存空间。为什么我们要把记忆分成四个区域,比如静态区域?1堆栈区域由编译器自动分配和释放,用于存储函数的参数值和局部变量的值。在执行了特定的方法之后,系统会自动释放JVM的内存资源。2堆区域通常由程序员分配和释放,以存储由new创建的对象和数组。JVM会不时地查看这个对象。如果没有引用此对象,它将循环使用。三。静态区域存储全局变量,静态变量和字符串常量不释放。4代码区—存储程序中方法的二进制代码,多个对象共享一个代码空间区域
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。