Java程序设计入门教程 -- 一维数组

news2025/2/28 20:18:12

目录

一维数组创建

1.声明数组

2.分配数组内存空间

 3.数组元素访问

数组初始化

1.静态初始化

2.动态初始化

一维数组的拷贝

1.数组元素的拷贝

2.数组名的拷贝


一维数组创建

1.声明数组

       声明一个一维数组的方法很简单,格式如下:

               数据类型名[ ]   数组名;   或    数据类型名  数组名[ ];

       若声明一个数组,即先声明数组的数据类型(可以是基本数据类型或者是引用类型),它决定了数组中的每个元素都是该数据类型,再声明数组的名字。

声明一个整型数组a

int[] a; 或 int a[];

Student[] aStudent; 或 Student aStu;

2.分配数组内存空间

       声明一个一维数组之后,就可以通过new关键字为其申请分配内存空间,格式为:

                             new  数组类型[数组大小]

        其中[数组大小]是一个整型常量值,可以通过数组属性length来访问。

int[] intArray = new int[5];

        此处定义一个整型数组intArray,其中包含5个元素,每个元素为int类型,共向系统申请20个字节的内存空间。 

 3.数组元素访问

        对于一个已经定义好的大小为N的一维数组,包含了N个同类型的数组元素,对每个数组元素的访问可采用以下格式:

             数组名[元素下标]

其中,元素下标是元素在数组中的位置,为整型值,元素下标的取值范围是[0, N-1]

int[] a=new int[3];   int s1,s2;
a[1]=1;   a[2]=2;
s1=a[1]+a[2];  // s1值为3
s2=a[0]+a[2];  // s2值为2,a[0]虽然未有明确赋值,但具有默认值0
a[3]=3;  // error, 运行时错误,不存在a[3]元素

数组初始化

        一维数组初始化根据实现方式不同,可以分为静态初始化和动态初始化。数组所需的内存空间是在其初始化的时候由系统分配的。

1.静态初始化

        静态初始化,即在声明数组的时候,直接用数据为其赋值,此时数组的大小由初始化数据的个数决定。

int intArray[]={1,2,3,4}; // intArray数组大小为4
String stringArr[]={"abc", "How", "you"};//stringArr数组大小为3

2.动态初始化

        动态初始化,即通过new 关键字为数组申请内存空间并赋值,其中对于类类型数组需要明确数组结构,并为每个数组元素申请空间。

String stringArray[ ]= new String[2]; //确定数组有2个元素
stringArray[0]= new String("abc");//为第一个数组元素分配空间
stringArray[1]= new String("123");//为第二个数组元素分配空间


一维数组的拷贝

        一维数组拷贝这个问题可以分解为两个子问题:
               一是数组元素的拷贝;   二是数组名的拷贝。

        数组元素的拷贝属于值复制,即把数组元素的值作一个完全的复制。

1.数组元素的拷贝

int[] a={1,2,3};
int x=a[1];  // 变量x具有了数组元素 a[1]的完全备份

2.数组名的拷贝

       数组名的拷贝属于地址复制,即把数组首元素的地址复制过去,而数组的实体(各数组元素的值)没有复制过去,这样处理的结果是,两个数组名管理着同一个数组实体空间。

int[] a={1,2,3};
int[] b=a;  // 把数组a的首地址复制给数组b,结果 数组a和b
                //管理着同一个数组空间,a[i]即为b[i]
b[2]=5;     //等价于执行了a[2]=5


数组遍历

       数组遍历是数组应用中的最基本操作,指的是每一个数组元素至少被访问一次,每次访问的具体操作可以是读取或修改。

       遍历数组首先要知道数组大小,Java提供了length属性方便获取数组大小,格式:        

                 数组名.length

for循环遍历 

利用for循环与数组长度length属性的结合,可以高效地实现数组的遍历。

int[] a=new int[10];
for(int i=0; i< a.length; i++)    
    a[i]=i;//为每一个a[i]赋值

foreach循环遍历

        自JDK 1.5.0Java提供了增强型for的新特性,称为foreach循环,格式如下:    for (元素类型  临时变量x : 遍历对象obj)

                     {    访问x的语句;    }

foreach循环常用于数组遍历,简单而高效。

int arr[] = {2, 3, 1}; //数组元素arr[0]~arr[2]  
for (int x : arr)//每次循环读取arr[i]的值,并存入变量x且i自增1 
     System.out.print(x+“ ”); //依次输出数组元素的值:1 2 3

利用foreach输出数组:

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

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

相关文章

解决使用json配置文件删除k8s中namespace解析json报错的问题

报错提示如下&#xff1a; C:\Users\jiangcheng>curl -k -H "Content-Type: application/json" -X PUT --data-binary dev.json http://127.0.0.1:8081/api/v1/namespaces/dev/finalize { "kind": "Status", "apiVersion": "…

Unity2D骨骼动画制作之单张图片编辑

1、打开骨骼制作面板 在Sprite Editor左侧选项&#xff0c;选择Skinning Editor 2、 &#xff08;1&#xff09;骨骼制作 Preview Pose 预览模式&#xff0c;可以预览动作并不会真正的改变设置 Reset Pose 将角色骨骼和关节恢复到原始位置 Edit Bone 编辑骨骼&#xff0c;…

bert中文文本摘要代码(3)

bert中文文本摘要代码 写在最前面关于BERT使用transformers库进行微调 train.py自定义参数迭代训练验证评估更新损失绘图主函数 test.pytop_k或top_p采样sample_generate函数generate_file函数主函数 写在最前面 熟悉bert&#xff0b;文本摘要的下游任务微调的代码&#xff0c…

网络安全合规-数据出境安全评估

&#xff08;一&#xff09;数据出境安全评估的适用范围为&#xff1a; 数据处理者向境外提供重要数据&#xff1b; 关键信息基础设施运营者和处理100万人以上个人信息的数据处理者向境外提供个人信息&#xff1b;自上年1月1日起累计向境外提供10万人个人信息或者1万人敏感个…

浮点数在内存中的存储

&#x1f493;博主CSDN主页:杭电码农-NEO&#x1f493;   ⏩专栏分类:C语言学习分享⏪   &#x1f69a;代码仓库:NEO的学习日记&#x1f69a;   &#x1f339;关注我&#x1faf5;带你学习更多C语言知识   &#x1f51d;&#x1f51d; 浮点数在内存的存储 1. 前言&#…

vue3+WebRTC拉流(正确姿势)

vue3WebRTC拉流&#xff08;正确姿势&#xff09; 文章目录 vue3WebRTC拉流&#xff08;正确姿势&#xff09;缘由一、webRtc拉流是什么&#xff1f;1.实时通信&#xff1a;2.网络穿越&#xff1a;3.媒体处理&#xff1a;4.数据通道&#xff1a;5.使用场景: 二、使用webRtc引用…

《priority_queue的模拟实现》

本文主要介绍 文章目录 一、仿函数1.1 仿函数的定义1.2 普通仿函数1.3 需要自己实现仿函数 二、priority_queue的模拟实现 一、仿函数 1.1 仿函数的定义 所谓的仿函数(functor)&#xff0c;是通过重载()运算符模拟函数形为的类。 因此&#xff0c;这里需要明确两点&#xff1…

纯干货:数据库连接耗时慢原因排查

背景 最近公司的社区相关的服务需要优化&#xff0c;由于对业务不熟悉&#xff0c;只能借助监控从一些慢接口开始尝试探索慢的原因。由于社区相关的功能务是公司小程序流量入口&#xff0c;所以相应的服务访问量还是比较高的。针对这类高访问的项目&#xff0c;任何不留神的地…

中睿天下参编的《中国网信产业桔皮书-数据安全》正式发布

5月28日&#xff0c;2023中关村论坛中关村国际技术交易大会第七届中国网信产业前锋汇成功举办&#xff0c;本次会议以“全球数字经济发展与数据安全关键技术”为主题&#xff0c;会议由中国&#xff08;中关村&#xff09;网络安全与信息化产业联盟主办&#xff08;以下简称联盟…

芯片的XIP与BootRom启动方式

XIP&#xff1a;execute in place&#xff0c;就地执行&#xff0c;即芯片内执行&#xff0c;指应用程序可以直接在flash闪存中取指然后译码、执行&#xff0c;不必再把代码读到系统RAM中&#xff0c;flash内执行时指Nor flash不需要初始化&#xff0c;可以直接在flash内执行代…

Elsevier期刊中,撰写Author Statement

Author Statement或Authorship Contribution通常指作者声明&#xff0c;用于声明当前学术论文中每位作者的贡献。 大部分期刊都要求作者在首次投稿的时候就添加这部分内容&#xff0c;也有一些仅要求在发表之前提交。作者声明指导与模板有些学术期刊会专门提供具体的作者声明模…

Vue3 mixin 自定义指令 teleport

文章目录 Vue3 mixin & 自定义指令 & teleportmixin 混入简单使用 自定义指令简单使用全局注册参数 teleport 传送门简单使用 Vue3 mixin & 自定义指令 & teleport mixin 混入 mixins 选项接受一个 mixin 对象数组。这些 mixin 对象可以像普通的实例对象一样…

【企业化架构部署】Apache网页优化

文章目录 一、Apache网页优化概述1.优化内容2.网页压缩2.1gzip概述2.2作用2.3Apache的压缩模块概述mod_gzip模块与mod_deflate模块 3.配置网页压缩功能3.1启用网页压缩功能步骤3.2具体操作步骤 4.配置网页缓存功能4.1启用网页压缩功能步骤4.2具体操作步骤 二、Apache安全优化1.…

【JVM】.class类文件是如何被加载的?

一、类加载过程 .class文件最终加载到JVM并使用整体步骤及图示如下&#xff1a; 每个步骤所做的事情如下&#xff1a; 1、加载 &#xff08;1&#xff09;通过一个类的全限定名来获取该类文件的二进制字节流&#xff1b;&#xff08;读取class文件到内存中&#xff09; &am…

点击这里!解锁海量数据在openGauss Developer Day 2023的高光时刻

5月26日&#xff0c;openGauss Developer Day 2023在此起彼伏的掌声中圆满落幕。最前沿的核心产品、最深度的专业解读、最全面的落地案例......海量数据在此次盛会上时时高光&#xff0c;事事精彩&#xff0c;尤其是在专场分论坛上&#xff0c;数据库领域各路精英济济一堂&…

linuxOPS基础_linux文件检索及筛选

find命令 查找文件 主要功能&#xff1a;当我们查找一个文件时&#xff0c;必须使用的一个命令。 find 搜索路径 [选项]选项选项说明-name指定要搜索文件的名称&#xff0c;支持*星号通配符&#xff08;Shift 8&#xff09;-type代表搜索的文件类型&#xff0c;f代表普通文件…

使用开源代码和开源软件如何选择开源许可证

常用的开源许可证 世界上的开源许可证大约有近百种&#xff0c;如何使用开源代码和开源软件并正确理解、遵守这些开源许可证赋予的权利和义务是个比较繁琐的问题&#xff0c;我们对其中主要的六种许可证GPL、BSD、MIT、Mozilla、Apache和LGPL做个简单的梳理&#xff0c;对比一下…

什么是企业移动化管理 (EMM)

什么是EMM或企业移动化管理 企业移动化管理 &#xff08;EMM&#xff09; 是组织用来保护公司拥有和员工拥有的移动设备上的敏感公司数据的一组策略和做法。Mobile Device Manager Plus 是一个全面的 EMM 解决方案&#xff0c;允许 IT 团队和管理员跨多个平台管理设备&#xf…

推进产业发展健全服务体系,中国信通院数字员工评测工作正式启动

数字技术与应用正在快速重塑全新的经济发展格局&#xff0c;创新应用人工智能、大数据、云计算等新兴技术是企业实施数字化转型的重要策略之一。 “数字员工”是数字生产力与创造力体系的核心要素&#xff0c;自动化、智能化的执行模式将成为企业业务运营的新常态。随着数字员…

外包实在是太坑了,划水三年,感觉人都废了

先说一下自己的情况&#xff0c;专科生&#xff0c;19年通过校招进入杭州某个外包软件公司&#xff0c;干了接近3年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落! 而我已经在一个企业干了3年的功…