【Java探索之旅】数组概念与初始化指南:动静结合

个人头像
🎥 屿小夏 : 个人主页
🔥个人专栏 : Java编程秘籍
🌄 莫道桑榆晚,为霞尚满天!

文章目录

  • 📑前言
  • 一、初识数组
    • 1.1 为什么要有数组?
    • 1.2 数组的的概念
  • 二、数组的创建及初始化
    • 2.1 数组的创建
    • 2.2 数组的初始化
    • 2.3 注意要点
  • 🌤️全篇总结

📑前言

数组是一种强大且常用的数据结构,它为我们提供了一种有效的方式来存储和管理大量相同类型的数据。通过数组,我们可以避免重复定义大量的变量,使代码更加简洁和高效。本文将带您深入探索数组的创建和初始化方法,帮助您更好地理解和运用数组在编程中的重要性和灵活性。

一、初识数组

1.1 为什么要有数组?

现在假设有五名同学的体育期末成绩,要将其存储起来你会怎么存?在你不了解数组的时候,你的代码可能是这样写的:

public static void main(String[] args){int score1 = 70;int score2 = 80;int score3 = 85;int score4 = 60;int score5 = 90;System.out.println(score1);System.out.println(score2);System.out.println(score3);System.out.println(score4);System.out.println(score5);
}

这样的代码是不存在错误的,但是存在了许多的重复,你需要不停的定义int类型和变量名,当少数只有几个数据的时候,你写的话可能还行,但是如果是30个、50个、100个同学的成绩要存起来呢?

大量的重复,你一定会敲到怀疑人生。

观察上述代码你会发现,这些数据的类型都是统一的,没有其他的类型掺杂。

这个时候我们就需要用到数组了。

1.2 数组的的概念

数组:可以将其看成一组相同类型数据的集合。并且在内存中是一块连续的空间。

在这里插入图片描述

这是一张简易的车库图,图中有每个车位的编号,并且都是连续的。(数组就好比这张图,连续存储统一的数据)

二、数组的创建及初始化

2.1 数组的创建

T[] 数组名 = new T[N];  
  • T:表示数组中存放元素的类型
  • T[]:表示数组的类型
  • N:表示数组的长度
int[] array1 = new int[10]; // 创建一个可以容纳10个int类型元素的数组
double[] array2 = new double[5]; // 创建一个可以容纳5个double类型元素的数组
String[] array3 = new double[3]; // 创建一个可以容纳3个字符串元素的数组

2.2 数组的初始化

动态初始化

在创建数组时,直接指定数组中元素的个数

int[ ] array = new int[10];

静态初始化

在创建数组时不直接指定数据元素个数,而直接将具体的数据内容进行指定

语法格式:T[] 数组名称 = {data1, data2, data3, …, datan};

int[] array1 = new int[]{0,1,2,3,4,5,6,7,8,9};
double[] array2 = new double[]{1.0, 2.0, 3.0, 4.0, 5.0};
String[] array3 = new String[]{"hell", "Java", "!!!"};

2.3 注意要点

  • 静态初始化虽然没有指定数组的长度,编译器在编译时会根据{}中元素个数来确定数组的长度。
  • 静态初始化时, {}中数据类型必须与[]前数据类型一致。
  • 静态初始化可以简写,省去后面的new T[]。
// 注意:虽然省去了new T[], 但是编译器编译代码时还是会还原
int[] array1 = {0,1,2,3,4,5,6,7,8,9};
double[] array2 = {1.0, 2.0, 3.0, 4.0, 5.0};
String[] array3 = {"hell", "Java", "!!!"};
  • 数组也可以按照如下C语言个数创建,不推荐

    该种定义方式不太友好,容易造成数组的类型就是int的误解[]如果在类型之后,就表示数组类型,因此int[]结合在一块写意思更清晰

int arr[] = {1, 2, 3};
  • 静态和动态初始化也可以分为两步,但是省略格式不可以

    注意省略格式不可以拆分, 否则编译失败

int[] array1;
array1 = new int[10];
int[] array2;
array2 = new int[]{10, 20, 30};//下列初始化会报错
int[] array3;
array3 = {1, 2, 3};
  • 如果没有对数组进行初始化,数组中元素有其默认值

    如果数组中存储元素类型为基类类型,默认值为基类类型对应的默认值,比如:

    如果数组中存储元素类型为引用类型,默认值为null

类型默认值
byte0
short0
int0
long0
float0.0f
double0.0
char/u0000
booleanfalse

🌤️全篇总结

数组作为编程中不可或缺的数据结构,为我们提供了一种便捷且高效的方式来存储和操作大量数据。通过动态初始化和静态初始化,我们可以灵活地创建和初始化数组,满足不同场景下的需求。在使用数组时,我们需要注意数据类型的一致性、初始化的方式选择以及数组元素的默认值等细节,以确保代码的正确性和可读性。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/620072.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UE4_导入内容_Alembic文件导入器

Alembic文件导入器 Alembic文件格式(.abc)是一个开放的计算机图形交换框架,它将复杂的动画化场景浓缩成一组非过程式的、与应用程序无关的烘焙几何结果。虚幻引擎4(UE4)允许你通过 Alembic导入器 导入你的Alembic文件,这让你可以在外部自由地创建复杂的…

【分享】linux下安装sunshine串流配置进行远程办公

前排提示教程内容比较短,废话比较多,需要看教程的建议直接跳目录 目录 前言(原因) 选择远程连接软件 三种连接软件的优劣以及体验 sunshine支持显卡 教程 注意事项 显示器 如果为远程部署 前言(原因&#xff0…

C#创建随机更换背景图片的窗体的方法:创建特殊窗体

目录 一、涉及到的知识点 1.图片资源管理器设计Resources.Designer.cs 2.把图片集按Random.Next方法随机化 3.BackgroundImage属性 二、实例设计 1. Resources.Designer.cs 2.Form1.Designer.cs 3.Form1.cs 4.生成效果 很多时候,我们需要每次打开窗体时能够…

【电子通识】吸锡带/线的作用和替代方法

吸锡带简介 吸锡带(或称吸锡线、脱焊织物)是手工焊接的好助手,手焊或维修时吸锡带能够去除电路板上多余焊锡,减少了电子产品的返工和修理的时间,降低了烙铁对电路板造成过热损伤的危险,因此是一个既廉价又有效的物品。 市面上卖的最多的的吸锡带类型如下所示: 吸锡带的选型…

推荐3个yyds的AI开源项目!

在这个数字化飞速发展的时代,有一堆人工智能开源工具,它们正悄悄地改变着我们的生活和工作方式。今天,我就带大家一起来深度了解几款近期大火的人工智能工具,看看它们是怎样为我们的生活带来便利和创新的。 马赛克杀手APISR 首先…

智能巡检软件解决方案的确定与实施

智能巡检软件解决方案主要围绕以下几个方面展开,以实现高效、精准、智能化的巡检工作: 大数据分析与AI诊断: 实时监控与预警:基于实时数据流,通过预设阈值或AI算法实时判断设备状态,触发预警通知&#xff0…

ArcGIS Pro 3D建模简明教程

在本文中,我讲述了我最近一直在探索的在 ArcGIS Pro 中设计 3D 模型的过程。 我的目标是尽可能避免与其他软件交互(即使是专门用于 3D 建模的软件),并利用 Pro 可以提供的可能性。 这个短暂的旅程分为三个不同的阶段:…

字节跳动大佬把Python入门知识点整理成手册了,高清PDF开放下载_字节跳动 python 自学笔记

前言 无论是学习任何一门语言,基础知识一定要扎实,基础功非常的重要,找一个有丰富编程经验的老师或者师兄带着你会少走很多弯路, 你的进步速度也会快很多,无论我们学习的目的是什么,不得不说Python真的是一…

IDEA pom.xml显示灰色并被划线

在使用 IDEA 进行开发的过程中,有时候会遇到 pom.xml 显示灰色并被划线的情况,如下图: 这一般是因为该文件被 Maven 忽略导致的,可以进行如下操作恢复: 设置保存后,可以看到 pom.xml 恢复了正常&#xff1a…

【面试题】s += 1 和 s = s + 1的区别

文章目录 1.问题2.发现过程3.解析 1.问题 以下两个程序真的完全等同吗? short s 0; s 1; short s 0; s s 1; 2.发现过程 初看s 1 和 s s 1好像是等价的,没有什么区别。很长一段时间内我也是这么觉得,因为当时学习c语言的时候教科书…

LabVIEW专栏六、LabVIEW项目

一、梗概 项目:后缀是.lvproj,在实际开发的过程中,一般是要用LabVIEW中的项目来管理代码,也就是说相关的VI或者外部文件,都要放在项目中来管理。 在LabVIEW项目中,是一个互相依赖的整体,可以包…

“易舟云”助推小微企业发展,智能记账好帮手!

在当今快速发展的商业环境中,小微企业面临着越来越多的挑战。其中,如何高效、准确地处理财务问题,一直是困扰小微企业的难题。然而,随着科技的进步,一款名为“易舟云”的智能记账工具正以其高效、便捷的优势,助推小微企业发展,开启智能记账的新篇章。 一、智能记账:让繁琐的财…