1、方法的概述
简单的来说方法就是完成特定功能的代码块,作用:提高代码的复用性
格式:
修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2)
{方法体语句;return 返回值;
//参数的作用;完成此方法需要的前提条件
//如果方法没有返回值return语句可以省略}
实际参数;就是实际参与运算的;形式参数:方法定义上的,用于接收实际参数
2、方法的重载
方法重载的要求:
在同一个类中,方法名必须相同,参数列表必须不同(参数类型,参数个数,参数顺序),与返回值无关
3、数组
数组是存储同一数据类型多个元素的集合,它相当于一个容器
数组的作用:数组相当于一个容器,为了存储同种数据类型的多个值,可以存储基本数据类型也可以存储引用数据类型
格式:
数据类型 [ ] 数组名 = new 数据类型 [数组的长度]
数据类型 [ ] 数组名 = new 数据类型[ ]{给定的数组的值}
数组的空指针异常:访问; 为null的对象,null表示这个事物不存在,而不是说它是空值
数组的索引越界异常:访问了并不存在的索引
4、数组的内存图结构
虚拟机内存主要用的三部分:堆、栈、方法区
栈内存:存放方法及方法中的局部变量
堆内存:存方法对象
方法区:存放代码片段、常量池(常量池中存放的是字符串的值)、静态属性
解析:堆内存会给每一个new出来数组对象分配一个地址值,栈内存是通过这个地址值找到每一个数组对应的索引值的
解析:int arr3=arr2;表示数组二赋值给了数组三,由于数组二的地址值没有发生改变,所以这两个数组所指的是同一个地址,当arr3[0]发生变化时,arr2[0] 的值也发生了变化
5、数组的操作
(1)数组反转
原始的方法分析:
(1)互换多少次,长度/2次
(2)谁和谁互换,每一轮的首元素和尾元素互换
(3)如何互换,引入第三变量
6、二维数组
二维数组的元素是一个个的一维数组
格式:
(1)数据类型 [][] 变量名 = new 数据类型 [m][n];
int [][] arr = new int[3][2];
(2)数据类型 [][] 变量名 = new 数据类型 [m][];
int [][] arr = new int[3][];
(3)数据类型 [][] 变量名 = new 数据类型 [][]{{元素...},{元素...},{元素...}};
简写:数据类型 [][] 变量名 = new 数据类型 [][]{{元素...},{元素...},{元素...}};
int [][] arr = new int[][]{{11,22},{33,44},{55,66}};
int [][] arr = int[][]{{11,22},{33,44},{55,66}};
二维数组的内存图:
解析:同一维数组相同都是利用地址值的指向关系来确定是哪个元素
二维数组的遍历: