【Java05】Java中的多维数组

从数组底层运行机制上看,Java没有多维数组一说。所谓多维数组,是说一个引用变量指向的元素也是引用变量。

例如,type[] arrayName是个指向type类型元素的数组。倘若type也是数组引用变量,比如int[],那么这个数组就可以定义为int[][] arrayName

在使用引用类型,如int[]时,和普通类型没有区别。

按照上述方式定义的二维数组,本质上还是一维数组。为什么这么说呢?因为它的初始化对第二个维度是宽松的:

var arrName = new type[length][];

这里相当于初始化了一个一维数组,这个数组的长度是length,这length个元素的初始值都是null,这时并没有关心第二个维度的初始化。

为了继续使用这个数组,需要进一步初始化这length个数组,但是这时候,每个元素(数组引用变量)指向的元素的个数是可变的:

public class TwoDimensionTest
{public static void main(String[] args){// 定义一个二维数组int[][] a;// 把a当成一维数组初始化a = new int[4][];// 此时完全可以把a看作是一维数组,遍历a数组的每个元素for (var e : a){System.out.println(e);}// 动态初始化a数组的第一个元素,此时默认a[0]指向的两个元素都是0a[0] = new int[2];a[0][1] = 6;for (var e : a[0]){System.out.println(e);}}
}
  • 第19行,在遍历a[0]时,输出应该是0和6。

第二个维度的元素(数组)的大小完全可以不一样:

// 静态初始化
var str1 = new String[][]{new String[3],new String[]{"Hello"}};
// 简化版本
var str2 = {new String[3], new String[]{"Hello"}};

这时str1[0]和str1[1]指向的数组大小是不一样的,在内存中如下图所示:

在这里插入图片描述

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

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

相关文章

中国银行信息科技运营中心、软件中心春招笔试测评面试体检全记录

本文介绍2024届春招中,中国银行下属各部门统一笔试,以及信息科技运营中心与软件中心各自的面试,以及编程能力测评、体检等相关环节的具体流程、相关信息等。 2024年04月投递了中国银行的信息科技类岗位,一共投递了4个岗位&#xf…

数字孪生定义及应用介绍

数字孪生定义及应用介绍 1 数字孪生(Digital Twin, DT)概述1.1 定义1.2 功能1.3 使用场景1.4 数字孪生三步走1.4.1 数字模型1.4.2 数字影子1.4.3 数字孪生 数字孪生地球平台Earth-2 参考 1 数字孪生(Digital Twin, DT)概述 数字孪…

基于自编码器的心电信号异常检测(Pytorch)

代码较为简单,很容易读懂。 # Importing necessary libraries for TensorFlow, pandas, numpy, and matplotlib import tensorflow as tf import pandas as pd import numpy as np import matplotlib.pyplot as plt import copy# Importing the PyTorch library im…

ml307A模块连接阿里云(详细版)

1、需要的信息 MQTT连接参数、订阅或发布的主题、服务器地址、端口1883 服务器地址: alFMz7jnArW.iot-as-mqtt.cn-shanghai.aliyuncs.com 注:重要的信息阿里云信息大家不要透露,写完笔记会及时删除产品及设备,大家用自己的信息…

linux精通 4.1

2.1.3 http服务器实现 目的 reactor应用——webserver webclient 每次上课前 看大纲down code 复习: 不行啊 编译给的代码报错啊 给的最新的不是0430那一版就不行啊 reactor.c:(.text0x254): relocation truncated to fit: R_X86_64_PC32 against symbol begin de…

《QT实用小工具·七十一》基于Qt+Qml开发的文件传输工具

1、概述 源码放在文章末尾 该项目基于QTQML实现了文件传输的功能,可以在局域网环境下使用(热点),扫描使用UDP,传输使用TCP,每一个文件传输使用独立的线程进行处理,高效便捷。 开发环境 使用Qt/Qml开发 QT版本&#x…

Linux服务器上激活conda环境conda: error: argument COMMAND: invalid choice: ‘activate‘

正常我们使用如下来流程: 创建环境:conda create -n 环境名称 激活环境:conda activate 环境名称 但是,在Linux服务器上,使用conda activate 环境名称,出现如上图所示的报错。conda: error: argument CO…

Excel 常用技巧(六)

Microsoft Excel 是微软为 Windows、macOS、Android 和 iOS 开发的电子表格软件,可以用来制作电子表格、完成许多复杂的数据运算,进行数据的分析和预测,并且具有强大的制作图表的功能。由于 Excel 具有十分友好的人机界面和强大的计算功能&am…

CMSIS-RTOS2简介

本文介绍CMSIS-RTOS2。 1.引入 CMSIS-RTOS2在基于Arm Cortex处理器的设备上运行的实时操作系统内核上指定了通用RTOS接口。应用程序和中间件组件可以使用CMSIS-RTOS2 API在各种软件生态系统中实现更好的代码重用和更简单的集成。 CMSIS-RTOS2还指定了RTOS内核使用的标准OS T…

windows上安装redis,并且用pycharm联通调用测试

在 Windows 上启动 Redis,官网版本不支持windows直接安装,你可以按照以下步骤进行操作: 使用Github Redis 版本启动 Redis 如果你想使用 Redis 在 Windows 上启动 Redis,以下是基本的步骤: 下载 Redis: 访…

自定义starter并发布maven私服

一、搭建nexus私服 nexus就是maven的私有服务器&#xff0c;这个搭建教程可以在网络上找到很多&#xff0c;这里就不赘述了。搭建完成之后再进行下一步 二、本地maven的setting配置文件中配置nexus的用户名和密码 <servers><server><id>nexus-releases<…

索引在手,查询无忧:MySQL索引简介

在数据库的世界里&#xff0c;MySQL作为一款广泛使用的关系型数据库管理系统。在DB-Engines的2024年5月的数据库管理系统流行度排名中得分1084&#xff0c;仅次于老大哥Oracle&#xff0c;足以MySQL在全球数据库市场中占有重要地位&#xff0c;当然MySQL在2009年被Oracle公司收…

解决使用Jmeter进行测试时出现“302“,‘‘401“等用户未登录的问题

使用 JMeter 压力测试时解决登录问题的两种方法 在使用 JMeter 进行压力测试时&#xff0c;可能会遇程序存在安全验证&#xff0c;必须登录后才能对里面的具体方法进行测试&#xff1a; 如果遇到登录问题&#xff0c;通常是因为 JMeter 无法模拟用户的登录状态&#xff0c;导…

表单中的常用元素

10.图像形式上传文件 <input type“image”>定义图像形式的提交。 src 属性和alt属性必须与<input type“image””>结合使用。 input type"image"src"img/l.jpg"alt"submit"/> 11.下拉列表框 <select>标签定义下拉列表框…

数据库管理-第205期 换个角度看23ai(20240617)

数据库管理205期 2024-06-17 数据库管理-第205期 换个角度看23ai&#xff08;20240617&#xff09;1 规范应用开发2 融合总结 数据库管理-第205期 换个角度看23ai&#xff08;20240617&#xff09; 作者&#xff1a;胖头鱼的鱼缸&#xff08;尹海文&#xff09; Oracle ACE Pro…

大量用户中招,远控木马已经潜伏各类在线会议平台

从 2023 年 12 月开始&#xff0c;研究人员发现有攻击者创建虚假 Skype、Google Meet 和 Zoom 网站来进行恶意软件传播。攻击者为安卓用户投递 SpyNote 远控木马&#xff0c;为 Windows 用户投递 NjRAT 和 DCRAT 远控木马。 攻击行动概述 攻击者在单个 IP 地址上部署了所有的虚…

小白入手实现AI客服机器人demo

一、环境准备 1 安装python 2 安装vscode 3 安装相关python库 pip install flask flask_cors openai 4.在vscode里安装TONGYI Lingma(AI编程助手&#xff09; 二、后端搭建 创建一个后端文件夹chatbot&#xff0c;再新建一个app.py的python文件 from flask import Flask, requ…

electron下载失败(electron如何切换镜像源)

打开&#xff1a; 或者&#xff1a; C:\Users\用户名\.npmrc 添加&#xff1a; electron_mirrorhttps://npmmirror.com/mirrors/electron/ 到文件中&#xff0c;保存 方法二&#xff1a; npm config set ELECTRON_MIRROR https://npmmirror.com/mirrors/electron/ ELECTR…

AIOps在业务运维的最佳应用实践

随着企业IT基础架构的复杂性日益增加&#xff0c;传统运维模式难以满足高效、稳定的业务需求。AIOps&#xff08;人工智能运维&#xff09;作为一种新兴技术&#xff0c;通过数据驱动的自动化和智能化手段&#xff0c;有效提升了IT运维的效率和可靠性。本文将探讨AIOps在业务运…

FPGA的基础仿真项目--七段数码管设计显示学号

一、设计实验目的 1&#xff0e; 了解数码管显示模块的工作原理。 2&#xff0e; 熟悉VHDL 硬件描述语言及自顶向下的设计思想。 3&#xff0e; 掌握利用FPGA设计6位数码管扫描显示驱动电路的方法。 二、实验设备 1. PC机 2.Cyclone IV FPGA开发板 三、扫描原理 下图所…