个人学习总结:
链接:【Java基础、springboot、springcloud、docker 等,学习目录】
一、函数:
直白点就是我们在类中定义的方法。目的是提高代码复用性,其他类、或本类中其他方法可以调用该方法。
修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,…)
{
执行语句;
return 返回值;
}
实参、形参:
实参:实际参与运算的数据,即传递给形式参数的具体值。
形参:方法参数列表定义的形式参数,虚拟参数。
二、函数的重载、重写区别:
重载(overload):
1、同一个类中,方法名相同
2、参数列表不同(参数个数、数据类型、顺序)
3、和返回值、形参的标识符、权限修饰符无关
重写、复写、覆盖(override):
1、子父类中
2、方法名、形参列表必须一致,返回值可以使子父类类型
3、重写时,子类的权限修饰符必须大于等于父类的权限修饰符
4、子类的返回值类型必须小于等于父类的返回值类型(面试)
4、子类抛出的异常必须小于等于父类抛出的异常
三、数组:
变量是用于存储可变数据的容器,但是只能存储一个数据。而数组是用于存储同种数据类型的集合容器,即可存储多个数据,数组中的元素自动从0开始索引编号。
数组的定义:
1、元素类型[] 数组名 = new 元素类型[元素个数或数组长度];
示例:int[] arr = new int[5];
2、元素类型[] 数组名 = new 元素类型[]{元素,元素,……};
int[] arr = new int[]{1,2,3,4};
int[] arr = {1,2,3}; // 定义数组之后指定了长度,并做了赋值操作
注意:
1、给数组分配空间时,必须指定数组的大小(长度)
2、创建数组之后,数组的大小不能修改,即长度固定。length 获取长度。
数组的操作:
// 1、获取最大值:
public static int getMax(int[] arr) {
//定义变量记录较大的值,初始化为数组中的任意一个元素。
int max = arr[0];
for(int x=1; x<arr.length; x++) {
if(arr[x] > max) {
max = arr[x];
}
}
return max;
}
// 2、冒泡排序:依次比较相邻的两个数,将小数放在前面,大数放在后面
public static void bubbleSort(int[] arr) {
for(int x = 0; x < arr.length - 1; x++) {
//-x: 让每次参与比较的元素减少X个,因为第一次比较之后,数组最右边一定是最大值。
for(int y = 0; y < arr.length - x - 1; y++)
//-1:避免角标越界。
{
if(arr[y]>arr[y+1])
{
int temp = arr[y];
arr[y] = arr[y+1];
arr[y+1] = temp;
}
}
}
}
// 3、二分法查找:返回指定元素的索引,没有,返回-1
public static int halfSeach(int[] arr,int key){
int min,mid,max;
min = 0;
max = arr.length-1;
mid = (max+min)/2;
while(arr[mid] != key){
if(key > arr[mid]) {
min = mid + 1;
} else if(key < arr[mid]) {
max = mid - 1;
}
if(min > max) {
return -1;
}
mid = (max + min)/2;
}
return mid;
}
// 数组操作的工具类:Arrays: toString()、sort()、binarySearch()
二维数组:
// 1、要使用必须对以为数组初始化,二维数组存储的是以为数组的地址
数组类型[][] 数组名 = new 数组类型[一维数组的个数][每一个一维数组中元素的个数];
int [][] arr = new int[3][4];
ar[0] = new int[]{12,34,45,89};
ar[1] = new int[]{12,34,45,89};
ar[2] = new int[]{12,34,45,89};
// 2、推荐使用
int [][] arr = new int[][]{ {12,34,45,89},{34,56,78,10},{1,3,6,4} };