day09——数组
一、上节课回顾
1、函数、方法
1、概念:一段具有特定功能的代码。可以被多次调用并执行。
可复用
2、作用:A:避免重复的代码,增强程序的可读性。B:增强程序的可维护性。
3、使用:
step1:先声明(定义),方法中的代码是不执行的。
step2:调用这个方法。才会执行这个方法中的代码。调用几次就执行几次。
4、位置:类里,其他的方法外。
5、语法:
声明方法的语法:
[修饰符1,修饰符2...]返回值类型/void方法名(形式参数列表){
方法体;
}
publicstaticvoidmain(String[]args){}
调用方法的语法:
方法名(实际参数);
注意点:实参一定严格匹配形参:按照顺序一一匹配,顺序,个数,类型
6、参数:当方法执行的时候,需要接受外部的数据。
形式参数:方法声明的时候,用于接受外部传入的数据。
实际参数:调用方法的时候,向方法中的形式参数进行赋值,所传入的具体的数据。
调用方法的时候:实参的数值要传递给形参,叫做传参。(参数传递)
结论:方法中哪些数据不确定,就声明为参数,几个数据不确定,就声明几个,多个参数使用逗号分隔开。
7、返回值:就是方法执行结束后,返回给调用处的结果数据。
一个方法最多只能返回一个数据,可以没有,声明方法的时候就写void。
一个方法如果声明了有返回值(非void),那么在方法中必须使用return语句将结果返回。
8、return语句的作用
A:将结果返回给调用处。
B:同时结束了该方法的执行。
9、return语句的注意点:
A:如果一个方法声明了有返回值,那么方法中必须使用return返回结果。
B:如果一个方法声明了有返回值,那么return后的数据类型,必须和声明的一致。如果声明上没有返回值,就是void,那么方法中可以使用return语句,但是不要返回数值,只是用于结束方法。
C:一个方法如果声明了有返回值,假如方法中有分支语句,循环语句,要保证无论执行那个分支,都要有return可以被执行到。
D:return后面不要再写语句:无法到达的语句。
10、递归方法:
概念:一个方法自己调用自己。
注意点:
A:要有出口。
B:要逐渐的向出口靠近。
11、总结
A:方法的三要素:返回值,方法名,参数列表。
B:返回值?一个方法执行后的返回给调用处的结果。类型
C:参数?一个方法中哪个数据不确定,就设计为参数。
D:方法如何实现?根据需求分析,一个方法往往只完成一件事。
E:方法也是一种封装。
class类名{
方法1的声明(){}
main(){}//入口
方法2的声明(){}
}
二、本节课内容
2.1、递归函数
递归:英文单词:Recursion
函数/方法,调用?
方法在有需要的位置调用即可。
一个方法中可以调用另一个方法。
一个方法中也可以自己调用自己。递归方法。
递归算法:
方法自己调用自己
要有出口,逐渐的向出口靠近
可能出现的问题:Exception in thread "main" java.lang.StackOverflowError,栈空间溢出异常。
2.2、数组
2.2.1 为什么使用数组
如果说程序中,需要存储大量的相同类型的一组数据,如果直接使用变量来进行存储,每个变量只能存储一个值,就需要大量的变量。
1、代码过于臃肿
2、程序的可读性差
3、数据维护较差
2.2.2 数组的概念
数组的概念:
就是一组相同数据类型的数据。内存上是开辟的连续的内存空间。
2.2.3 数组的特点?
1、定长。容量固定。数组一旦创建后,那么长度不能更改。(容量,长度,都是指存储的数量)
2、存储的数据类型必须都一致。
3、在内存中空间连续挨个。
4、数组是引用类型的数据,存在栈和堆的地址引用关系。
Java中:两大数据类型
基本:4类8种
引用:数组,对象,集合。。。。
2.2.4 数组的使用
step1:先创建数组
step2:使用数组:存储数据,访问数据。
2.2.5 数组的语法
创建数组的语法:
数据类型[] 数组名 = new 数据类型[长度、容量、个数];
数据类型 数组名[] = new 数据类型[长度];//也可以
使用的语法:
数组名[index],操作数组
index:因为一个数组存储了多个数据(也叫元素),每个元素都有一个下标,也叫索引,index。理解起来就是给每个数据排个编号,固定从0开始,0,1,2,3,4.。。。到长度减1。
数组的下标不能超出这个范围。否则就会下标越界:java.lang.ArrayIndexOutOfBoundsException
2.2.6 内存分析(扩展)
内存:存储数据
A:栈,存放的是基本数据类型的变量,以及引用类型变量的引用。
特点:函数中的变量所占用的空间,执行之后就会销毁。
B:堆,存放的是new出来的东西。
特点:执行之后,堆里存储的内容(对象等),会被标记为垃圾,但是不会立即被销毁,而是等待系统的垃圾回收机制来回收(GC)。
JVM,GC(Grabage Collection)
2.2.7 使用循环遍历数组
1、遍历:依次访问数组中每个元素。可以赋值,可以取值。
2、因为操作数组,就是数组名字配合下标,而下标固定都是从0开始,到长度减1。
for(inti=0;i<arr2.length;i++){
System.out.println(arr2[i]);
}
2.2.8 数组的长度
获取数组的长度:length,数组的一个属性。
数组名.length--->获取这个数组的长度。
三、总结
1、递归方法:了解
一个方法自己调用自己,
递归方法要有出口,逐渐的向出口靠近。
2、数组:
概念:内存中连续的空间。存储一组相同的数据类型。
使用:
语法:
内存分析:
遍历:
长度: