一、函数的概念
1、什么是函数
函数就是定义在类中的具有特定功能的一段独立小程序,并能被多次使用
定义函数的目的:提高代码的复用性
2、函数定义的格式
例:
注意:函数的返回值类型如果是void时,return语句可以省略不写;void表示的是没有返回值的情况
二、函数的重载
重载的表现就是同一个类中 有多个同名函数
如何区分重载?主要看参数类型的排列组合(顺序,个数)
参数的类型的顺序和个数是否不一样
三、数组的定义
数组是同一种类型数据的集合;即能够存放多个相同类型的数据的容器。
数组的两种创建方式
(1)1Int [] arr = new int[3];
(2)Int [] arr={1,2,3,4,5};
数组的特点:可以存储多个数据,而且可以对数据进行编号,从0开始。操作元素完成可以通过编号(索引)完成。
Int [] arr1=arr;//这个语句其实是把数组的元素的首地址赋给arr1;如果你对arr1进行操作,arr数组也会产生相应变化。
四、数组内存图解
1、Java对内存空间的划分:五部分:栈,堆,方法区,本地方法区,寄存器。
注意;方法存储在方法区,但是方法运行时,是要进栈的。常量池在方法区中。
2、栈内存:存储都是局部变量。只要是在主函数和方法中定义的变量都是局部变量。一旦变量的生命周期结束该变量就被释放。
3、堆内存:存储都是实体(对象),每一个实体都有一个首地址值。堆内存的变量都有默认初始化值。不同类型不一样。当实体不在使用时,就会被垃圾回收机制处理。
4、各种数据类型数组的初始化值
int-0
double-0.0
boolean-false
char-'\u0000'
五、数组的常见问题
1、ArrayIndexOutOfBoundsException(数组越界):访问到了数组不存在的索引时,会发生该异常
2、NullPointerException(空指针异常):当使用没有任何实体指向的引用变量操作实体时,运行会发生该异常,图解如下:
六、二维数组
二维数组定义
int[][] arr = new int[3][2];
定义了名称为arr的二维数组, 二维数组中有3个一维数组,每一个一维数组中有2个元素, 一维数组的名称分别为arr[0], arr[1], arr[2]。
二维数组的内存图解:
内存图解说明:
int[][] arr = new int[3][];
二维数组中有3个一维数组,每个一维数组都是默认初始化值null,可以对这个三个一维数组分别进行初始化。
arr[0] = new int[3];
arr[1] = new int[1];
arr[2] = new int[2];