五 JAVA中的数组、JAVA内存空间及递归的实现

五 JAVA中的数组、JAVA内存空间及递归的实现

一. 主要内容
五 JAVA中的数组、JAVA内存空间及递归的实现_第1张图片
二. 一维数组
(1)什么是数组?为什么要定义数组?
答:数组的产生就是为了简便运算过程,数组本身就是存储多个变量(元素)的东西(容器)这多个变量的数据类型要一致。数组既可以存储基本数据类型,也可以存储引用数据类型。
(2)定义数组的格式是怎么样的?
答:格式1: 数据类型[] 数组名;格式2: 数据类型 数组名[];
exp:
int[] a: 定义了一个int类型的数组a;
int a[]: 定义了一个int类型的a数组;
2.1 数组的初始化
(1)什么是数组的初始化?
答:Java中的数组必须先初始化,然后才能使用。所谓初始化:就是为数组中的数组元素分配内存空间,并为每个数组元素赋值。
(2)初始化有哪些分类?
答:分为动态初始化和静态初始化
a:动态初始化: 只指定长度,由系统给出初始化值
b:静态初始化: 给出初始化值,由系统决定长度
注意事项: 这两种方式,只能使用一种,不能进行动静结合
(3)初始化的格式(重要)
数据类型[] 数组名 = new 数据类型[数组长度];
数组长度就是数组中元素的个数。
举例: int[] arr = new int[4]; 定义了一个int类型的数组arr,这个数组可以存放4个int类型的值。
2.2 数组的遍历
所谓数组的遍历,就是依次输出数组中的每一个元素。

public class ArrayDemo8 {
    public static void main(String[] args) {
        int[] arr={3,9,9,30,54,36};
       // System.out.println(arr[0]);
        //遍历数组中的元素
        for(int i=0;i

三. JAVA内存空间
下面通过给一维 数组赋值来理解JAVA的内存空间

对内存的理解:
A:栈: 存放的是局部变量。局部变量:在方法定义中或者方法声明上的变量都是局部变量。
B:堆: 存放的是所有new出来的东西
特点:
a: 每一个new出来的东西都会为其分配一个地制值。
b: 每一个变量都有一个默认的值
byte,short,int,long 默认值为0
float,double 默认值为 0.0
char 默认值为’\u0000’
boolean 默认值为 false
引用数据类型 默认值为null
c: 使用完毕就变成了垃圾,等待垃圾回收器对其回收
C:方法区:(面向对象部分讲解)
D:本地方法区:(和系统相关)
E:寄存器:(cpu使用)
四. 二维数组
什么是二维数组?为什么要定义二维数组?
答:学校里每个班级里有很多学生,对于学生,我们可以通过数组进行存储。但学校里又有很多班级,我们也可以用数组进行存储。这就引入了二维数组。
二维数组即是每一个元素为一维数组的数组。
4.1 二维数组的格式
(1)格式一
数据类型[][] 变量名 = new 数据类型[m][n];
m表示这个二维数组有多少个一维数组
n表示每一个一维数组的元素个数
exp:
int[][] arr = new int[3][2];
定义了一个二维数组arr
这个二维数组有3个一维数组,名称是arr[0],arr[1],arr[2]
每个一维数组有2个元素,可以通过arr[m][n]来获取
表示获取第m+1个一维数组的第n+1个元素
(2)格式二
数据类型[][] 变量名 = new 数据类型[m][];
m表示这个二维数组有多少个一维数组
没有直接给出一维数组的元素个数,可以动态的给出。
(3)格式三
数据类型[][] 变量名 = new 数据类型[][]{{元素…},{元素…},{元素…}…};
简化版:
数据类型[][] 变量名 = {{元素…},{元素…},{元素…}};
该格式属于静态初始化:由我们指定具体的元素值,由系统给分配长度。
五. 递归
(1)递归概述: 方法定义中调用方法本身的现象
(2)递归注意事项
要有出口,否则就是死递归
次数不能太多,否则就内存溢出

你可能感兴趣的:(五 JAVA中的数组、JAVA内存空间及递归的实现)