Java数组篇02——数组初始化及拓展

简介: Java数组篇02——数组初始化及拓展

Java数组篇02——数组初始化及拓展

无冥冥之志者,无昭昭之明,无昏昏之事者,无赫赫之功。——荀子

本篇笔记简介0.思维导图-->1.数组初始化-->2.数组边界-->3.小结-->4.拓展补充

目录

0、思维导图

1、数组初始化

数组初始化主要分为三种:静态初始化动态初始化以及数组的默认初始化

下面逐一介绍:

1.1静态初始化

除了用new关键字来产生数组以外,还可以直接在定义数组的同时就为数组元素分配空间并赋值。

int[] a = {1,2,3};
Student[] stus = {new Student(1,1),new Student(2,2)};

1.2动态初始化

数组定义、为数组元素分配空间、赋值的操作、分开进行

int[] a = new int[2];
a[0]=1;
a[1]=2;

1.3数组的默认初始化

数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被隐式初始化。

ps: 隐式初始化,可以理解为默认初始化。

public static void main(String[] args) {
    int[] a=new int[2];
    boolean[] b = new boolean[2];
    String[] s = new String[2];
    System.out.println(a[0]+":"+a[1]); 
    System.out.println(b[0]+":"+b[1]); 
    System.out.println(s[0]+":"+s[1]); 
  }

输出结果,如图

2、数组边界

下标的合法区间:[0, length-1],如果越界就会报错

public static void main(String[] args) {
int[] a=new int[2];
System.out.println(a[2]);
}

输出结果,如图

★ps: ArrayIndexOutOfBoundsException : 数组下标越界异常!

3、小结

  • ① 数组是相同数据类型(数据类型可以为任意类型)的有序集合。
  • ② 数组也是对象。数组元素相当于对象的成员变量。
  • ③ 数组长度的确定的,不可变的。如果越界,则报:ArrayIndexOutofBounds。

4、拓展补充:Java内存

4.1 栈(Stack)

在栈内存中保存的是堆内存空间的访问地址,或者说栈中的变量指向堆内存中的变量。

连续的存储空间,遵循后进先出的原则,用于存放局部变量。

4.2 堆(Heap)

堆内存用来存放由new创建的对象实例和数组。

不连续的空间。

4.3 方法区(Method)

方法区是各个线程共享的内存区域,它用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据

方法区在堆空间内,用于存放

 ①类的代码信息;

 ②静态变量和方法;

 ③常量池。

思维图示:


作者:Code_流苏(一个喜欢古诗词和编程的Coder😊)

★喜欢的话,还请多多点赞与关注!❤ 感谢支持!❤

笔记更新随个人学习进度而进行,欢迎评论交流学习!


目录
相关文章
|
28天前
|
Java
|
2天前
|
存储 Java 数据处理
Java 数组的高级用法
在 Java 中,数组不仅可以存储同类型的数据,还支持多种高级用法,如多维数组(常用于矩阵)、动态创建数组、克隆数组、使用 `java.util.Arrays` 进行排序和搜索、与集合相互转换、增强 for 循环遍历、匿名数组传递以及利用 `Arrays.equals()` 比较数组内容。这些技巧能提升代码的灵活性和可读性,适用于更复杂的数据处理场景。
|
3天前
|
存储 Java
java的Excel导出,数组与业务字典匹配并去掉最后一个逗号
java的Excel导出,数组与业务字典匹配并去掉最后一个逗号
19 2
|
23天前
|
安全 Java 关系型数据库
Java连接Mysql SSL初始化失败
Java连接Mysql SSL初始化失败
|
24天前
|
Java
Java数组的应用场景
Java数组的应用场景
28 1
|
24天前
|
存储 机器学习/深度学习 Java
Java数组
Java数组
25 1
|
20天前
|
存储 开发者 C#
WPF与邮件发送:教你如何在Windows Presentation Foundation应用中无缝集成电子邮件功能——从界面设计到代码实现,全面解析邮件发送的每一个细节密武器!
【8月更文挑战第31天】本文探讨了如何在Windows Presentation Foundation(WPF)应用中集成电子邮件发送功能,详细介绍了从创建WPF项目到设计用户界面的全过程,并通过具体示例代码展示了如何使用`System.Net.Mail`命名空间中的`SmtpClient`和`MailMessage`类来实现邮件发送逻辑。文章还强调了安全性和错误处理的重要性,提供了实用的异常捕获代码片段,旨在帮助WPF开发者更好地掌握邮件发送技术,提升应用程序的功能性与用户体验。
23 0
|
28天前
|
存储 Java 开发者
揭秘!HashMap底层结构大起底:从数组到链表,再到红黑树,Java性能优化的秘密武器!
【8月更文挑战第24天】HashMap是Java集合框架中的核心组件,以其高效的键值对存储和快速访问能力广受开发者欢迎。在JDK 1.8及以后版本中,HashMap采用了数组+链表+红黑树的混合结构,实现了高性能的同时解决了哈希冲突问题。数组作为基石确保了快速定位;链表则用于处理哈希冲突;而当链表长度达到一定阈值时,通过转换为红黑树进一步提升性能。此外,HashMap还具备动态扩容机制,当负载因子超过预设值时自动扩大容量并重新哈希,确保整体性能。通过对HashMap底层结构的深入了解,我们可以更好地利用其优势解决实际开发中的问题。
47 0
|
28天前
|
存储 搜索推荐 算法
在 Java 中如何更改数组列表的顺序
【8月更文挑战第23天】
14 0
|
28天前
|
存储 安全 Java
在 Java 中如何存储数组列表
【8月更文挑战第23天】
22 0