theboyaply

学,就硬学!

  • Home
  • Archives
  • Java
  • Maven
  • Docker
  • Kubernetes
  • JavaScript
  • ES6
  • Vue
  • 踩坑记录
  • noted

  • 搜索
element ui vue wsimport webservice npm mysql redis node nginx nfs ftp es6 开发工具 vscode 前端 javascript springboot 常见问题 tomcat oracle jenkins maven k8s Linux gitlab docker java

java基础五(数组的使用)

发表于 2020-01-05 | 分类于 Java | 0 | 阅读次数 771

介绍

  • 数组是多个相同类型数据的组合,实现对这些数据的统一管理
  • 数组中的元素可以是任何数据类型,包括基本数据类型和引用数据类型
  • 数组属于引用类型,数组数据是对象,数组中的每个元素相当于该对象的成员变量

数组的声明

// 动态声明:先声明,再赋值,此时每个元素值为int的默认值,即0
int[] arr = new int[4];
// 然后再挨个赋值
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
arr[3] = 4;

// 静态声明:定义数组的同时,给数组赋值。这种方式原理与动态声明一样,只是创建的时候在内存中帮我们进行了arr[0] = 1等操作
int[] arr = new int[]{1, 2, 3, 4};

// 定义数组变量时有两种形式,都是可以的
int arr[] = xxx;
int[] arr = xxx;

注意: 如果在new int[]里面声明了数组的长度,后面不可再使用{}。即这种写法是错误的new int[4]{}
对于基本数据类型而言,默认初始化值各有不同。对于引用数据类型而言,默认初始化值为null

以上两种声明数组方式,都是先在堆空间中new一个数组对象,并且每个元素的默认值都为0(int默认值为0),然后在栈空间中创建一个名为arr的引用变量,然后再挨个赋值 arr[0] = 1; arr[1] = 2;等等。其内存结构如下:

声明数组内存结构图.png

二维数组

我们常见的二维数组声明方式大多如下所示:

int[][] arr = new int[4][4];
int[][] arr = new int[][]{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}, {10, 11, 12}};

但其实我们可以这样来理解它的创建方式:

// 先声明一个二维数组,每个元素默认为null
int[][] arr = new int[4][];
// 然后将每个元素值改为一个数组对象
arr[0] = new int[4];
arr[1] = new int[4];
arr[2] = new int[4];

其内存结构图如下:

二维数组内存结构图.png

值得注意的是,二维数据所创建的元素值是引用类型的,所以在初始化之前不能引用否者会出现空指针异常,比如

int[][] i = new int[4][];
i3[0][0] = 12;
# java
java基础四(使用异或运算交换两变量值)
java基础六(两种排序方法)
  • 文章目录
  • 站点概览
theboyaply

theboyaply

好记性不如烂笔头

184 日志
13 分类
27 标签
Github E-mail
Creative Commons
0%
© 2019 — 2023 theboyaply
由 Halo 强力驱动
|
主题 - NexT.Gemini
湘ICP备19009291号

湘公网安备 43312402001034号