Java基础--数组
数组的介绍及动态初始化
数组概念:
数组是存储同一种数据类型多个元素的容器。
数组既可以存储基本数据类型,也可以存储引用数据类型。
数组的定义格式:
格式1:数据类型[] 数组名;
格式2:数据类型 数组名[];
动态初始化:
初始化时只指定数组长度,由系统为数组分配初始值。
格式:数据类型[] 数组名 = new 数据类型[数组长度];
数组长度其实就是数组中元素的个数。
举例:
int [] arr = new int[3];
定义了一个int 类型的数组,可以存放3个int类型的值,3也是数组的长度
数组内存结构及静态初始化
jvm的划分:
Java 程序在运行时,需要在内存中的分配空间。为了提高运算效率,就对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式。
栈 存储局部变量
堆 存储new出来的东西
方法区 (面向对象进阶讲)
本地方法区 (和系统相关)
寄存器 (给CPU使用)
数组在内存中运行图:
数组经典案例-不死神兔
需求:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,
-
假如兔子都不死,问第二十个月的兔子对数为多少?
-
规律:
第二个月:1
第三个月:2
第四个月:3
第五个月:5从第三个月开始每个月都是前两个月之和;
代码:
public static void main(String[] args) {
int[] arr=new int [20];
//给前两个月的兔子数量赋值
arr[0]=1;
arr[1]=1;
//从第三个月开始,根据规律赋值
for (int x=2;x<arr.length;x++){
arr[x]=arr[x-1]+arr[x-2];
}
//第20个月,就是输出arr[19]
System.out.println(arr[19]);
}
结果是:6765对