作者:老明l
内容:简单了解方法与数组
在博客开始之前,想跟大家分享一个观点:“人类的本质是复读机”。第一次听到这句话是高中的时候,现在已经大二啦,逐渐觉得这句话真的很对。起码对于不那么天赋异禀的大多数人来说,不断地重复知识才会让我们记住它。
关注博主,了解初学者的Java入门历程!欢迎大家在评论区留下自己的见解!
方法
在Java中,我们通常将一些重复使用的、具有特定功能的代码集合定义成方法,从而减少代码冗余。
问:main()方法是主方法,它有什么特殊含义?答:main()方法是程序的入口。
方法的定义语法
修饰符 返回类型 方法名称(参数类型1 参数名1,参数类型2 参数名2…){
方法体;
return 返回值;
}
请考虑:对于Java的标识符命名规则是否熟悉?
方法的重载
在Java中,一个类可以有同名的方法,但是这些方法必须有不同的参数列表(参数的个数、类型、顺序),Java正是根据参数列表的不同来确定调用哪个方法的。
方法的递归
类似于C语言中的递归调用,一个方法在方法体内调用自身被成为方法的递归。
数组
Java中存在一维数组与二维数组,本篇仅介绍一维数组,二维数组可以类比探索。
另外,数组越界与空指针是java中与数组相关的异常。
数组的声明
在Java中,数组的声明有两种方式。
//数组声明方式一:
int [] a;
double [] b;
//数组声明方式二:
int a [];
double b [];
Java中常用的声明方式是方式一。
注意:
int [3] a; 与 int a [3];
都是错误的声明方式。
当我们声明数组时,程序将在栈内存中开辟一块空间,用于存储数组元素实际存储的内存地址,值暂时为空。
数组的初始化
Java中数组的初始化有静态初始化与动态初始化两种。
在解释两者的区别之前,我们需要明确一个点,即“一个数组它有元素,也有长度”。当我们初始化数组后,它的长度和元素应当是确定的。
静态初始化与动态初始化的区别就在于,静态初始化时程序员给予了数组每个元素的初始化值,数组长度由系统决定。而动态初始化时程序员仅指定数组长度,数组元素的初始化值由系统赋予默认初始值。
另外,默认初始值是根据元素的类型决定的。
静态初始化
让我们再次明确静态初始化的内容:静态初始化时程序员给予每个元素的初始化值,数组长度由系统决定。
实际语法中,静态初始化数组是将数组的声明与初始化同时进行的。
//静态初始化
int [] a= new int[]{1,2,3,4};
//简化语法
int [] b= {1,2,3,4};
请考虑:Java中数组的声明方式有哪两种?常用的是哪一个呢?
动态初始化
同样的,我们再次明确动态初始化的内容:动态初始化时程序员指定数组长度,系统对每个数组元素赋予默认初始值。
动态初始化数组的语法有两种,一种声明与初始化分开,一种是声明与初始化同时进行。
//当数组已声明时
int [] a;//声明数组
a=new int[3];//数组初始化:数组名=new 数据类型[长度]
//数组声明与初始化同时进行:数据类型[]数组名=new 数据类型[长度]
double [] b=new double[3];
Arrays工具类
Arrarys工具类是JDK提供的用来操作数组的,包含了许多操作数组的方法。它位于java.util包中,使用时需要导入,以下介绍一些常用的方法。
- String toString(Object [] array)
作用:将数组转换为字符串。
返回字符串为:[array[0],array[1],array[2],…,array[length-1]]
例:
int [] a={1,2,3,4};
String s=Array.toString(a);//String类型的S用于接受返回值
System.out.print(s);
//运行结果为:[1,2,3,4]
- boolean equals(Object [] array1,Object [] array2)
作用:比较两个字符串是否相等。
例:
int [] a={1,2,3,4};
int [] b={1,2,3,4};
boolean judge=Arrarys.equals(a,b); //返回结果为true
- void sort(Object [] array)
作用:对数组进行升序排列(快排!)。
例:
int [] a={1,5,4,2,3};
Arrarys.sort(a);
- void fill(Object [] array,int val)
作用:将数组的值全部赋为val。
例:
int [] a={1,2,3,4,5};
Arrays.fill(a,6);
- int binarySearch(Object [] array,Object val)
作用:二分法查询元素在数组中的索引。
返回值:若找到元素,返回其索引。若未找到,返回-(第一个大于目标值的元素的下标+1),若数组内元素都比要查找的元素小,则返回-(数组长度+1)。
重载方法:int binarySearch(Object [] array,int startIndex.int endIndex,Object val)
emsp;emsp;作用:在[startIndex,endIndex)查找val
返回值为响应元素的索引,若为找到则返回-1.
- copyOf(Object [] array,int length)
作用:将数组前length个元素复制到一个新数组中,返回值需要用一个数组来接收。
例:
int [] a={1,2,3,4};
int [] b=Arrays.copyOf(a,a.length);
重载方法:copyOf(Object [] array,int startIndex,int endIndex)
作用:赋值[startIndex,endIndex)内的元素,仍需由数组接收。