java基础复习(五)

java基础第五天

1.数组是存储同一种数据类型的多个元素的集合,也可以看成一个容器

2.数组既可以存储基本数据类型,也可以存储引用数据类型。

3.数组定义格式

数据类型[] 数组名 = new 数据类型[数组的长度];

4.数组初始化

什么是数组初始化:

就是为数组开辟连续的内存空间,由系统给出初始化值。

如何对数组初始化:

动态初始化

int [] arr = new int[5];//动态初始化,在内存中开辟五块连续的内存空间

整数类型默认值为0

布尔型默认为false

浮点类型默认为0.0

引用数据类型默认为null

字符类型默认初始化值:char默认初始化值'u0000'

char在内存中占两个字节,是16个二进制位

u0000,每一个0其实代表的是16进制的0,那么四个0就是代表16个二进制位

5.内存

  • 存储局部变量

局部变量:定义在方法声明上和方法中的变量

  • 存储new出来的数组或对象

方法区

  • 面向对象方法部分讲解

本地方法区

  • 和系统相关

寄存器

  • 给CPU使用

栈小一点 - 堆大一点

栈-先进后出-子弹夹

1553926729696

6.实际的数组东西存在堆里面,然后堆告诉栈地址值,栈需要实际东西的时候去堆里面找。

7.

1553927270655

8.

静态初始化格式:

格式:数据类型[] 数组名 = new 数据类型[]{元素1,元素2,...}

int[] arr;//声明
arr = new int[]{11,22,33,44,55}//赋值

格式:

数据类型[] 数组名 = {元素1,元素2,...}

int[] arr ={11,22,33,44,55} //简写形式声明赋值在同一行

注意:

静态初始化中

int [] arr = new int[5]{11,22,33,44,55};//错误 不允许动静结合

9.两个常见小问题:越界和空指针

int[] arr = new int[5];
System.out.println(arr[5]);
//当访问数组中不存在的索引,会出现索引越界异常
int[] arr = new int[5];
arr = null;
System.out.println(arr[0]);
//当数组引用赋值为null.再去调用数组中的元素会出现空指针异常。

10.数组遍历

数组遍历:就是一次输出数组中的每个元素。

数组的属性:arr.length数组的长度

数组的最大索引:arr.length - 1 ;

11.数组获取最值(获取数组中的最大值最小值)

12.数组的反转(以数组一半为边界,最前和最后位置互换,依次往里推)

13.数组查表法(根据键盘录入索引,查找对应星期)

14.数组元素查找(查找指定元素第一次在数组中出现的索引)

15.二维数组

定义二维数组

int[][] arr = new int[3][2];
/*
这是一个二维数组
其中有3个一维数组
每个一维数组其中有两个元素
*/

16.画图演示二维数组

1553929518561

17.二维数组的遍历

外循环控制二维数组的长度,其实就是一维数组的个数

内循环控制的是一维数组的长度

18.案例演示

需求:公司年销售求和

某公司按照季度和月份统计的数据如下:单位(万元)

第一季度:22,66,44

第二季度:77,33,88

第三季度:25,45,65

第四季度:11,66,99

19.java中的参数传递问题及图解

传值还是传地址的问题。

基本数据类型的值传递,不改变原值,因为调用后就会弹栈,局部变量随之消失。

引用数据类型的值传递,改变原值,因为即使方法弹栈,但是堆内的数组对象还在,可以通过 地址继续访问。

java中到底是传值还是传地址

1.基本数据类型传递的值,引用数据类型传递的地址

2.java中只有传值,因为地址值也是值(出去面试都说这种看,支持者是高司令)

本文链接:

https://heyzen.club/index.php/J/215.html
1 + 4 =
快来做第一个评论的人吧~