【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

🌤️全篇总结

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

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

多模态(clip/ALBEF)

一. CLIP 1. clip的核心思想是通过海量的弱监督文本对通过对比学习,将图片和文本通过各自的预训练模型获得的编码向量在向量空间上对齐。 clip 的text encode: 在Text Encoder中,我们会对每个句子增加一个Class Token,用于整合特征&#x…

排序算法—堆排序

文章目录 堆排序堆思路过程建堆排序 代码实现 堆排序 时间复杂度:O(N*logN) 稳定性:不稳定(相同元素排序后的相对位置改变) 堆 堆的逻辑结构是一棵完全二叉树;堆的物理结构是一个数组,通过下标表示父子结…

推荐5款 深受欢迎 的AI开源项目

本周 GitHub圈选 项目推荐: InstantID(小红书AI图像生成工具) CWMP(ChatGPT Web Midjourney Proxy) aicover(AI红包封面制作神器) ML-YouTube-Courses(机器学习的学习库&#xff…

深入K8S实战

K8S: 深入K8S实战进阶篇 1、搭建 Kubernetes 集群 1.1、搭建方案 1.1.1、minikube minikube 是一个工具, 能让你在本地运行 Kubernetes。 minikube 在你的个人计算机(包括 Windows、macOS 和 Linux PC)上运行一个一体化(all-i…

Gartner 《2024安全和风险管理技术路线图》:高价值技术 DSP 进入广泛部署阶段

近期,Gartner 发布《2024年技术采用路线图:安全与风险管理》(以下简称:《路线图》),该信息图表识别了全球企业正在采用的 44 种与安全相关的技术,并根据采用阶段、部署风险和企业价值进行了映射…

HuggingFists-如何复用流程(二)

上一篇文章中,我们介绍了如何在HuggingFists系统中复用流程。如何定义流程,接收外部数据流以及写出数据流。通过接收和写出数据流实现流程的嵌套引用。在实际的应用场景中,被引用的子流程除了需要与主流程的数据流进行交互外,有时其流程内部的…

悬镜安全持续霸榜安全牛《中国网络安全全景图》供应链安全赛道

2024年4月12日,国内知名网络安全专业咨询机构安全牛正式发布了第十一版网络安全行业全景图(以下简称“全景图”),悬镜安全凭借沉淀多年的技术创新和应用实践,连续四年强势领跑数字供应链安全领域,引领DevSe…

MyBatis-Spring整合

引入Spring之前需要了解mybatis-spring包中的一些重要类; http://www.mybatis.org/spring/zh/index.html 什么是 MyBatis-Spring? MyBatis-Spring 会帮助你将 MyBatis 代码无缝地整合到 Spring 中。 知识基础 在开始使用 MyBatis-Spring 之前&#x…

Sorting Algorithms in Python (排序算法)

本篇文章主要介绍几种经典排序算法:冒泡排序、快速排序、选择排序、堆排序、插入排序、希尔排序、归并排序、桶排序和基数排序。并给出用python实现的算法代码。 目录 一、冒泡排序 二、快速排序 三、选择排序 四、堆排序 五、插入排序 六、希尔排序 七、归…

大厂Java笔试题之判断一个数是否自守数

题目:自守数是指一个数的平方的尾数等于该数自身的自然数。例如:25^2 625,76^2 5776,9376^2 87909376。 请求出n(包括n)以内的自守数的个数 数据范围: 1≤n≤10000 输入描述: int型整数 输出描述&…

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

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

怎样关闭谷歌浏览器自动更新,亲测ok

步骤一 在服务中禁用Google更新 步骤二 Chrome更新是利用Update文件夹里的升级程序来升级的,需要要删除里面的文件,再让Chrome没法在Update文件夹里继续自动生成更新程序。所以还要清空Update文件夹并设置权限,让Chrome没有权限修改这个文件…

分享|为什么说Temu项目是蓝海项目?

在当今日新月异的互联网行业中,Temu项目以其独特的商业模式和前瞻性的市场布局,迅速崛起成为一颗耀眼的新星。它被业内普遍认为是一片尚未被完全开发的蓝海,具有巨大的市场潜力和发展空间。那么,为什么说Temu项目是蓝海项目呢? 首…

爬虫的目的是做什么

通过网站域名获取HTML数据解析数据,获取想要的信息存储爬取的信息如果有必要,移动到另一个网页重复过程 这本书上的代码的网址是 : GitHub - REMitchell/python-scraping: Code samples from the book Web Scraping with Python http://shop.…

Linux sed

文章目录 1. 基本功能2.sed替换ssed配合grep和管道操作符的例子 3.sed中的删除和添加3.1 d删除3.2 a i添加添加多行 4.sed行替换替换包含某字符的行 5.单字符替换 y6. p打印命令打印含有目标字符的行sed中包含多个指令,使用{} 7.sed w 写入文件8.sed r 读取文件9.se…

【数据结构】第三节:单链表

前言 本篇要求掌握的C语言基础知识:指针、结构体 目录 前言 单链表 概念 对比链表和顺序表 创建链表 实现单链表 准备工作 打印链表 创建节点并初始化 尾插 二级指针的调用 尾插代码 头插 尾删 头删 查找(返回节点) 在指定位…

Blender表面细分的操作

在使用Blender的过程中,刚开始创建的模型,都会比较少面,这样操作起来比较流畅,减少电脑的计算量,当设计快要完成时,就会增加表面细分,这样更加圆滑,看起来更加顺眼。 比如创建一个猴头,它会默认显示如下: 从上图可以看到,有一些表面会比较大,棱角很多。 这时候你…

java:Java类与对象(继承篇)

前言: 为什么要继承? 如:创建两个类,一个猫类,一个狗类,猫与狗都有眼睛,嘴巴,鼻子这些相同的属性,为了避免代码重复我们可以通过创建一个动物类,包含这些重复…

更改android 安装的sdk版本

打开sdk manager 勾选show details 就可以选择了。

CTF之comment

网站的登录框里有提示 账号:zhangwei 密码:zhangwei***(后三位要自己猜) 用burpsuit抓包爆破发现密码为zhangwei666 进去后就一个留言榜(目前没发现怎么用) 扫一下网站发现git泄露 1.下载 进入root用户&…