黑马程序员-Java基础总结03——Java基本语法(二)

时间:2022-11-06 00:42:54

Java基本语法(二)——Java函数、数组

-------android培训java培训、期待与您交流!----------

 

1、函数(方法):就是定义在类中的具有特定功能的一段独立小程序。

函数的格式:

public static String toString(char[] chs,int i){
// 两个修饰符 返回值 函数名(参数类型 形参名1, 参数类型 形参名2)
// 执行语句;
return "返回值"; //返回返回值指定的类型(如String即字符串);
}

参数类型:是形式参数的数据类型,即接收的数据类型。(例: StringObject等)

形式参数:是一个变量,用于存储调用函数时传递给函数的实际参数。(通常为方法中变量的名称)

实际参数:传递给形式参数的具体数值。

返回值类型:函数运行后的结果的数据类型。

return:方法中用于返回函数运行结束数值,会结束函数执行。

返回值:该函数运算后的结果,该结果会返回给调用者。

 

当某些代码需要重复使用时,可以将其封装为函数,通过调用函数,从而提高代码复用性

定义函数:将功能代码进行封装;

*便于对该功能进行复用;

*函数只有被调用才会被执行

*函数的出现提高了代码的复用性;

*如果函数没有具体返回值,那么返回值类型用关键字void表示,那么该函数中的return语句如果在最后一行可以省略不写(一般情况下返回值类型为void,无需return语句)

*注意:

  函数中只能调用函数,不可以在函数内部定义函数

 定义函数时,函数的结果返回给调用者,交由调用者处理。

 

2、重载:同一个类中,允许存在一个以上同名函数,只要它们的参数个数或者参数类型(接收参数类型)不同即可。

特点: 与返回值类型无关,只看参数列表

好处: 方便于阅读,优化了程序设计

示例:floatgetArea(float x){ }; 

double getArea(double y){ };

double getArea(float a, int b){ };(此三个方法就是同名函数/方法的重载)

PS:同一类中不能存在接收参数列表相同而返回值类型不同的重载方法.

 

3、数组:同一种类型数据的集合。其实数组就是一个容器

一维数组格式:a元素类型[] 数组名= new 元素类型[元素个数或数组长度];

               示例:int[] arr = new int[5];

      b元素类型[] 数组名= new 元素类型[]{元素,元素,……};

         示例:int[] arr = new int[]{3,5,1,7};

              int[] arr ={3,5,1,7};

数组中的数组:二维数组:  元素类型[][] 数组名= new 元素类型[ ] [ ];

二维数组格式:a、格式1int[] [] arr = new int[3][2];    

               (一个二维数组中有三个一维数组,三个一维数组的元素都只有2个。)

   b、格式2int[][] arr = new int[3][ ]; (可对三个一维数组分别进行初始化赋值)

  对其进行初始化:arr[0] = newint[3];     arr[1] =new int[1]; arr[2] = new int[2];

   c、格式3int[ ][ ] arr ={{3,8,2},{2,7},{9,0,1,6}}; 

注意:

    1、元素类型第一个[]是二维数组,第二个[]是一维数组的元素个数;

2、特殊写法情况:int[] x,y[];x是一维数组,y是二维数组

3、初始化值:一维数组的元素默认初始化值为0

而二维数组的元素是一维数组,则其默认初始化值为null ;(因为数组是引用数据类型)

例如:int[] []arr = arr[3][];   二维数组:arr[2]=null 一维数组:arr[2][]= 0; 

数组功能: .length 数组长度。

 

数组中的异常:

1、数组脚标越界异常(ArrayIndexOutOfBoundsException)

int[] arr = newint[2];     System.out.println(arr[3]);

访问到了数组中的不存在的脚标时发生。

 

2、空指针异常(NullPointerException)

int[] arr = null;     System.out.println (arr[0]);

arr引用没有指向实体,却在操作实体中的元素时。

 

数组常见操作

* 获取最值(最大值,最小值)

*排序(选择排序,冒泡排序)

* 折半查找(二分查找)

 

数组位置置换代码封装:(因为是操作数组中元素,所以要导入目的数组)

public static void swap(int[]arr, int a, int b) {

   int temp = arr[a];     //输入值要求为数组角标位,然后根据角标得对应数值进行置换。

   arr[a] = arr[b];

   arr[b] = temp;

}

 

四、内存结构:Java程序在运行时,需要在内存中的分配空间。为了提高运算效率,有对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式。

黑马程序员-Java基础总结03——Java基本语法(二)

栈内存:  用于存储变量名(即引用)与该变量在堆内存中对应数据的内存地址值,当数据使用完,所占空间会自动释放。

堆内存:  1、数组和对象,通过new建立的实例都存放在堆内存中。

2、每一个实体都有内存地址值;

3、实体中的变量都有默认初始化值

4、实体不在被使用,会在不确定的时间内被垃圾回收器回收。

其他:方法区(存储静态成员等),本地方法区,寄存器。