热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Java数组基础

数组数组(Array):相同类型数据的集合。数组的定义格式:方式1(推荐,这种格式最常用,更能表明数组类型)数据类型[]数组名;例如:int[]array;这段代码的意思是:定义了

数组

数组(Array):相同类型数据的集合。

数组的定义格式:

  方式1(推荐,这种格式最常用,更能表明数组类型)

  数据类型[] 数组名;

例如:

int[] array;

这段代码的意思是:定义了一个int类型的数组,数组名叫array。[]这个中括号就是数组的标识,将中括号去掉就变成定义一个变量了

方式2

数据类型 数组名[];

例如:

int array[];


数组的初始化

动态初始化:初始化是仅指定数组的长度,由系统来为数组分配初始值

格式:数据类型[] 数组名 = new 数据类型[数组长度];

例如:int[] array = new int[10];

这段代码的意思是根据new关键字创建了一个int类型的数组容器,这个容器可以存储10个int类型的整数,这个容器被一个数组名叫array的数组所记录

静态初始化:初始化时手动为数组指定要存储的数据,系统会自动计算该数组的长度

格式1:数据类型[] 数组名 = new 数据类型[]{数据,数据,数据,....};

例如:int[] array = new int[]{1,2,3,4};

格式2:数据类型[] 数组名 = {数据,数据,数据,....};

例如:int array[] = {1,2,3,4};

两种初始化的区别:

动态初始化:手动指定数组长度,由系统给出默认初始化值。

静态初始化:手动指定数组元素,系统会根据元素个数,计算数组的长度


两种初始化都有不同的应用场景

Java数组是一种引用数据类型。数组变量并不是数组本身,而是指向堆内存中存放的数组对象。因此,可以改变一个数组变量所引用的数组

数组是否必须初始化?

  对于这个问题,关键在于要弄清楚数组变量和数组对象的差别。数组变量是存放在栈内存中的,数组对象是存放在堆内存中的。数组变量只是一个引用变量,他能够指向实际的数组对象。所谓的数组初始化并非对数组变量初始化,而是对数组对象进行初始化。

举个例子,int[] wangfugui,wangfugui就是老王给孩子起的名字,int[]就是这个孩子的种族,但他根本没有孩子,如果自己和老婆生一个的话这个就是使用new关键字创建的一个数组容器,就是:int[] wangfugui = new int[]{1,2,3,4},如果老王不想生孩子或者不想让孩子叫这个名字,但他想了这个好个名字又不想浪费,他就一直在等遇到一位靓仔,然后让靓仔当老王的儿子。这个就是改变一个数组变量所引用的数组,就是:

int[] wangfugui = new int[]{3,2,1};//int[] wangfugui;

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

wangfugui = array;

注意,如果数组变量想要能使用,该数组变量必须有引用的数组,或者初始化数组,不然使用该数组变量使用时会报错。就像老王给孩子想了一个好名字,但他根本就没有孩子。


数组运用基础

数组长度: java中的每个数组都有一个名为length的属性,表示数组的长度。数组长度一旦确定,在程序运行的过程中就不能改变长度。只能自己手动更改数组的长度

数组元素访问

数组变量访问方式

格式:数组名

数组内部保存的数组的访问方式

格式:数组名[索引]

索引是数组容器中空间的编号,和数组长度不同,数组长度是从1开始计数,而索引是从0开始记录,比如一个长度为5的数组,该数组中的索引就是0、1、2、3、4。

比如我们想访问array数组的第一个数据就是:array[0]

元素访问实例:

image

图中控制台打印的 [I@33e16fd 是这个数组在内存中的地址值

@:分隔符

[:当前空间是一个数组类型空间

I:当前数组容器中所存储的数据类型

133e16fd:十六进制内存地址

本文由樊兔教育图二UR整理发布,樊兔教育是一个泛互联网职业教育平台,官网地址:http://ftuedu.com/



推荐阅读
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 集合的遍历方式及其局限性
    本文介绍了Java中集合的遍历方式,重点介绍了for-each语句的用法和优势。同时指出了for-each语句无法引用数组或集合的索引的局限性。通过示例代码展示了for-each语句的使用方法,并提供了改写为for语句版本的方法。 ... [详细]
  • 本文总结了Java中日期格式化的常用方法,并给出了示例代码。通过使用SimpleDateFormat类和jstl fmt标签库,可以实现日期的格式化和显示。在页面中添加相应的标签库引用后,可以使用不同的日期格式化样式来显示当前年份和月份。该文提供了详细的代码示例和说明。 ... [详细]
  • LeetCode笔记:剑指Offer 41. 数据流中的中位数(Java、堆、优先队列、知识点)
    本文介绍了LeetCode剑指Offer 41题的解题思路和代码实现,主要涉及了Java中的优先队列和堆排序的知识点。优先队列是Queue接口的实现,可以对其中的元素进行排序,采用小顶堆的方式进行排序。本文还介绍了Java中queue的offer、poll、add、remove、element、peek等方法的区别和用法。 ... [详细]
  • 本文介绍了如何在给定的有序字符序列中插入新字符,并保持序列的有序性。通过示例代码演示了插入过程,以及插入后的字符序列。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 判断数组是否全为0_连续子数组的最大和的解题思路及代码方法一_动态规划
    本文介绍了判断数组是否全为0以及求解连续子数组的最大和的解题思路及代码方法一,即动态规划。通过动态规划的方法,可以找出连续子数组的最大和,具体思路是尽量选择正数的部分,遇到负数则不选择进去,遇到正数则保留并继续考察。本文给出了状态定义和状态转移方程,并提供了具体的代码实现。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 本文介绍了Java数组的定义、初始化和多维数组的用法。通过动态初始化和静态初始化两种方式来初始化数组,并讨论了数组的内存分配和下标的特点。同时详细介绍了Java二维数组的概念和使用方法。 ... [详细]
  • 本文探讨了C语言中指针的应用与价值,指针在C语言中具有灵活性和可变性,通过指针可以操作系统内存和控制外部I/O端口。文章介绍了指针变量和指针的指向变量的含义和用法,以及判断变量数据类型和指向变量或成员变量的类型的方法。还讨论了指针访问数组元素和下标法数组元素的等价关系,以及指针作为函数参数可以改变主调函数变量的值的特点。此外,文章还提到了指针在动态存储分配、链表创建和相关操作中的应用,以及类成员指针与外部变量的区分方法。通过本文的阐述,读者可以更好地理解和应用C语言中的指针。 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • 本文介绍了Java的集合及其实现类,包括数据结构、抽象类和具体实现类的关系,详细介绍了List接口及其实现类ArrayList的基本操作和特点。文章通过提供相关参考文档和链接,帮助读者更好地理解和使用Java的集合类。 ... [详细]
  • 猜字母游戏
    猜字母游戏猜字母游戏——设计数据结构猜字母游戏——设计程序结构猜字母游戏——实现字母生成方法猜字母游戏——实现字母检测方法猜字母游戏——实现主方法1猜字母游戏——设计数据结构1.1 ... [详细]
  • 标题: ... [详细]
author-avatar
虚线老母阳
推荐一首歌《春风十里》,我的个人订阅号:虚线老母阳
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有