首页 技术 正文
技术 2022年11月16日
0 收藏 922 点赞 4,485 浏览 986 个字

一、数组概念

  数组即为多个相同数据类型数据的数据按一定顺序排列的集合。

二、数组的特点

  1、数组有数组名、索引、元素、素组长度;

  2、数组的元素可以是基本数据类型也可以是引用数据类型;

  3、数组的长度一旦确定便不可更改;

  4、数组的在内存中表现为连续的存储单元,数组名引用的是首地址;

三、数组分类

  按照维度分可以分为一维数组和多维数组;按照元素类型分可以分为基本类型元素数组和引用数据类型元素数组。

四、初始化默认值

五、一维数组

初始化

  1、动态初始化:动态初始化便是数组声明和赋值分别进行。例如:

int array[] = new int[3]; array[0] = 1; array[1] = 2; array[2] = 3;

  2、静态初始化:动态初始化便是数组声明和赋值同时进行。例如:

int []array = {1,2,3,4,5};

内存分析

  内存结构简图:

  用以下代码分析内存:

int []id = new int[3]; id[1] = 12; id[2] = 56; id[3] = 45;

  定义数组后:

  数组赋值以后:

  从上不难看出:当创建一个数组是(即new一个数组),首先在栈空间出现数组名,在堆空间开辟出连续的存储空间,并且数组名指向连续存储空间的首地址,存储空间的存储值均为默认值。

六、二维数组

概述

  上文中提到,数组的元素数据类型可以为基本数据类型和引用数据类型,一维数组中元素就是基本数据类型数据,例如int、double等;而二维数组实际上就是将一维数组的元素由基本数据类型变为了引用数据类型,在一维数组中在存入数组,所以从根本来看,不存在二维数组。

初始化

  1.1、动态初始化格式一:

int [][]array = new int[3][2];

  实际上即使有一个一维数组(也可以理解为三个一维数组),数组有三个元素,这三个元素均为数组,且数组均存了两个元素;图示如图:

  1.1、动态初始化格式二:

int [][]array = new int[3][];

  这里与方式一不同,方式一是一维数组的三个元素均为数组,而这里三个元素均为null,可以对每个一维数组进行初始化:

array[0] = new int[3]; array[1] = new int[6]; array[2] = new int[8];

内存分析

  二维数组的内存实则和一维数组没有本质区别。只是将一维数组存的数据改为了另一个数组的首地址。

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,494
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,908
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,740
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,495
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,133
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,297