Java学习笔记(5)

it2022-05-05  142

 

补day4:如果一个函数的返回值类型是具体的数据类型,那么该函数就必须要保证在任意情况下都保证有返回值。(除了void类型)

return关键字的作用:

1.返回数据给函数的调用者

2.函数一旦执行到了return关键字,那么该函数马上结束。(能结束一个函数)    return;

注意:一个函数的返回值类型是void,那么也可以出现return关键字,但是return关键字的后面不能有数据。

break关键字与return关键字的区别:

1.break关键字是结束一个循环

2.return关键字是结束一个函数

函数的重载:

在一个类中出现两个或者两个以上的同名函数,这个称作为函数的重载。

函数重载的作用:同一个函数名可以出现了不同的函数,以应对不同个数或者不同数据类型的参数。

函数重载的要求:

1.函数名一致

2.形参列表不一致(形式参数的个数或者是对应的数据类型不一致)

3.与函数的返回值类型是无关的

(要不就是重复定义)

 

数组:数组是同一种数据类型数据的集合容器。

数组的定义格式:

数据类型【】  变量名=new   数据类型【长度】;

局部变量:如果一个变量是在一个方法(函数)的内部声明的,那么该变量就是一个局部变量。

成员变量:成员变量就是定义在方法之外,类之内的。

栈内存:栈内存存储的都是局部变量,变量一旦出了自己的作用域,那么马上会从内存中消失,释放内存空间。

堆内存:堆内存存储的都是对象数据,对象一旦被使用完,并不会马上从内存中消失,而是等待垃圾回收器不定时把垃圾对象回收,这时候该对象才会消失,释放内存。

对象如果没有变量引用了,那么该对象就是一个垃圾对象了。

凡是以new关键字创建的对象,jvm都会在堆内存中开辟一个新的空间,创建一个新的对象。

数组的好处,对分配到数组对象中的每一个数据都分配一个编号(索引值,角标,下标),索引值的范围从0开始,到n-1 

 

数组中最常见的问题:

1.NullPointerException     空指针异常

原因:引用类型变量没有指向任何对象,而访问了对象的属性或者是调用了对象的方法。

2.ArrayIndexOutOfBoundsException   索引值越界。

原因:访问了不存在的索引值。

数组的初始化方式:

    数据类型【】     变量名=new   数据类型【长度】;    //动态初始化

    数据类型【】     变量名={元素1,元素2,元素3....};   //静态初始化

排序:

选择排序:

public static void main(String[] args) { // TODO Auto-generated method stub int[] a= {18,12,6,8,9}; selectSort(a); } public static void selectSort(int[] arr) { for (int i=0;i<arr.length-1;i++) { for (int j=i+1;j<arr.length;j++) { if (arr[j]>arr[i]) { int temp=arr[j]; arr[j]=arr[i]; arr[i]=temp; } } } System.out.println("目前的元素是:"); for (int i=0;i<arr.length ;i++) { System.out.print(arr[i]+","); } }

 

冒泡排序:

public static void main(String[] args) { // TODO Auto-generated method stub int[] a= {18,12,6,8,9}; bubbleSort(a); } public static void bubbleSort(int[] arr) { for(int i=0;i<arr.length-1;i++) { for (int j=0;j<arr.length-1-i;j++) { if (arr[j]>arr[j+1]) { int temp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; } } } System.out.println("目前的元素是:"); for (int i=0;i<arr.length ;i++) { System.out.print(arr[i]+","); } }

查找:折半查找法

public static void main(String[] args) { // TODO Auto-generated method stub int[] a= {12,16,54,56,70}; int index=halfSearch(a,156); System.out.println("元素的索引值为:"+index); } public static int halfSearch(int[] arr,int target) { int max=arr.length-1; int min=0; int mid=(max+min)/2; while (true) { if (target>arr[mid]) min=mid+1; else if (target<arr[mid]) max=mid-1; else return mid; //没有找到 if (max<min) return -1; mid=(max+min)/2; }

}

Arrays.sort();排序

Arrays.toString();输出

Arrays.binarySearch();折半查找法

 

 

 

 

 

 

 

 

 

 

 

 

 

二维数组的初始化方式:

 

数据类型【】【】  变量名=new 数据类型【长度1】【长度2】;

静态初始化:

数据类型【】【】  变量名={{元素1,元素2,元素3...},{元素1,元素2,元素3...},{元素1,元素2,元素3...}...}

数组的特点:

1.数组只能存储同一种数据类型的数据

2.数组是会给存储到数组中的元素分配一个索引值的,索引值从0开始,最大的索引值是length-1

3.数组一旦初始化,长度固定

4.数组中的元素与元素之间的内存地址是连续的,注意,是数组中的相邻元素的地址,而不是数组本身的地址

 

转载于:https://www.cnblogs.com/zhangwugai/p/10298537.html


最新回复(0)