Java基础入门篇——数组初识

一、数组

1.假设某公司有100个员工,需要统计某公司员工的工资情况,首先需要声明100个变量来分别记每个员工的工资,那么如果按照之前的做法,可能定义的结构如下所示:


int a1,a2,a3,......a100;

要求你输出这100个员工的工资,意味着你要写System.out.println()语句100次。这样的话就显得很麻烦,所以我们需要用数组解决。

2.数组指的是一组数据的集合,数组中每个数据叫做元素。在数组可以存放任意类型的数据,但是同一个数组存放的元素类型需要一致。

3.数组的定义如下所示:


int[] a=new int[100];

上面这个数组的定义相当于在内存定义了100个int类型的变量,第1个变量的名称是a[0],第2个变量的名称是a[1],第3个变量名称是a[2],直到第100个变量的名称是a[99]。这些变量的初始值默认为0。


int[] a;//定义一个int[]类型的变量a
a=new int[100];//创建长度为100的数组

上面这个数组的定义一个int[]类型的变量a,变量a会占用一块内存单元格,它还没有分配初始的值。

如下图所示:

a=new int[]创建一个数组,把数组的地址赋值给变量x,内存状态就发生了变化。

如下所示:

4.通过一个案例看看如何定义数组和访问数组的元素、长度


public static void main(String[] args) {
// TODO Auto-generated method stub
int[] a;//声明一个int[]类型变量a
a=new int[3];//创建数组为3的长度
System.out.println("a[0]="+a[0]);//访问数组的第1个元素
System.out.println("a[1]="+a[1]);//访问数组的第2个元素
System.out.println("a[2]="+a[2]);//访问数组的第3个元素
System.out.println("数组的长度为:"+a.length);//数组的长度
}

输出的结果是:


a[0]=0
a[1]=0
a[2]=0
数组的长度为:3

我们分析一下上面的代码,首先是声明一个int[]类型变量a,然后创建数组长度为3,它是如何访问数组的元素的呢?通过a[0]访问数组的第1个元素,因为数组下标由0开始,最大下标是数组元素个数-1。a.length属性是访问数组的长度。

二、数组的静态初始化

1.什么是数组的静态初始化

定义数组时,为数组的每个元素赋值就叫做数组的静态初始化。

2.数组的静态初始化两种方式


类型[] 数组名 = new 类型[]{值1, 值2, ……};  
类型[] 数组名 = {值1, 值2, ……};

3.数组的静态初始化如何定义和访问数组的值

如下所示:


public static void main(String[] args) {
// TODO Auto-generated method stub
int[] a={1,2,3};//静态初始化
System.out.println("a[0]="+a[0]);//访问数组的第1个元素
System.out.println("a[1]="+a[1]);//访问数组的第2个元素
System.out.println("a[2]="+a[2]);//访问数组的第3个元素
System.out.println("数组的长度为:"+a.length);//数组的长度
}

输出的结果为:


a[0]=1
a[1]=2
a[2]=3
数组的长度为:3

使用静态初始化数组给每个元素进行赋值,分别是1、2、3

三、数组的动态初始化

1.什么是数组的动态初始化

定义数组由系统自动给元素赋初始值,我们就叫做数组的动态初始化。

2.动态初始化的方式

类型[] 数组名 = new 类型[长度];

3.动态初始化只需要指定数组的长度,系统自动赋初始值。分配初始值的规则:

boolean数据类型它的系统默认值为false;

byte数据类型它的系统默认值为0;

char数据类型它的系统默认值为’/u0000’;

short数据类型它的系统默认值为0;

int数据类型它的系统默认值为0;

long数据类型它的系统默认值为0L;

float数据类型它的系统默认值为0.0f;

double数据类型它的系统默认值为0.0;

4.动态初始化如何定义和访问数组的元素

例如:


public static void main(String[] args) {// TODO Auto-generated method stubint[] a=new int[4];//动态初始化System.out.println("a[0]="+a[0]);//访问数组的第1个元素System.out.println("a[1]="+a[1]);//访问数组的第2个元素System.out.println("a[2]="+a[2]);//访问数组的第3个元素System.out.println("a[3]="+a[3]);//访问数组的第3个元素System.out.println("数组的长度为:"+a.length);//数组的长度
}

输出的结果:

a[0]=0
a[1]=0
a[2]=0
a[3]=0
数组的长度为:4

四、总结

本文介绍了数组定义、数组的静态初始化、数组的动态初始化。详细介绍了数组的内容,数组的定义和访问数组的元素、长度通过图片和案例结合。静态初始化是定义数组,为每个元素赋值。动态初始化是由于系统会自动给它们赋值。静态初始化和动态初始化详细的讲解这两个用法,通过图片和案例结合来理解这用法。希望大家通过本文的学习,对你有所帮助!

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

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

相关文章

JavaWeb学习|JSTL表达式

1.什么是JSTL表达式? JSTL标签库的使用就是为了弥补HTML标签的不足;它自定义许多标签,可以供我们使用,标签的功能和Java代码一样 在JSP页面文件中使用JSTL表达式,首先需要引入核心标签库 同时,也要把JSTL的jar包在to…

C指针:程序员的神奇箭头,穿越内存的冒险之旅!

目录 🕵️‍♂️ 引言:指针,那些指向星星的小箭头! 一、🎯 探索箭头:指针的基础知识 1.1 指针是什么? 1.2 解引用操作符:* 是关键 1.3 指针的比较和运算 1.4 空指针&#xff1a…

深度使用苹果M1 Mac电脑一个月后的发现与问题解决

自从苹果推出M1芯片的Mac电脑后,其强大的性能和高效的能耗管理引起了广泛关注。许多人纷纷购买了这款新一代的Mac电脑,并深度使用了一个月。然而,在长时间使用的过程中,一些问题也逐渐浮现出来。本文将分享在深度使用苹果M1 Mac电…

进程的调度

文章目录 一、进程的调度过程二、进程调度的一些特点 一个正在执行的程序叫做进程。操作系统会把程序调度到CPU上,让CPU执行程序,此时这个程序就变成了进程。相当于程序在CPU上执行时叫进程,程序没有在CPU上执行时就叫程序。 一、进程的调度过…

ucharts使用

官方地址: https://www.ucharts.cn/v2/#/tool/index 码云地址:码云地址 他官方文档有些地方写的比较模糊,有的还需要付费 地图 详情参见:

初始C语言——详细讲解操作符以及操作符的易错点

系列文章目录 第一章 “C“浒传——初识C语言(更适合初学者体质哦!) 第二章 详细认识分支语句和循环语句以及他们的易错点 第三章 初阶C语言——特别详细地介绍函数 第四章 初始C语言——详细地讲解数组的内容以及易错点 第五章 初始C语言—…

HTML页面生命周期详解

前言 在使用vue的时代本次项目有个需求,就是需要在静态资源未加载时获取当前页面的访问路径,所以需要对html页面的生命周期要有所了解。本次讲讲HTML页面的生命周期事件,希望对大家有所帮助。如果文中有不对、疑惑的地方,欢迎在评…

20230809在WIN10下使用python3批量将TXT文件转换为SRT文件

20230809在WIN10下使用python3批量将TXT文件转换为SRT文件 2023/8/9 17:30 由于喜欢看纪录片等外文视频,通过剪映/PR2023/AUTOSUB识别字幕之后,可以通过google翻译识别为简体中文的DOCX文档。 DOCX文档转换为TXT文档之后,还需要转换为SRT文档…

CentOS7安装MySQL8(RPM方式)

第一步:解压 tar -xvf mysql-8.0.34-1.el7.x86_64.rpm-bundle.tar -C /usr/local/java/mysql 第二步:按顺序安装rpm包 # rpm -ivh mysql-community-common-8.0.34-1.el7.x86_64.rpm# rpm -ivh mysql-community-client-plugins-8.0.34-1.el7.x86_64.rpm…

【PythonRS】植被显示增强(多光谱、正射、照片等)

很多时候我们需要某个区域的正射图,虽然正射图一般都运用了匀色的算法,整体色彩比较均衡。但如果研究区内有大量的植被,这个时候植被突出显示就很有必要了。所以今天给大家分享一下使用Python对多光谱、正射影像进行植被显示增强的算法。 一、…

【学习FreeRTOS】第2章——FreeRTOS基础知识

1.任务调度 1.1.任务调度简介 调度器就是使用相关的调度算法来决定当前需要执行的哪个任务FreeRTOS 一共支持三种任务调度方式: 抢占式调度:针对优先级不同的任务,每个任务都有一个优先级,优先级高的任务可以抢占优先级低的任务…

(3)原神角色数据分析-3

绘图类 在名为“WRITEPHOT.py”的文件中,定义如下绘图方式,则在主页面(app.py)文件中,可通过如下方式调用: from WRITEPHOTO import WriteScatter,WriteFunnel,WriteBarData,WritePie,WriteLineBar 代码如下: "…

【前端】CSS垂直居中的7种方法

文章目录 line-height绝对定位margin:autoflex绝对定位margin:负值定位transformvertical-align:middledisplay:table-cell思维导图 前文:【前端】CSS水平居中的6种方法_karshey的博客-CSDN博客 有很多相似的部分。 line-height 适用于单行的行内元素设置line-he…

N皇后算法的思路是什么?

N皇后问题是经典的回溯算法问题,其目标是在一个NxN的棋盘上放置N个皇后,使得它们彼此之间不能互相攻击,即任意两个皇后都不在同一行、同一列或同一斜线上。 算法的思路如下: 使用递归函数来解决问题。递归函数的参数通常包括当前…

模仿火星科技 基于cesium+角度测量+高度测量+可编辑

1. 创建提示窗: 启动Cesium应用,地图场景将打开,欢迎您进入编辑模式。 在屏幕的一角,一个友好的提示窗将呈现,随着您的操作,它会为您提供有用的信息和指导。 2. 绘制面积: 轻轻点击鼠标左键&a…

Spring之Aop切面---日志收集(环绕处理、前置处理方式)--使用/教程/实例

Spring之Aop切面---日志收集(环绕处理、前置处理方式)--使用/教程/实例 简介系统登录日志类LoginLogEntity .java 一、环绕处理方式1、自定义注解类LoginLogAop.class2、切面处理类LogoutLogAspect.java 二、前置处理方式:1、自定义注解类Log…

MySQL之 show profile 相关总结

MySQL之 show profile 相关总结 MySQL官网show profile介绍:https://dev.mysql.com/doc/refman/8.0/en/show-profile.html 1. 简介 show profile 和 show profiles 命令用于展示SQL语句的资源使用情况,包括CPU的使用,CPU上下文切换&#xf…

【实战】 九、深入React 状态管理与Redux机制(五) —— React17+React Hook+TS4 最佳实践,仿 Jira 企业级项目(二十)

文章目录 一、项目起航:项目初始化与配置二、React 与 Hook 应用:实现项目列表三、TS 应用:JS神助攻 - 强类型四、JWT、用户认证与异步请求五、CSS 其实很简单 - 用 CSS-in-JS 添加样式六、用户体验优化 - 加载中和错误状态处理七、Hook&…

Docker 数据管理

文章目录 前言1、Dcoker 文件体系2、volume挂载案例2.1、挂载运行一个容器实例方法1方法2 3、volumes-from 案例4、备份/恢复数据卷5、删除数据卷 前言 为什么要有数据管理? 因为: Docker 是不提供持久化的 ,容器是不稳定的;一个…

mac ssh连接另一台window虚拟机vm

vmware配置端口映射 编辑(E) > 虚拟网络编辑器(N)... > NAT设置(S)... window防火墙,入站规则添加5555端口 控制面板 > 系统和安全 > Windows 防火墙>高级设置>入站规则>新建规则... tips windows查看端口命令:netstat -ano | f…