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

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

📑前言

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

一、初识数组

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  

类型

默认值

byte

0

short

0

int

0

long

0

float

0.0f

double

0.0

char

/u0000

boolean

false

🌤️全篇总结

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

33dcadccda9a4327a9541c4fd95c09fd.png

目录
相关文章
|
2月前
|
Java 编译器
java“变量 x 可能未被初始化”解决
在Java中,如果编译器检测到变量可能在使用前未被初始化,会报“变量 x 可能未被初始化”的错误。解决方法包括:1. 在声明变量时直接初始化;2. 确保所有可能的执行路径都能对变量进行初始化。
243 2
|
1月前
|
算法 Java 数据库连接
Java连接池技术,从基础概念出发,解析了连接池的工作原理及其重要性
本文详细介绍了Java连接池技术,从基础概念出发,解析了连接池的工作原理及其重要性。连接池通过复用数据库连接,显著提升了应用的性能和稳定性。文章还展示了使用HikariCP连接池的示例代码,帮助读者更好地理解和应用这一技术。
46 1
|
1月前
|
Java
Java 静态变量的初始化顺序
【10月更文挑战第15天】了解 Java 静态变量的初始化顺序对于正确编写和维护代码至关重要。通过深入理解初始化顺序的原理和细节,我们可以更好地避免潜在的问题,并提高代码的质量和可靠性。
|
2月前
|
存储 缓存 算法
Java 数组
【10月更文挑战第19天】Java 数组是一种非常实用的数据结构,它为我们提供了一种简单而有效的方式来存储和管理数据。通过合理地使用数组,我们能够提高程序的运行效率和代码的可读性。更加深入地了解和掌握 Java 数组的特性和应用,为我们的编程之旅增添更多的精彩。
33 4
|
2月前
|
存储 缓存 算法
提高 Java 数组性能的方法
【10月更文挑战第19天】深入探讨了提高 Java 数组性能的多种方法。通过合理运用这些策略,我们可以在处理数组时获得更好的性能表现,提升程序的运行效率。
33 2
|
2月前
|
存储 Java
Java“(array) <X> Not Initialized” (数组未初始化)错误解决
在Java中,遇到“(array) &lt;X&gt; Not Initialized”(数组未初始化)错误时,表示数组变量已被声明但尚未初始化。解决方法是在使用数组之前,通过指定数组的大小和类型来初始化数组,例如:`int[] arr = new int[5];` 或 `String[] strArr = new String[10];`。
88 2
|
2月前
|
存储 Java
什么是带有示例的 Java 中的交错数组?
什么是带有示例的 Java 中的交错数组?
53 9
|
2月前
|
Java
Java数组动态扩容和动态缩减
Java数组动态扩容和动态缩减
25 3
|
2月前
|
Java 编译器
【一步一步了解Java系列】:子类继承以及代码块的初始化
【一步一步了解Java系列】:子类继承以及代码块的初始化
137 3
|
2月前
|
存储 Java 程序员
【一步一步了解Java系列】:何为数组,何为引用类型
【一步一步了解Java系列】:何为数组,何为引用类型
30 1