Java学习笔记(七):数组
为什么需要数组?
有时候需要存储或处理一系列数据,数组就可以充当这样的角色,它在内存中是相连的数据,并且在栈中的引用只有一个,如果不用数组,那数据就得一个一个定义一个一个声明,浪费内存空间,显然不合理。
什么是数组?
数组可以存放多个同一类型的数据。数组也是一种数据类型,是引用类型。 即:数(数据)组(一组)就是一组数据
Java的数组要求所有的数组元素具有相同的数据类型。因此,在一个数组中,数组元素的类型是唯一的,即一个数组里只能存储一种数据类型的数据,而不能存储多种数据类型的数据
数组本身是一个引用数据类型,数组内存储的类型可以是基本类型 也可以是引用类型
总结:
①数组是一个引用数据类型
②数组是在堆内存中的一串连续的地址存在
③数组在初始化时必须指定长度
⑤堆内存的数组长度一旦确定 不能再次发生改变
⑥栈内存的变量中存储的是数组的地址引用
⑦数组内部存储的类型可以是基本的 也可一是引用
数组的特点:
(1)数组是一个对象,是一种引用数据类型。可以表示一组数据的集合。
(2)数组只能保存一种类型的数据。
(3)数组可以使用 new 关键字 进行初始化。
(4)数组中的每一个数据称为 元素 element。元素是在堆内存中分配的。而且是连续分配的。
(5)数组的每一个元素都有一个序号,专业的称谓:下标、索引、角标。下标是从0开始的、升序的、连续的、0序的。
(6)数组有一个属性:长度的属性,表示数组中元素的个数 该属性是 int 类型。 通过 数组名.length 来访问该属性。
(7)数组中元素的下标的取值范围是:[0~length-1]。
(8)通过new 关键字 在堆内存中元素被分配空间之后。每个元素被jvm 赋予默认值。
默认值规则:整数:0 浮点数:0.0 char:’\u0000’ boolean:false 引用数据类型:null。
(9)数组的每个元素通过 数组名[下标] 来访问。每个元素都是一个变量。和变量的用法一致。
(10)数组变量、数组引用 保存的是 数组的实际元素的在堆内存中的"首地址"。
(11)[ ] 代表的是 数组这种类型。
(12)求下标是 n 的元素的地址:首地址+元素字节数*n。 数组根据下标访问元素的效率非常快。(随机访问)。
(13)数组的长度可以是 0,但是不能是 负数。
(14)数组的长度一旦确定,就不能更改了。数组是定长的。
数组的声明和创建:
1.首先必须声明数组变量,才能在程序中使用数组。
数据类型[] 变量名;//强烈建议用这种命名
数据类型 变量名[];//只要知道就可以,c、c++是这种写法,要区分开来
2.Java语言使用new操作符来创建数组,语法如下:
3.数组的元素是通过索引访问的,数组索引从0开始
4.获取数组长度的方法:arrays.length
数组快速入门(案例分析)
数组的使用
使用方式 1-动态初始化:
动态初始化:初始化时程序员只指定数组长度,由系统为数组元素分配初始值
简单的来讲动态初始化就是指定长度
执行动态初始化时,程序员只需指定数组长度,即为每个数组元素指定所需的内存空间,系统将负责为这些数组元素分配初始值。
使用方式 2-动态初始化:
先声明数组
语法:数据类型 数组名[]; 也可以 数据类型[] 数组名;
创建数组
语法: 数组名=new 数据类型[大小];
使用方式 3-静态初始化:
静态初始化:初始化时由程程序员显示指定每个数组元素的初始值,由系统决定数组长度
简单的来讲静态初始化就是指定内容
静态初始化就是将数组的元素放到大括号中,元素之间用逗号(,)分隔
数组使用注意事项和细节:
(1) 数组是多个相同类型数据的组合,实现对这些数据的统一管理
(2) 数组中的元素可以是任何数据类型,包括基本类型和引用类型,但是不能混用。
(3) 数组创建后,如果没有赋值,有默认值
int 0,short 0, byte 0, long 0, float 0.0,double 0.0,char \u0000,boolean false,String null
(4) 使用数组的步骤 1. 声明数组并开辟空间 2 给数组各个元素赋值 3 使用数组
(5) 数组的下标是从 0 开始的。
(6) 数组下标必须在指定范围内使用,否则报:下标越界异常,比如int [] arr=new int[5]; 则有效下标为 0-4
(7) 数组属引用类型,数组型数据是对象(object)
案例分析:
数组拷贝
编写代码 实现数组拷贝(内容复制)
数组反转
把数组的元素内容反转。
数组添加/扩容/缩减
实现动态的给数组添加元素效果,实现对数组扩容。
数组的缩减和添加原理相同就不举例说明了
本文来自博客园,作者:她与剑意皆失,转载请注明原文链接:https://www.cnblogs.com/long99/p/15177252.html