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

news2024/10/3 10:47:37

一、数组

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 stub
  int[] 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.coloradmin.cn/o/864710.html

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

相关文章

如何将maven部署在Idea的教学,和idea介绍

目录 一.idea介绍,以及一些基本特点! 1.1idea介绍 1.2idea特点 1.3.idea和eclipse区别 1.4idea安装 4.1下载网址 4.2下载后安装(见图片) 1.5 Idea的一些操作更改 5.1主题颜色 5.2设置鼠标悬浮提示 5.3显示方法分隔符 5.4忽…

如何解决新学期分班查询公布难题?试试这个方法

作为教师,我们常常需要进行学生分班管理,这项工作繁琐但至关重要。为了提高工作效率,我们可以利用现代技术开发一款学生分班查询系统。本文将介绍如何设计和开发这个系统。 首先,我们可以选择使用易查分这样的工具来帮助我们管理…

[git] git基础知识

git是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目 git易于学习,性能极快 什么是版本控制? 版本控制是一种记录文件内容变化,以便将来查阅特定版本修订情况,可以记录文件修改历史…

(学习笔记-进程管理)多线程冲突如何解决

对于共享资源,如果没有上锁,在多线程的环境里,很有可能发生翻车。 竞争与合作 在单核 CPU 系统里,为了实现多个程序同时运行的假象,操作系统通常以时间片调度的方式,让每个进程每次执行一个时间片&#xf…

现在国家正规相亲平台有哪些?盘点五款安全值得使用的相亲软件

随着互联网的普及,越来越多的人选择通过相亲软件寻找自己的另一半。但是,在众多相亲软件中靠谱的相亲软件有哪些呢,该如何选择?本文将盘点几款安全靠谱的相亲软件,可以了解看看哪个适合你。 第一款:一伴婚…

恭喜又一白鲸开源成员成为 Apache SeaTunnel PMC Member

个人简介 王海林 白鲸开源研发工程师GitHub ID:hailin0做过性能监控、数据开发平台等,目前聚焦在数据集成同步及其周边生态的研发 问:作为白鲸开源的一员,您为社区做出过哪些贡献?具体方案(代码类&#x…

OpenStack-Y版安装部署

OpenStack-Y版安装部署 目录 OpenStack-Y版安装部署 1、环境准备 1.1 环境简介1.2 配置hosts解析(所有节点)1.3 配置时间同步1.4 安装openstack客户端(控制节点执行)1.5 安装部署MariaDB(控制节点执行)1.6 安装部署RabbitMQ(控制节点执行)1.7 安装部署Memcache(控制节点执行)2、…

机器学习笔记值优化算法(十四)梯度下降法在凸函数上的收敛性

机器学习笔记之优化算法——梯度下降法在凸函数上的收敛性 引言回顾:收敛速度:次线性收敛二次上界引理 梯度下降法在凸函数上的收敛性收敛性定理介绍证明过程 引言 本节将介绍梯度下降法在凸函数上的收敛性。 回顾: 收敛速度:次…

MySQL_数据库的DCL语句

DCL 定义:Data Control Language(数据控制语言),用来管理数据库用户、控制数据库的访问权限。 管理用户(% 代表通配符) 查询用户 SELECT * FROM mysql.user; 创建用户 CREATE USER ‘用户名’‘主机名’ IDENTIFIED BY ‘密码’; 修改用户 ALTER USE…

01:STM32点灯大师和蜂鸣器

目录 一:点亮1个LED 1:连接图 2:函数介绍 3:点灯代码 二:LED闪烁 1:函数介绍 2:闪烁代码 三:LED流水灯 1:连接图 2:函数介绍 3:流水灯代码 四:蜂鸣器 1:连接图 2:蜂鸣器代码 一:点亮1个LED 1:连接图 因为IO口与LED负极相连所以IO口输出低电频,点亮LED (采用的是低…

Android系统组件——AMS,App启动中的AMS流程

AMS(Activity Manager Service)是Android系统中非常重要的一个组件,负责管理应用程序的生命周期、进程调度以及任务栈的管理等任务。本文将从AMS的原理、数据结构、SystemServer加载AMS以及App启动中的AMS流程等方面进行详细介绍,…

存储过程的学习

1,前言 这是实习期间学习的,我可能是在学校没好好听课,(或者就是学校比较垃,没教这部分,在公司经理让我下去自己学习,太难了,因为是公司代码很多部分都是很多表的操作&#…

UI美工设计岗位的工作职责

UI美工设计岗位的工作职责1 职责: 1、负责软件界面的美术设计、创意工作和制作工作; 2、根据各种相关软件的用户群,提出构思新颖、有高度吸引力的创意设计; 3、对页面进行优化,使用户操作更趋于人性化; 4、维护现有的应用产品; 5、收集和…

MySQL SUBSTRING_INDEX() 函数的详细介绍

MySQL SUBSTRING_INDEX() 从给定字符串中返回指定数量的分隔符出现之前的子字符串。 当指定数字为正数时从最终分隔符的左侧返回子字符串,当指定数字为负数时从最终分隔符的右侧返回子字符串。 如果指定的次数大于分隔符的出现次数,则返回的子字符串将…

项目经理一起趟过的那些“坑”

大家好,我是老原。 在项目管理这行,有很多项目经理的前身都是搞技术的,他们大多数是因为技术工作做得好而走上管理岗位。 然而,这样走来的技术领导,在刚晋升时,往往会面临很多问题,经历痛苦的…

【Opencv入门到项目实战】(九):项目实战|信用卡识别|模板匹配|(附代码解读)

所有订阅专栏的同学可以私信博主获取源码文件 文章目录 0.背景介绍1.模板处理1.1模板读取1.2预处理1.3轮廓计算 2.输入图像处理2.1图形读取2.2预处理2.3轮廓计算2.4计算匹配得分 3.小结 0.背景介绍 接下来我们正式进入项目实战部分,这一章要介绍的是一个信用卡号识…

TDesign中后台管理系统-用户登录

目录 1 创建用户表2 开发后端接口3 测试接口4 修改登录页面调用后端接口最终效果总结 中后台系统第一个要实现的功能就是登录了,我们通常的逻辑是让用户在登录页面输入用户名和密码,调用后端接口去验证用户的合法性,然后根据接口返回的结果进…

Qt 8. UDP客户端通信

1. 代码 //UdpClient.h #ifndef UDPCLIENT_H #define UDPCLIENT_H#include <QtNetwork>class Ex2; // 声明类 class UdpClient : public QObject {Q_OBJECT public:explicit UdpClient(Ex2 *ui nullptr);~UdpClient();void Send(QByteArray buf,QHostAddress addr…

腾讯云服务器远程连接的方法大全

腾讯云服务器怎么连接登录&#xff1f;腾讯云服务器支持多种远程连接方法&#xff0c;可以使用腾讯云管理控制台自带的远程连接工具&#xff0c;也可以使用第三方远程连接工具&#xff0c;如如PuTTY、Xshell等&#xff0c;Linux操作系统可以SSH登录&#xff0c;Windows可以使用…

半导体学习入门书籍推荐之《Verilog数字系统设计教程》

Verilog HDL&#xff08;简称 Verilog &#xff09;是一种硬件描述语言&#xff0c;用于数字电路的系统设计。可对算法级、门级、开关级等多种抽象设计层次进行建模。 Verilog 继承了 C 语言的多种操作符和结构&#xff0c;与另一种硬件描述语言 VHDL 相比&#xff0c;语法不是…