数组的定义

数组是相同类型数据的有序集合。

简单理解就是:数组是由若干个相同类型的数据,按照一定的顺序组合而成的。数组中的每一个数据我们可以称为元素,每个元素可以通过索引(下标)来访问(获取)。

数组的一些特性

  1. java数组要求所有的元素具有相同的数据类型,因此一个数组只能存储一种数据类型的数据,而不能存储多种数据类型的数据。比如你这个数组是int类型的数组,那这个数组就不能存储boolean float string等其他类型的数据,只能存储int类型数据。(这里要注意Object类型的数组,由于Object类是所有类的父类,由于继承关系,所以看上去可以存储不同类型的数据)
  2. .数组的长度是固定的,一旦数组初始化完成,数组在内存中所占用的空间就被固定下来不可改变。
  3. java数组既可以存储基本类型的数据,也可以存储引用类型的数据,只要所有的数组元素具有相同的类型即可。(数组也是一种数据类型,它本身是一种引用类型)
  4. 数组初始化后数组元素必须有值,如果不指定元素的值,系统会自动为每个元素设置默认值。

声明数组

java数组有两种格式来声明数组:

  1. type [ ] arrayName => 数组的数据类型 [ ] 数组的名称
  2. type arrayNmae [ ]

数组是一种引用类型的数据,当我们声明一个数组类型的变量(int [] num)时,仅仅表示定义了一个变量(num),数组还未真正创建, 这个变量还未指向任何有效内存,所以这个数组还无法使用,只有对数组进行初始化后才可以使用。

数组的初始化

数组的初始化有两种方式:

  1. 静态初始化:int [ ] num = new int[ ]{1,2,3} 或 int [ ] num = {1,2,3} 初始化时由程序员显式的指定每个数组元素的初始值,由系统计算数组的长度。
  2. 动态初始化:int [ ] num = new int[3] 初始化时由程序员指定数组的长度,由系统为数组元素分配默认值。

系统分配的默认值规则如下:

数组元素的类型是基本数据类型中的整数型(byte,short,int,long)则数组元素默认值为 0

数组元素的类型是基本数据类型中的浮点型(float,double)则数组元素默认值为 0.0

数组元素的类型是基本数据类型中的字符型(char)则数组元素默认值为 ;

数组元素的类型是基本数据类型中的布尔型(boolean)则数组元素默认值为 false

数组元素的类型是引用类型(类,接口,数组)则数组元素默认值为 null

注意:不能同时使用静态初始化和动态初始化int [ ] num = new int[3]{1,2,3}

数组遍历

数组的遍历我们可以使用for循环和foreach循环,要注意foreach循环中无法修改数组元素

public static void main(String[] args) { int [] num = {1,2,3,4}; for(int n : num){ //修改数组元素都为6 n = 6; } System.out.println(num[1]);//结果不变仍为2}

数组的内存分析

对于以下代码:

//声明一个int类型的数组,变量名为intArr1int [] iArr; //初始化这个数组iArr= new int[5];//以上可以简写为int [] iArr= new int[5];

首先执行 int[ ]iArr; 在栈内存中定义了一个空引用也就是变量iArr,此时变量iArr并未指向任何有效内存,所以此时数组无法使用,如图

当执行iArr = new int[5]; 进行动态初始化之后,系统负责为该数组分配内存空间,并分配默认初始化值,然后将这个内存空间的地址赋值给变量iArr

这里要注意,对于基本数据类型的数组,数据存储在对应的数组元素中。而对于引用类型的数组,数组对应的元素存储是数据的引用(地址)

多维数组

java中对于多维数组可以简单理解为数组中嵌套数组。

比如二维数组,我们可以理解为在一维数组中保存的元素类型也是一个数组。

多维数组的声明同样按照数组声明的方式 type [ ] arrayName(或type arrayNmae [ ])

这里的类型type就变成了数组类型,比如int[ ][ ] nums = new int[2][3];这里type=>int[ ]

下期我们手写一个动态数组,改变数组长度固定的缺点

---------本文源于日常学习笔记记录,如有错误欢迎批评指正

java二维数组遍历后转为一维数组_java数组(一)相关推荐

  1. java二维数组遍历后转为一维数组_[基础篇]-基础知识整理-05-数组基本概念

    数组 数组是大部分编程语言所支持的数据结构,Java也支持数组,Java的数组是一种引用类型的变量,Java程序通过数组引用变量来操作数组,包括获取数组的长度,访问数组的值等. 数组的基本概念 数组是 ...

  2. java二维数组遍历后转为一维数组_Excel 数组

    序 本篇图文所用的软件是微软的Excel,但提及的内容在 WPS 表格也适用,若有不同的会单独指出. 另外,图文由以下部分组成 数组概念 数组创建 数组运算 数组概念 数组就是单元的集合或是一组处理的 ...

  3. java二维数组排序先行后列,数组知识点归纳

    ◆◆◆一.理解一维数组的定义和应用,了解二维数组和控件数组: 1.数组的概念:数组并不是一种数据类型,而是一组相同类型数据的集合. 用一个统一的名字(数组名)代表逻辑上相关的一批数据,每个元素用下标变 ...

  4. java二维整型数组 各行和排序_java:已知我有一个二维数组,直接输入全部数据,怎么对数组的每行进行升序排序...

    展开全部 书写完毕,采纳即可. import java.util.Arrays; import java.util.Comparator; import java.util.Scanner; publ ...

  5. java二维数组遍历与元素查找

    java二维数组 格式 数据类型 [ ][ ] arrayName = new 数据类型[一维数组的个数][每个一维数组的长度] 例如: int [ ][ ] array = new int [2][ ...

  6. java二维数组的遍历

    java二维数组的遍历 /* * java二维数组的遍历 * 二维数组,数组座位数组元素类型的数组,数组的数组 * */ public class Test14 {public static void ...

  7. Java二维数组赋值

    Java二维数组是指由多个一维数组组成的数组结构.它可以看作是一个表格,其中行表示数组中的第一个维度,列表示第二个维度. 可以使用两个方括号([ ] [ ])来声明和访问Java二维数组中的元素. 例 ...

  8. Java二维数组实现学生管理系统

    Java二维数组实现学生管理系统 一.预备知识 1.二维数组的创建1) DataType [][] name=new DataType[10][];2) DataType [][] name=new ...

  9. 杰神之JAVA二维数组(案例:走迷宫)

    Java二维数组(案例:走迷宫) 二维数组 数组的数组-二维数组的每一个元素是一个一维数组 定义方式: 数据类型[][] 数组名 = new 数据类型[长度][长度]; 数据类型[][] 数组名 = ...

最新文章

  1. RPC-client异步收发核心细节?
  2. C++ Primer 5th笔记(chap 19 特殊工具与技术)异常类层次
  3. conda init 关闭和重启shell_TP5实战源码 通过shell建立PHP守护程序
  4. hdu 4322 最大费用流
  5. java的equals方法_Java Date equals()方法与示例
  6. 让PHP开发者事半功倍的十大技巧
  7. 团队作业——Alpha冲刺 4/12
  8. 【1】Keras复习之模型,层,训练,评估与预测
  9. [ThinkPHP]打开页面追踪调试
  10. Windows10(MSN)天气数据爬取
  11. ldap 统一认证 java_LDAP统一用户认证
  12. 随机游走模型 matlab,随机游走matlab程序
  13. 多功能日期查询小工具
  14. 飞浆论文复现:用于图像到图像翻译的具有自适应层实例化的非监督的生成对抗网络
  15. axis.jar的应用
  16. iPadPro看电影之MKV转MP4视频格式教程
  17. 如何批量打印流水且重复的条码数据
  18. awk——awk基础介绍
  19. SSL证书概述与配置
  20. Vue移动端H5生成二维码功能(qrcodejs2)

热门文章

  1. 人生哲理---人的一生
  2. 我也来“办”团购网站
  3. GPS(rinex格式)数据解析详细解读
  4. 网页设计期末作业,基于HTML+CSS+JavaScript超酷超炫的汽车类企业网站(6页)
  5. Learning to Find Good Correspondences 18‘CVPR 论文阅读笔记
  6. 用R语言写一颗圣诞树
  7. Python数据特征分析-对比分析
  8. application.properties 和application.yml
  9. java计算机毕业设计ssm冷链物流管理系统的设计与开发90b3l(附源码、数据库)
  10. Shell基础之Shell概述、echo命令