前面给大家说了一些关于Java的基础知识,今天我就吧我以前没说详细的东西补充一下
String[ ] args
String[] args是main函数的形式参数,可以用来获取命令行用户输入进去的参数。
具体使用方法如下:
这个就是给主函数中的args输入长度,可直接运行。
它主要用在当我们执行Java程序(Java 字节码文件)的时候,可以指定一些参数。
另外说一下,这里面args的名称是可以改变的,因为它只是一个参数名。
可变长参数
当我们在给一个函数传参的时候,如果我们不确定具体要传参数的个数的话,这个时候就可以使用可变长参数(这些参数必须是相同的类型)。其实它本质上就是一个数组。
1.一个参数列表当中只能有一个可变长参数,如果出现多个的话,首先编译就会出错;
2.如果可变长参数和固定参数同时存在的话,那么可变长参数必须在参数列表的最后面。
具体使用如下:
class Test02{
public static void main(String[] a){
multiArguments(1);
multiArguments(1,2,3);
multiArguments(1,2,3,4,5,6);
}
public static void multiArguments(int ... nums){
for(int i = 0;i < nums.length;i++){
System.out.print(nums[i] + " ");
}
System.out.println();
}
}
foreach循环
格式:
for(循环数据类型 循环变量名:可迭代对象){
循环体;
}
class Test03{
public static void main(String[] args){
multiArguments(1);
multiArguments(1,2,3);
multiArguments(1,2,3,4,5,6);
}
//传入的是不确定个数的int型参数
public static void multiArguments(int ... nums){
for(int num:nums){
System.out.print(num);
}
System.out.println();
}
}
这里的num其实表示的是nums[i] i∈[0~nums.length),只不过在foreach中屏蔽掉了i的具体行为。
此外,数组是可迭代对象当中的一种,并且数组可以通过角标访问,所以目前我们可以认为num等效于nums[i]。 ,但是并不代表所有的可迭代对象都有角标支持,有些可迭代对象的元素访问顺序是比较复杂的,所以为了避免这些复杂就有了foreach循环。
foreach有什么样的一个缺点呢?
1.它仅仅只能访问元素,不能对元素进行修改。
2.num仅仅是nums[i]的一个备份,改num不代表改nums[i]。
所以说我们如果仅仅访问元素的话,用foreach循环会更简单。
Arrays类
1.static void sort(int[] a):这个方法是对指定的数组按数字升序进行排序。
2.static int binarySearch(int[] a, int key):这个方法是使用二分搜索法来搜索指定的int型数组,以获得指定的值。
3.static int[] copyOf(int[] original, int newLength) :这个方法是复制指定的数组,截取或用0填充(如有必要),以使副本具有指定的长度。 4.static String toString(int[] a):这个方法是返回指定数组内容的字符串表示形式。
多返回值处理
Java的函数仅仅只能返回单一的值,如果需要一次性返回多个值,我们就需要将多个值封装在一个数组当中即可,后面也会学到集合/映射。