当前位置: 首页 > news >正文

java(3)数组的定义与使用


目录

1.前言

2.正文

2.1数组的概念

2.2数组的创建与初始化

2.2.1数组的创建

2.2.1数组的静态初始化

2.2.2数组的动态初始化

2.3数组是引用类型

2.3.1引用类型与基本类型区别

2.3.2认识NULL

2.4二维数组

2.5数组的基本运用

2.5.1数组的遍历

2.5.2数组转字符串

2.5.3矩阵的转置

2.5.4查找某元素

3.小结


1.前言

大家好,欢迎大家继续前来学习java的基本语法,今天要分享的内容是数组的定义与使用,数组在代码的实现过程中是非常常见的,因此我们需要熟练掌握数组的相关应用。

2.正文

2.1数组的概念

在Java中,数组是一种引用数据类型,用于存储固定大小的同类型元素的集合。数组可以存储任何类型的数据,比如整数、浮点数、字符、对象甚至其他数组。

数组的有以下三个特点:

  • 存放的数据类型均相同。
  • 空间是连续存放的。
  • 每一个空间都有自己对应的地址编号

2.2数组的创建与初始化

2.2.1数组的创建

创建数组时,需要指定数组的大小。数组的大小在创建时确定,之后不能改变。例如,创建一个包含10个整数的数组:

int[] Array = new int[10];

2.2.1数组的静态初始化

静态初始化是在声明数组的同时,直接指定数组中每个元素的初始值。静态初始化时,数组的大小是确定的,并且每个元素都会被初始化为指定的值。如果初始化的元素少于数组的长度,那么未指定的元素会被默认初始化为其类型的默认值(例如,整数默认为0,对象引用默认为null)。如果初始化的元素多于数组的长度,编译器会报错。

int[] myArray = new int {10, 20, 30, 40, 50}; // 静态初始化

2.2.2数组的动态初始化

动态初始化是在声明数组时,只指定数组的大小,而不指定每个元素的初始值。在动态初始化时,数组的大小是确定的,但是数组中的每个元素都会被自动初始化为其类型的默认值。

int[] myArray = new int[5]; // 动态初始化,数组大小为5

至于究竟选择那种初始化方式取决于每个人的代码习惯或者运用场景,这里再讲几个需要注意的点:

  •  静态初始化虽然没有指定数组长度,但在编译执行的过程中会根据元素数量来确定数组长度。
  • 初始化时数组内的数据类型一定要放置相同。
  • 静态初始化可以简写成int[] myArray ={10, 20, 30, 40, 50};,不影响结果。

2.3数组是引用类型

2.3.1引用类型与基本类型区别

数组是我们在java中接触到的一个引用数据类型,接下来我们就来详细讲解引用数据类型与基本数据类型的练习与区别。

基本数据类型:

  • 内存分配:基本数据类型直接存储在栈上,它们的大小是固定的。
  • 直接操作:基本数据类型直接存储数据值,不需要通过引用来访问。

引用数据类型:

  • 内存分配引用数据类型存储在堆上,而引用变量本身(即对象的地址)存储在栈上。
  • 间接操作:引用数据类型通过引用(即内存地址)来访问数据,而不是直接存储数据。

引用变量并不直接存储对象本身,可以简单理解成存储的是对象在堆中空间的起始地址。通过该 地址,引用变量便可以去操作对象。有点类似C语言中的指针,但是Java中引用要比指针的操作更简单。

2.3.2认识NULL

null Java 中表示 " 空引用 " , 也就是一个不指向对象的引用。
  • 引用数据类型null 只能用于引用数据类型(如类、接口、数组),不能用于基本数据类型。

  • 默认值:引用类型的变量在声明时,如果没有显式初始化,那么它的默认值就是 null

2.4二维数组

二维数组由多个一维数组组成,可以视为数组的数组,下面是二维数组的基础概念与操作。

声明二维数组需要指定两个维度,即行数和列数。例如,声明一个整型的二维数组:

int[][] myArray;

二维数组的初始化与一维数组相同,也有静态初始化与动态初始化:

int[][] myArray = {{1, 2, 3},{4, 5, 6},{7, 8, 9}
};

int[][] myArray = new int[3][3]; // 创建一个3行3列的二维数组

至于二维数组的运用,相信你看完下文的应用就会有所了解了。

2.5数组的基本运用

2.5.1数组的遍历

int[] array = {1,2,3,4,5};
for(int i = 0;i<array.length;i++){System.out.println(array[i]);
}

2.5.2数组转字符串

int[] array = {1,2,3,4,5};
String array1 = Arrays.toString(array);
System.out.println(array1);

 这里我们使用Arrays.toString()方法使得数组被我们转换成字符串类型方便打印。

2.5.3矩阵的转置

int[][] array = {{1,2,3},{4,5,6},{7,8,9}};
for (int i = 0;i < 3;i++){for(int j = 0;j < 3;j++){System.out.print(array[i][j]+" ");}system.out.println();
}//打印原数组
System.out.println();
for (int i = 0;i < 3;i++){for(int j = 0;j < 3;j++){System.out.print(array[j][i]+" ");}System.out.println();
}//转置

2.5.4查找某元素

public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int[]array = {1,2,3,4,5,6,7,8,9};System.out.println("请输入待查找的数字");int n = scanner.nextInt();int flag = 0;//判断是否找到for(int i = 0;i < array.length;i++){if(n==array[i]){flag = 1;System.out.println("该数在"+ i + "个位置");break;}}if(flag==0){System.out.println("未找到该数");}}

3.小结

今天关于java数组的分享到这里就结束了,过几天就该到java的一个重难点,类和对象了,觉得有收获的小伙伴以及想要继续学习的朋友可以点点关注,让我们一起加油喔。

相关文章:

java(3)数组的定义与使用

目录 1.前言 2.正文 2.1数组的概念 2.2数组的创建与初始化 2.2.1数组的创建 2.2.1数组的静态初始化 2.2.2数组的动态初始化 2.3数组是引用类型 2.3.1引用类型与基本类型区别 2.3.2认识NULL 2.4二维数组 2.5数组的基本运用 2.5.1数组的遍历 2.5.2数组转字符串 2.…...

Integer 源码记录

Integer 公共方法结构 注意&#xff1a; 通过构造函数创建一个Integer对象&#xff0c;每次都会返回一个新的对象&#xff0c;如果使用 进行对象的比较&#xff0c;那么结果是false。 public Integer(int value) {this.value value;}与之对应的是&#xff0c;valueOf 方法…...

【RocketMQ】一、基本概念

文章目录 1、举例2、MQ异步通信3、背景4、Rocket MQ 角色概述4.1 主题4.2 队列4.3 消息4.4 生产者4.5 消费者分组4.6 消费者4.7 订阅关系 5、消息传输模型5.1 点对点模型5.2 发布订阅模型 1、举例 以坐火车类比MQ&#xff1a; 安检大厅就像是一个系统的门面&#xff0c;接受来…...

笔记9.18

线程之间的通信是指在多线程程序中&#xff0c;不同线程之间如何交换数据或协调工作。这种通信对于实现复杂的并发程序是至关重要的。以下是几种常见的线程间通信方式&#xff1a; 共享内存&#xff1a; 这是最直接的方式&#xff0c;多个线程通过读写同一块内存区域&#xff0…...

时间序列8个基准Baseline模型及其详细解读

我是从去年11月份开始&#xff0c;选定时间序列预测这个方向&#xff0c;准备在工作之余继续独立进行一些科学研究。选定这个方向是因为我对金融量化一直挺感兴趣&#xff0c;希望能把时间序列中的深度学习算法模型&#xff0c;用到金融数据。现在看来&#xff0c;我太过于理想…...

将相机深度图转接为点云的ROS2功能包

depth_image_proc 是一个 ROS&#xff08;Robot Operating System&#xff09;包&#xff0c;它包含了一系列节点&#xff0c;用于处理来自深度相机的图像数据&#xff0c;并将其转换为点云。以下是 depth_image_proc 包中各个节点的作用&#xff1a; convert_metric_node&…...

计算机毕业设计选题推荐-共享图书管理系统-小程序/App

✨作者主页&#xff1a;IT研究室✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…...

架构师:在 Spring Cloud 中实现全局异常处理的技术指南

1、简述 在分布式系统中,微服务架构是最流行的设计模式之一。Spring Cloud 提供了各种工具和库来简化微服务的开发和管理。然而,随着服务的增多,处理每个服务中的异常变得尤为复杂。因此,实现统一的全局异常处理成为了关键。本篇博客将介绍如何在 Spring Cloud 微服务架构…...

es由一个集群迁移到另外一个集群es的数据迁移

迁移es的数据 改下index的索引 就可以了。 查询 用curl -u就可以查询了...

java项目之常规应急物资管理系统(源码+文档)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的常规应急物资管理系统。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息。 项目简介&#xff1a; 基于SpringBootVue的…...

text2sql方法:RESDSQL和DAIL-SQL

之前介绍了text2sql的综述&#xff0c;但是对一些方法的描述不够详细&#xff0c;所以将一些感兴趣的方法思路也整理一下。 RESDSQL RESDSQL出自2023年2月的论文《RESDSQL: Decoupling Schema Linking and Skeleton Parsing for Text-to-SQL》(github)。它使用seq2seq PLM(pr…...

Stable Diffusion 优秀博客转载

初版论文地址&#xff1a;https://arxiv.org/pdf/2112.10752 主要流程图&#xff1a; Latent Diffusion Models&#xff08;LDMs&#xff09; DDPM是"Denoising Diffusion Probabilistic Models"的缩写&#xff0c; 去噪扩散概率模型 博客&#xff1a; 【论文阅读…...

探索IT行业的无限潜力:技术、发展与职业前景

探索IT行业的无限潜力&#xff1a;技术、发展与职业前景 1. 引言 信息技术&#xff08;IT&#xff09;已经彻底改变了我们的生活方式&#xff0c;从智能手机到云计算&#xff0c;IT无处不在。无论是公司管理系统、社交媒体&#xff0c;还是大数据分析平台&#xff0c;IT推动了…...

ESP32配网接入Wifi

1 ESP32的两种模式 AP模式:ESP32可以作为热点,手机和电脑等设备接入使用。 STA模式:ESP32可以作为作为客户端接入其他网络中。 2 流程 step1: ESP32上电后进入STA模式,尝试看能够接入网络 step2: 如何连接成功,则正常运行。如何连接超时,则自动进入AP模式,设置AP热点…...

前端-js例子:收钱转账

支付宝转账 在这里用到周期定时器setInterval(function,time)&#xff0c;设置达到目标钱数时停止定时器。 点击转账按钮时&#xff0c;开始函数显示。 同时要确定输入框里输入的是数字。&#xff08;有一定容错&#xff09; window.onloadfunction(){var btn document.que…...

2024 BaseCTF repwn 部分wp

You are good at IDA 附件拖入ida。比较简单 UPX mini upx壳&#xff0c;无魔改&#xff0c;直接脱。脱完拖入ida。比较简单 Ez Xor 附件拖入ida 比较简单。脚本 ez_maze 附件拖入ida 一个宽为15的迷宫 BasePlus 附件拖入ida。变表base64再异或0xE 签个到吧 nc连上即得 echo nc…...

每日学习一个数据结构-倒排表

文章目录 示意图倒排表的基本概念倒排表的数据结构示例 倒排表的优点应用场景 倒排表&#xff08;Inverted Index&#xff09;&#xff0c;也称为反向索引或倒排文件&#xff0c;在信息检索系统中是一种重要的数据结构。它主要用于快速搜索文档中的关键词&#xff0c;并找到包含…...

828华为云征文|部署在线文件管理器 Spacedrive

828华为云征文&#xff5c;部署在线文件管理器 Spacedrive 一、Flexus云服务器X实例介绍1.1 云服务器介绍1.2 产品优势1.3 计费模式 二、Flexus云服务器X实例配置2.1 重置密码2.2 服务器连接2.3 安全组配置 三、部署 Spacedrive3.1 Spacedrive 介绍3.2 Docker 环境搭建3.3 Spac…...

Alluxio EnterpriseAI on K8s 部署教程

Alluxio Enterprise AI on K8s 部署视频教程 视频为Alluxio Enterprise AI on K8s 部署视频教程。下面内容将主要介绍如何通过 Operator&#xff08;Kubernetes 管理应用程序的扩展&#xff09;在 Kubernetes 上安装 Alluxio。 1. 系统要求 Kubernetes 至少1.19版本的 Kubern…...

鸿蒙OpenHarmony【轻量系统内核扩展组件(动态加载)】子系统开发

基本概念 在硬件资源有限的小设备中&#xff0c;需要通过算法的动态部署能力来解决无法同时部署多种算法的问题。以开发者易用为主要考虑因素&#xff0c;同时考虑到多平台的通用性&#xff0c;LiteOS-M选择业界标准的ELF加载方案&#xff0c;方便拓展算法生态。LiteOS-M提供类…...

[特殊字符] GLM-4V-9B企业级方案:客户上传截图问题自动诊断

GLM-4V-9B企业级方案&#xff1a;客户上传截图问题自动诊断 1. 引言 想象一下这个场景&#xff1a;你是一家SaaS公司的技术支持工程师&#xff0c;每天的工作就是处理海量的客户工单。其中&#xff0c;有相当一部分问题描述是模糊的&#xff0c;比如“我的页面显示不正常”、…...

当AI学会“越狱“与“签名“:大模型 安全的攻与防

当AI学会"越狱"与"签名"&#xff1a;大模型安全的攻与防引言2023年以来&#xff0c;以ChatGPT、GPT-4、LLaMA、Qwen为代表的大语言模型&#xff08;Large Language Models, LLMs&#xff09;席卷了几乎所有行业。然而&#xff0c;能力越大&#xff0c;风险…...

别再只会用FFT了!用MATLAB的czt函数实现窄带信号高分辨率频谱分析

别再只会用FFT了&#xff01;用MATLAB的czt函数实现窄带信号高分辨率频谱分析 在信号处理领域&#xff0c;频谱分析是最基础也是最重要的技术之一。传统上&#xff0c;工程师们习惯使用快速傅里叶变换&#xff08;FFT&#xff09;来获取信号的频域信息。然而&#xff0c;当面对…...

猫抓插件:资源嗅探技术如何重塑浏览器媒体捕获体验

猫抓插件&#xff1a;资源嗅探技术如何重塑浏览器媒体捕获体验 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 在数字内容爆炸的时代&#xff0c;网…...

Fish-Speech 1.5效果展示:双自回归Transformer架构,语音质量惊艳

Fish-Speech 1.5效果展示&#xff1a;双自回归Transformer架构&#xff0c;语音质量惊艳 你听过那种一听就知道是机器人的AI语音吗&#xff1f;生硬、刻板&#xff0c;每个字都像从模板里抠出来的&#xff0c;毫无生气。再听听这个&#xff1a;“今天天气真好&#xff0c;适合…...

为“自感”留白

为“自感”留白早晨醒来&#xff0c;手机屏幕亮着&#xff0c;几条推送已经整齐地排好了队。它们比我自己更清楚我昨天看过什么、想过什么、可能在今天还想看些什么。我划掉几条&#xff0c;点开一条&#xff0c;于是更多的、相似的推送便如约而至。这本是极便利的事&#xff0…...

如何高效管理LiteDB数据库?LiteDB.Studio实战指南与深度解析

如何高效管理LiteDB数据库&#xff1f;LiteDB.Studio实战指南与深度解析 【免费下载链接】LiteDB.Studio A GUI tool for viewing and editing documents for LiteDB v5 项目地址: https://gitcode.com/gh_mirrors/li/LiteDB.Studio 在现代软件开发中&#xff0c;嵌入式…...

Endnote与WPS高效协作:自动与手动关联全攻略

1. Endnote与WPS关联的必要性 对于科研人员和学术写作者来说&#xff0c;文献管理是日常工作中不可或缺的一部分。Endnote作为一款专业的文献管理软件&#xff0c;能够帮助我们高效地整理、引用和分享文献资料。而WPS Office则是国内广泛使用的办公软件&#xff0c;许多用户习惯…...

如何免费构建个人游戏串流服务器:Sunshine开源方案完整指南

如何免费构建个人游戏串流服务器&#xff1a;Sunshine开源方案完整指南 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine Sunshine是一款开源的自托管游戏串流服务器&#xff0c;让您…...

如何快速批量下载知网文献?CNKI-download自动化工具终极指南

如何快速批量下载知网文献&#xff1f;CNKI-download自动化工具终极指南 【免费下载链接】CNKI-download :frog: 知网(CNKI)文献下载及文献速览爬虫 项目地址: https://gitcode.com/gh_mirrors/cn/CNKI-download 对于学术研究者和学生来说&#xff0c;从知网&#xff0…...