day09-数组

2.1递归函数

​ 递归:Recursion

​ 概念:一个方法自己调用自己

递归算法:

​ A.方法自己调用自己

​ B.要有出口,逐渐向出口靠近。

使用中可能出现的问题:Exception in thread "main" java.lang.StackOverflowError,栈空间溢出异常。
//递归函数
public class TestRecursion{
	public static int getsum(int n){
		System.out.println("*");
		if (n == 1){
			return 1;
		}else{
			return getsum(n - 1) + n;
		}
	}
	public static void main(String args[]){
		int res = getsum(5);
		System.out.println(res);//15
	}
}

2.2 数组:

2.2.1 为什么要使用数组:

​ 如果说程序中,需要存储大量的相同类型的一组数据,如果直接使用变量来进行存储,每个变量只能存储一个值,就需要大量的变量。

1、代码过于臃肿
2、程序的可读性差
3、数据维护较差

2.2.2数组的概念:

就是一组相同数据类型的数据。内存上是开辟的连续的内存空间。

2.2.3 数组的特点:

1、定长。容量固定。数组一旦创建后,那么长度不能更改。(容量,长度,都是指存储的数量)
2、存储的数据类型必须都一致。
3、在内存中空间连续挨个。
4、数组是引用类型的数据,存在栈和堆的地址引用关系

java中两大数据类型:

A.4类8种基本数据类型

B.引用数据类型:数组 , 对象 , 集合......

2.2.4 数组的使用:

step1: 创建数组
step2: 使用数组:存储数组、访问数组

2.3.5 数组的语法:

创建数组的语法:

数据类型[] 数组名 = new 数据类型[长度、容量、个数];
int[] arr = new int[5];//声明int数组类型变量,定义变量名为a,分配长度为5的连续空间
数据类型 数组名[] = new 数据类型[长度];//也可以

使用数组的语法:

数组名[index],操作数组

arr[3] = 123//存储数据
System.out.println(arr[3]);//读取数据
index:因为一个数组存储了多个数据(也叫元素),每个元素都有一个下标,也叫索引,index。理解起来就是给每个数据排个编号,固定从0开始,0,1,2,3,4.。。。到长度减1。

注意点:

数组的下标不能超出这个范围。否则就会下标越界:java.lang.ArrayIndexOutOfBoundsException

2.2.6内存分析(拓展)

内存存储数据:

A. 栈:存放基本数据类型的变量,以及引用变量的引用,函数中变量所占用的空间,执行完就会销毁。

B. 堆:存放的是new出来的内容,执行后,堆里存储的内容(对象等),会被标记为垃圾,但是不会立即销毁,而是等系统回收机制GC回收。GC(Grabage Collection)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mKgNnrY8-1585232650666)(C:\Users\徐嘟嘟\AppData\Roaming\Typora\typora-user-images\image-20200326193533009.png)]

2.2.7 使用循环遍历数组

1、遍历:依次访问数组中每个元素。可以赋值,可以取值。
2、因为操作数组,就是数组名字配合下标,而下标固定都是从0开始,到长度减1。
for(int i = 0;i < arr2.length;i++){
	System.out.println(arr2[i]);
}

2.2.8 数组的长度

获取数组的长度:length,数组的一个属性。
数组名.length--->获取这个数组的长度

;i < arr2.length;i++){
System.out.println(arr2[i]);
}


## 2.2.8 数组的长度

```java
获取数组的长度:length,数组的一个属性。
数组名.length--->获取这个数组的长度
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值