博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

JavaEE - 03数组

Posted on 2020-11-30 22:31  Kingdomer  阅读(89)  评论(0编辑  收藏  举报

JavaEE - 03数组

(1)概述

数组(Array),是多个相同类型数据按照一定顺序排列的集合,并使用一个名字命名,通过编号的方式对数据进行统一管理。

(1.1)数组常见概念

  • 数组名
  • 下标(或索引)
  • 元素
  • 数组的长度

> 数组本身是引用数据类型,而数组中的元素可以是任何数据类型,包括基本数据类型和引用数据类型。
> 数组是一种简单的数据结构,线性结构。数组是一个容器,可以用来存储其他元素。
> 创建数组对象会在内存中开辟一整块连续的空间,而数组名中引用的是这块连续空间的首地址。
> 数组的长度一旦确定,就不能修改。扩容时,新建一个新的数组,将原来的数组元素进行拷贝。
> 直接通过下标(或索引)的方式调用指定位置的元素,速度很快。
> 数组中的存储元素是统一的。

(1.2)数组的分类

> 按照维度: 一维数组、二维数组、三维数组、...
> 按照元素的数据类型分: 基本数据类型元素的数组、引用数据类型元素的数组(对象数组)

 

(2)一维数组的使用

 

(3)多维数组的使用

Java语言提供了支持多维数组的语法。

一维数组当成几何中的线性图形,二维数组相当于一个表格。二维数组的元素是一维数组。

从数组底层的运行机制来看,其实没有多维数组。

 

(4)数组中涉及的常见算法



数组中的每一个元素都是有下标的,有索引的,从 0 开始。
length 属性 获取 数组中元素的个数。
数组最后一个元素的下标 是 数组长度 -1 [a1.length -1]

获取第一个元素 a1[0]
获取最后一个元素 a1[a1.length -1]

元素占用的内存空间是固定的,
知道第一个元素的内存地址,Add + 偏移量 【(第几个元素)* 元素占用的内存空间】。

100元素 1000 元素 查找某个元素
消耗的时间 差不多

在数组中,插入一个元素。 删除一个元素。保持地址的连续性。挪动元素。

遍历元素 for(int i=0; i<=a.length-1; i++){a1[i];}
修改元素 a1[1] = 100;

动态初始化数组 最多存储4个元素。
int[] a1 = new int[4];

 

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

// 声明一维数组,存储int类型。
int[] a1 = {100,200,11,21,2132,400,6666}; //静态初始化

boolean[] b1 = {true, false, true};

String[] strs = {"ASS", "DASF","ADSF"};

byte[] b2 = {1,2,3};
char[] c1 = {'a','b','c'};


Object o1 = new Object();
Object o2 = new Object();
Object o3 = new Object();
Object[] o = {o1, o2,o3};




}
}

JVM
栈 堆


mian方法栈帧 创建对象100 200 150 300
int[] a1 = 0x1234
Object[] objs = 0x5689 O1地址 o2 地址 o3地址
Object对象 Object对象 Object对象

数组拿 首元素的内存地址 作为 数组对象的内存地址。

a1 引用 保存的是 一维数组的首元素的内存地址。