学习笔记 - Java 数组

阅读(9)
评论(0)
Beginning

数组的概述#

数组(Array),是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理。

数组是有序排列的,且数组属于引用数据类型,但数组中的元素既可以是基本数据类型,又可以是引用数据类型。

数组的存储是在内存中开启一片连续的空间,长度一旦确定就不能修改。

一维数组的使用#

声明和初始化#

int[] ids; //声明
//静态初始化:数组的初始化和数组元素的赋值操作同时进行
ids = new int[]{1001, 1002, 1003, 1004}; 
//动态初始化:数组的初始化和数组元素的赋值操作分开进行
String[] names = new String[5]; //定义长度

int[] arr = {1, 2, 3, 4}; //也是正确的,类型推断

数组的默认初始化值#

  • 基本数据类型:

    • 整型:0

    • 浮点型:0.0

    • char 型:0 或 '\u0000' ,而非 '0'

    • boolean 型:false (在内存中也为 0 )

  • 引用数据类型:

    • String 型:null ,非 'null'

数组的内存#

数组是一种引用内存,数组引用变量只是一个引用,数组元素和数组变量在内存里是分开存放的。

实际的数组对象(即数组元素)被存放在堆内存(heap)中,数组的引用变量(即数组对象)被存储在栈内存中。

在这里插入图片描述

数组对象如果重新赋值,那么数组对象重新指向新的实际数组的地址值。数去引用的旧数组变成垃圾,等待垃圾回收机制回收。具体分析如下图:

在这里插入图片描述

多维数组的使用#

声明和初始化#

以二维数组为例:

//静态初始化
int[][] arr1 = new int[][]{{1, 2, 3}, {4, 5}, {6, 7, 8}};
//动态初始化
String[][] arr2 = new String[3][2];
String[][] arr2 = new String[3][]; //列可空,但行不可空

int[][] arr1 = {{1, 2, 3}, {4, 5}, {6, 7, 8}}; //类型推断

二维数组直接使用 lenth 属性时得到的是行数,对某一行使用 lenth 属性时得到的是元素个数(即长度)。

二维数组未初始化时,输出二维数组得到的是内存地址,输出外层元素时也为内存地址,输出内层元素时为 0 。

二维数组的内存结构#

image

Arrays 工具类的使用#

在 java.util.Arrays 类中包含操作数组的各种方法。

参考#

深入浅出Java数组及其内存机制_Duktig丶的博客-CSDN博客

Ending

作者:Koi.C

出处:https://www.cnblogs.com/KoiC/p/17629385.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

声明:转载或使用请注明本文地址,感谢您的阅读!如果文章内容帮到了您,烦请点一下推荐,不胜感激!


欢迎关注个人公众号!

posted @   KoiC  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
more_horiz
keyboard_arrow_up dark_mode menu palette
选择主题
点击右上角即可分享
微信分享提示