Java入门:05.Java中的数组003

在上两篇文章中,我们了解什么是数组类型的数据,并明白了怎样使用new关键字创建一个数组,并为其定义长度。

同时在理解了栈空间和堆空间的区别后,我们也知道了,想要使用一个数组,我们必须将他的引用地址赋给一个数组类型的变量。

在明白了这些之后,我们终于可以创建一个数组了:

char[] arrays = new char[10];

之前我们创建了一个可以存储int类型元素的数组,今天我们换换样式,创建一个char类型的数组。

需要注意的是,这个数组的长度只能在new的时候设定,后续我们就无法更改了,因此我们在创建数组时一般需要做出合理的规划,太长会占用空间,太短又会。

好了,到此为止,我们就创建了一个真正的数组了。

在一开始我们就说了,数组和变量类似,它也是一个容器,我们可以利用数组用来存储一组位置连续的、类型相同的数据(变量)。

那么该如何用它来进行存储呢?这就是我们今天所要讲的内容:

四、向数组中存储元素

其实向数组中存储元素,和向变量中存储,并没有太大的差别。就比如我们刚刚创建的arrays数组,它有10个元素,就可以简单理解成这个数组里有10个变量,只不过数组中的这些变量并没有名字,只它们的有位置,我们可以按照这些位置来找到对应的元素,我们将其称为下标 或 索引 。 这个位置从0开始计数。

比方说,在向刚刚那样创建好数组之后,我们就可以按照对应的下标向数组中存值了,具体方法就和变量的存储是一样的。

char[] arrays = new char[10];//创建了一个长度为10(可以存储10个元素)的字符型数组
arrays[0]='A';//从零开始,所以我们往下标为0的地方存入了一个字符'A'

像这样,我们就在成功的在我们的数组中添加好第一个元素了

这种先创建数组,后为其元素赋值的方式,我们称为动态初始化

与之相对的,自然还有一种赋值方式,我们称为静态初始化,通过使用静态初始化,我们可以在创建数组时就为其元素赋值:

int[] nums = new int[]{10,20,30,40,50} ;

或是:

int[] nums = {10,20,30,40,50};

这两种方式都是一样的,写哪个都可以。

有了数组后,其中的元素其实就是就是一个个变量名为"数组名[下标]"的变量

因此,我们可以像更改变量时那样,来随意的更改数组中元素的内容:

char[] arrays = new char[10];//创建了一个长度为10(可以存储10个元素)的字符型数组
arrays[0]='A';//从零开始,所以我们往下标为0的地方存入了一个字符'A'
arrays[0]='B';//将0位置的元素替换为字符'B'

甚至让它们参与计算:

int[] nums = {10,20,30,40,50};//创建一个数组
int sum=nums[0]+nums[1];//将10和20相加并赋值给sum

此外,随着数组的创立,java还会我们提供一个特殊的变量,我们叫作 length ,它存储着数组中变量的个数 。 length没有下标,却有变量名,我们能通过数组名.length的方式来取到它的值,却不能为其赋值,例:

int[] nums = {10,20,30,40,50};//创建一个数组
int a=nums.length;//获取nums[]数组的长度并赋给a
System.out.println(a);//因为有5个元素,输出5

那么至此,我们的Java入门第五期:java中的数组就结束了,给大家留两个小练习,下篇文章中,我将为大家讲解:

  1. 定义数组并为其元素赋值,再使用循环语句,将数组中的元素求和。

  2. 定义数组并为其元素赋值,再使用循环语句,找到其中的最大值并将其输出。

下面我们来做个小总结:

总结:

在本期文章中,我们大家一起认识了Java中的数组,并了解什么是数组类型的数据,以及怎样真正的创建一个数组,并使用其中的元素,还通过数组使我们明白了各种数据类型的区别。

希望通过本期文章,大家对java能够有一个更深的了解,同时,感谢大家的支持与鼓励,谢谢大家!

那么今天的内容就到这里啦,如果存在哪些疑问或问题欢迎大家指出,我们下期再见~

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

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

相关文章

lenovo联想ThinkBook 14 G4+ IAP/ARA(21CX,21D0)笔记本原装出厂Windows11系统预装OEM镜像下载

ThinkBook 14 G4 IAP【21CX】原厂系统Win11恢复安装包: 链接:https://pan.baidu.com/s/1iY9BxidIbv4RnXKaqbydTA?pwd9wc6 提取码:9wc6 ThinkBook 14 G4 ARA【21D0】原厂系统Win11恢复安装包: 链接:https://pan.ba…

nest学习笔记(一)

介绍 nest是一个用于构建高效,可拓展的nodejs服务端应用程序的框架,它使用渐进式javascript,使用Typescript构建并且完全支持Typescript,而且运行开发者使用javascript编写代码,提供了OOP、FP、FRP nest的底层是基于…

Linux编程:使用python或者shell获取系统信息

0. 概要 在日常的系统管理和性能监控中,获取系统信息是一个非常常见的需求。 本文将介绍如何使用Python和Shell脚本来获取这些系统信息。 1. 使用Python获取系统信息 使用psutil库来获取系统的CPU、内存、磁盘和网络信息。 1.1 安装psutil库 首先,我…

积分环节1/s

在控制工程中,当我们处理动态系统模型时,积分环节常常表示为1/s,这里的"1"代表系统的增益,而"s"是一个复数频率变量,通常在拉普拉斯变换中使用,它代表了时间域中的单位阶跃响应。积分运…

盗梦空间续集(InceptionNeXt):使用Inception优化加速ConvNeXt实现ImageNet-1K的最佳精度

Abstract 灵感来自ViT的长距离建模能力,大核卷积最近被广泛研究和采用,以扩大感受野并提高模型性能,例如显著的工作ConvNeXt采用77深度卷积。虽然这种深度算子只消耗少量的FLOPs,但由于高内存访问成本,它在强大计算设…

JavaScript 进阶

JavaScript 进阶 在掌握了 JavaScript 的基础知识之后,继续深入学习其高级特性和应用技巧将有助于编写更高效、更优雅的代码。本文将详细介绍 JavaScript 的一些进阶概念和技术。 目录 闭包原型与继承高级函数 高阶函数柯里化函数组合 异步编程 Promiseasync/awa…

MySQL InnoDB的读写参数优化

MySQL InnoDB的读写参数优化是提升数据库性能的重要手段。以下是对MySQL InnoDB读写参数优化的详细阐述: 一、读参数优化 缓冲池大小(innodb_buffer_pool_size) 作用:该参数决定了InnoDB存储引擎可以使用的内存大小,…

PHP设计模式-简单工厂模式

核心: 一、定义一个接口类里面写规定好的方法。 interface Message{public function send(array $params);public function getMessage(array $params);public function getCode(array $params);} 二、定义产品类 、产品类继承接口类 class AlliYunSms implements …

Dart sprintf包使用指南:格式化输出的瑞士军刀

Dart sprintf包使用指南:格式化输出的瑞士军刀 简介 sprintf 是Dart语言的一个扩展包,提供了类似于C语言中 sprintf 函数的功能。它允许你格式化字符串,支持占位符和各种格式化选项,非常适合于创建具有特定格式的日志、用户界面…

java实战项目--拼图小游戏(附带全套源代码)

个人主页VON 所属专栏java实战项目游戏参考黑马程序员 一、效果展示 二、功能介绍 游戏中所有的图片以及代码均已打包,玩家直接安装游戏即可,不用idea也可以畅玩。 游戏功能比较单一,只有简单的拼图功能。 a:展示原图重新游戏&a…

《汇编语言 基于x86处理器》- 读书笔记 - 第3章-汇编语言基础

《汇编语言 基于x86处理器》- 读书笔记 - 第3章-汇编语言基础 3.1 基本语言元素3.1.1 第一个汇编语言程序常见汇编语言调用规范 3.1.2 整数常量(基数、字面量)3.1.3 整型常量表达式3.1.4 实数常量十进制实数十六进制实数(编码实数&#xff09…

Netty技术全解析:SimpleChannelInboundHandler详解

Netty是一个高性能、异步事件驱动的NIO框架,它提供了对TCP、UDP和文件传输的支持,并且能够简化网络应用程序的开发过程。在Netty中,ChannelInboundHandler接口用于处理入站事件,即外部数据或操作进入Netty应用程序时的事件。而Sim…

USB 2.0 协议专栏之 USB 2.0 概述(一)

前言:本篇博客为手把手教学的 USB 2.0 协议栈类精品博客,该专栏博客侧重针对 USB 2.0 协议进行讲解。Universal Serial Bus 作为如今最常见的通信接口,被广泛应用于:Keyboard、Mouse、Communication Device Class 和 Mass Storage…

Linux操作系统 -socket网络通信

同一台主机之间的进程 1.古老的通信方式 无名管道 有名管道 信号 2、IPC对象通信 system v 消息队列 共享内存 信号量集 由于不同主机间进程通信 3.socket网络通信 国际网络体系结构: 七层OSI模型(理论…

达梦数据库的dmap服务介绍

达梦数据库的dmap服务介绍 达梦数据库的dmap服务是一个关键的守护进程,主要负责以下功能和作用: 连接管理:dmap服务负责监听客户端的连接请求,并管理这些连接。它支持多种通信协议,如TCP/IP,确保客户端能够…

Atcoder 364-C - Minimum Glutton

Problem Statement There are N dishes, and the ii-th dish has a sweetness of Ai​ and a saltiness of Bi​. Takahashi plans to arrange these N dishes in any order he likes and eat them in that order. He will eat the dishes in the arranged order, but he wi…

“论企业集成架构设计及应用”写作框架,软考高级论文,系统架构设计师论文

原创范文 论企业集成架构设计及应用企业集成架构(Enterprise Integration Arhitecture,EIA) 是企业集成平台的核心,也是解决企业信息孤岛问题的关键。企业集成架构设计包括了企业信息、业务过程、应用系统集成架构的设计。实现企业集成的技术多种多样&a…

什么是 Windows 服务

什么是 Windows 服务 Windows 服务是 Windows 操作系统的核心。它们控制着操作系统的运行,定义了图形用户界面(GUI)与系统硬件之间的通信以及其他许多功能。没有这些服务,Windows 操作系统将无法正常运行。 对普通用户而言&…

【人工智能】人工智能概述(二)人工智能的关键技术

文章目录 一. 机器学习与深度学习1. 机器学习2. 深度学习 二. 计算机视觉1. 基本概念和分类2. 未来计算机视觉面临的主要挑战 三. 自然语言处理1. 基本概念与分类2. 自然语言处理面临的四大挑战 四. 知识图谱1. 基本概念2. 应用场景 五. SLAM技术1. 基本概念2. 主要分类 六. 人…

CentOS和docker下安装acvitity字体

CentOS 下 activity安装字体:/usr/share/fonts/ 安装服务器字体: cd /usr/share/fonts/ 然后把字体文件拷贝到这个文件夹下,执行如下命令: mkfontscale mkfontdir fc-cache 查询字体是否安装成功: fc-list :langzh 如果系统…