Java笔记06——数组的定义和使用

目录

1. 数组的基本使用方法

1.1 什么是数组?

1.2 创建数组

1.3 获取数组的长度

1.4 for each 循环

1.5  匿名数组

1.6 数组拷贝

2.数组作为方法的参数

 2.1理解引用类型(重点/难点)

2.2 认识 null

2.3 初识 JVM 内存区域划分(重点)

总结一

5. 二维数组(了解就行)

1. 数组的基本使用方法

1.1 什么是数组?

. 数组是一种数据结构, 用来创建存储同一类型值的集合。通过一个整型下标可以访问数组中的每一个值。

.例如, 如果假设 a 是一个整型数组 a[i] 就是数组中下标为 i 的整数。(相当于在系统空间中开辟了一块 连续的 ‘房间’下标 i 就相当于对应房间的钥匙,不同的 i(钥匙)都对应着不同的房间

什么是数据结构:

简单来说:就是把一堆数字保存起来的结构就是数据结构 

数据结构关心的是如何高效的读写数据

注释:在 Java 中, 数组中所有的变量必须是 相同类型

       在声明数组变量时, 需要指出数组类型 ( 数据元素类型紧跟 [ ]) 和数组变量的名字。下面声明了整型数组 a

        int[ ] a;

不过, 这条语句只声明了变量 a, 并没有将 a 初始化为一个真正的数组。应该使用 new 运算符创建数组。 int[ ] a = new int[100];

     这条语句创建了一个可以存储 100 个整数的数组。数组长度不要求是 常量newint[n] 会创建 一个长度为 n 的数组。(也可以是我们自己创建的变量 n 。跟C语言不一样,C语言规定了必须是 常量)

注释:可以使用下面 两种形式 声明数组

  int[ ] a;    或     int a[ ];

大多数 Java 应用程序员喜欢使用第一种风格, 因为它将类型 int[ ] ( 整型数组)与变 量名分开了。

1.2 创建数组

基本格式:

    动态初始化:     标准写法就是这两种,动态的。

1. 数据类型[ ] 数组名称 = new 数据类型 [ N ] ; //创建可以存储 N 个值的 数组

2. 数据类型[ ] 数组名称 = new 数据类型 [ ] { 初始化数据 };   // 自定义内容

  静态初始化

3. 数据类型[ ] 数组名称 = { 初始化数据 }; // 上面第二种方法的简写,本质一样。

数组的静态初始化:其实就是语法糖,javac编译之后,任然是动态初始化,两者没有任何区别。

语法糖:只存在编译期之前的语法,编译器为了方便程序员简化写法

证明两者的一样: 可以使用Idea自带的控制台。

方法:在想编译的java文件,右击,找到 Open ln, Explorer。然后javac 文件名字 编译后会生成 class文件。点击查看即可。

 

代码示例:

public class Test_4_6 {
    public static void main(String[] args) {

        // 动态初始化
        int[] arr1 = new int[10]; // 开辟了可以存储 10个 整数的数组
        int[] arr2 = new int[]{1,2,3}; //自定义数组里面的内容

        // 静态初始化
        int[] arr3 = {1,2,3};
    }
}

注意事项:

1.  初始化后 数组里元素个数就是初始值的个数

2.  不能既 指定 开辟空间的数,同时又初始化元素内容。

就是只能 创建一个数组,并指定个数 ; 或者 创建一个数组,进行初始化赋值

例如我想开辟 10个空间大小,且初始化前三个空间的内容。

 注释:(可以先创建数组,然后再进行赋值语句)

3.这个数组的下标从 0 ~ 9 (不是 1 ~ 10 )。一旦创建了数组,就可以给数组里的元素赋值。

3.1 那么我们应该如何赋值呢?

基本格式:

 使用数组名称[要访问的元素相较于第一个元素的偏移量].

或者这么说:

使用数组名称[元素的索引]

例如 我们用循环赋值:

 4.  静态初始化 对比 动态初始化 是一种 简化书写形式。

      在使用这种语句时,不需要调用 new。   如: int[ ] arr3 = {1,2,3};

 5.  创建一个数组时,如果没有指定其 初始化的内容,都会自动初始化

      创建一个数字数组时, 所有元素都会初始化为 0

      创建一个boolean 数组的元素会初始化为false

      创建一个 对象数组 的元素则初始化为一个特殊值 null。(后面会讲)

      这表示这些元素(还)未存放任何对象

1.3 获取数组的长度

想获得数组中的元素个数,可以使用 数组名称.length

代码示例:

格式是: 数组名 + .length 

注意事项:

1. 使用 [ ] 按下标 找到数组元素位置. 需要注意, 下标从 0 开始计数(如:第 5 个元素,下标则是 4)

2. 使用 [ ] 操作既能读取数据, 也能修改数据.

3. 读取数据决定不能 越界访问

 下标访问操作不能超出有效范围 [0, length - 1] , 如果超出有效范围, 会出现

“ array index out of bounds” 异常而终止执行

4.  一旦创建了的数组,就不能再改变它的大小了(可以改变元素内容)。

补充如果想在运行过程中扩展数组的大小, 就应该使用另一种数据结构—数组列表,在后面会介绍到。

1.4 for each 循环

什么是遍历数组?

所谓 "遍历" 是指将数组中的所有元素都访问一遍, 不重

  • 18
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值