数组的定义与使用
文章目录
- 数组的基本概念
- 数组的基本用法
- 数组与方法互操作
一、数组的基本概念
数组:可以看成是相同类型元素的一个集合。在内存中是一段连续的空间。
数组的创建及初始化
T[] 数组名 = new T[N];T:表示数组中存放元素的类型T[]:表示数组的类型N:表示数组的长度
数组的初始化
数组的初始化主要分为动态初始化以及静态初始化。
动态初始化:在创建数组时,直接指定数组中元素的个数
int[] array = new int[10];
静态初始化:在创建数组时不直接指定数据元素个数,而直接将具体的数据内容进行指定语法格式: T[] 数组名称 = {data1, data2, data3, ..., datan};int[] array1 = new int[]{0,1,2,3,4,5,6,7,8,9};double[] array2 = new double[]{1.0, 2.0, 3.0, 4.0, 5.0};String[] array3 = new String[]{"hell", "Java", "!!!"};
注意:
静态初始化虽然没有指定数组的长度,编译器在编译时会根据{}中元素个数来确定数组的长度。
// 注意:虽然省去了new T[], 但是编译器编译代码时还是会还原int[] array1 = {0,1,2,3,4,5,6,7,8,9};double[] array2 = {1.0, 2.0, 3.0, 4.0, 5.0};String[] array3 = {"hell", "Java", "!!!"};
如果没有对数组进行初始化,数组中元素有其默认值

如果数组中存储元素类型为引用类型,默认值为null
数组的使用
public class Main{public static void main(String[] args) {int[]array = new int[]{10, 20, 30, 40, 50};System.out.println(array[0]);System.out.println(array[1]);System.out.println(array[2]);System.out.println(array[3]);System.out.println(array[4]);// 也可以通过[]对数组中的元素进行修改array[0] = 100;System.out.println(array[0]);}
}
注意:
1. 数组是一段连续的内存空间,因此支持随机访问,即通过下标访问快速访问数组中任意位置的元素 。
2. 下标从0开始,介于[0, N)之间不包含N,N为元素个数,不能越界,否则会报出下标越界异常。 抛出了 java.lang.ArrayIndexOutOfBoundsException 异常. 使用数组一定要下标谨防越界.
遍历数组
import java.util.Arrays;public class Main{public static void main(String[] args) {int[]array = new int[]{10, 20, 30, 40, 50};//在数组中可以通过 数组对象.length 来获取数组的长度for(int i=0;i<array.length;i++)System.out.println(array[i]);//利用for eachfor(int x:array)System.out.println(x);//利用Arrays将数组转化成字符串String ret=Arrays.toString(array);System.out.println(ret);}
}
二、数组的基本用法
初始JVM的内存分布
public static void func() {int a = 10;int b = 20;int[] arr = new int[]{1,2,3};}
import java.util.Arrays;public class Main{public static void main(String[] args) {func();}public static void func() {int[] array1 = new int[3];array1[0] = 10;array1[1] = 20;array1[2] = 30;int[] array2 = new int[]{1,2,3,4,5};array2[0] = 100;array2[1] = 200;array1 = array2;array1[2] = 300;array1[3] = 400;array2[4] = 500;for (int i = 0; i < array2.length; i++) {System.out.println(array2[i]);}}
} 
注意:一个引用对象不能同时指向多个对象。
null 在 Java 中表示 "空引用" , 也就是一个不指向对象的引用.
Java 中并没有约定 null 和 0 号地址的内存有任何关联
三、数组与方法互操作
public class Main{public static void main(String[] args) {int num = 0;func(num);System.out.println("num = " + num);}public static void func(int x) {x = 10;System.out.println("x = " + x);}
} 
public class Main{public static void main(String[] args) {int[] arr = {1, 2, 3};func(arr);System.out.println("arr[0] = " + arr[0]);}public static void func(int[] a) {a[0] = 10;System.out.println("a[0] = " + a[0]);}
} 
public class Main{public static int[] fib(int n){if(n <= 0){return null;}int[] array = new int[n];array[0] = array[1] = 1;for(int i = 2; i < n; ++i){array[i] = array[i-1] + array[i-2];}return array;}public static void main(String[] args) {int[] array = fib(10);for (int i = 0; i < array.length; i++) {System.out.println(array[i]);}}
} 
相关文章:
数组的定义与使用
文章目录 数组的基本概念数组的基本用法数组与方法互操作一、数组的基本概念 数组:可以看成是相同类型元素的一个集合。在内存中是一段连续的空间。 注意:1. 数组中存放的元素其类型相同 2. 数组的空间是连在一起的 3. 每个空间有自己的编号࿰…...
SAP ABAP用程序删除开发KEY
在BASISI系统管理中,用户的开发Key存储在DEVACCESS表中,如果由于审计需要删除一些用户的开发Key,而系统有限制SM30, SE16 or SE16N 等事务码的使用,你就可以通过一个小程序去删除开发Key。 代码如下: REPORT ZBCDEV…...
安卓设备TF卡概率性无法识别问题
现象 使用t卡的设备出货前检测是正常的,放在仓库中或出货后再开机,有概率的机器无法识别,重新插拔或重启无效,拔下来放pc电脑上识别后再插回设备则恢复正常能识别。 设备信息 系统: Android 8.1.0 数量:抽检有12%的设备无法识别 TF卡:SanDisk Ultra 64GB 10 A1 microS…...
linux安装nodejs和微信小程序自动化部署操作
一.运行环境安装 Node.js 并且版本大于 8.0基础库版本为 2.7.3 及以上开发者工具版本为 1.02.1907232 及以上安装node.js(1).下载node包官网地址:https://nodejs.org/en/download/如果英文不好的,可以看中文网站:https://nodejs.org/zh-cn/download/点击上面的进行下载,当然,也…...
JavaScript高级 Proxy Reflect
1. Proxy 1. 监听对象的变化 有一个对象,我们希望监听这个对象中的属性被设置或获取的过程 我们可以通过 Object.defineProperty 来实现 const obj {name: "why",age: 18,height: 1.88 }// 需求: 监听对象属性的所有操作 // 监听属性的操作 // 1.针对…...
Eth-trunk :LACP模式链路聚合实战
Eth-trunk : LACP模式链路聚合实战 需求描述 PC1和PC3数据vlan10 ,网段为192.168.10.0 /24PC2和PC4数据vlan20 ,网段为192.168.20.0 /24确保设备之间互联互通,使用最大互联带宽并没有环路确保相同网段的PC可以互通判断交换机之间的每个端口…...
【第二章 - 线性表之顺序表】- 数据结构(八千字详解)
目录 一、线性表的定义和特点 二、线性表的顺序表示和实现 2.1 - 线性表的顺序存储表示 2.2 - 顺序表中基本操作的实现 三、练习 3.1 - 移除元素 3.2 - 删除有序数组中的重复项 3.3 - BC100 有序序列合并 3.4 - 88.合并两个有序数组 四、顺序表的问题及思考 线性表、…...
【史上最全面esp32教程】RGB彩灯篇
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录rgb彩灯的介绍使用方法连线库操作彩灯变换颜色实验彩灯呼吸灯效果总结提示:以下是本篇文章正文内容,下面案例可供参考 rgb彩灯的介绍 ESP32…...
大规模 IoT 边缘容器集群管理的几种架构-5-总结
前文回顾 大规模 IoT 边缘容器集群管理的几种架构-0-边缘容器及架构简介大规模 IoT 边缘容器集群管理的几种架构-1-RancherK3s大规模 IoT 边缘容器集群管理的几种架构-2-HashiCorp 解决方案 Nomad大规模 IoT 边缘容器集群管理的几种架构-3-Portainer大规模 IoT 边缘容器集群管…...
逆风翻盘拿下感知实习offer,机会总是留给有准备的人
个人背景211本,985硕,本科是计算机科学与技术专业,研究生是自学计算机视觉方向,本科主要做C和python程序设计开发,java安卓开发,研究生主要做目标检测,现在在入门目标跟踪和3d目标检测。无论文&…...
SpringBoot整合阿里云OSS文件上传、下载、查看、删除
SpringBoot整合阿里云OSS文件上传、下载、查看、删除1、开发准备1.1 前置知识1.2 环境参数1.3 你能学到什么2. 使用阿里云OSS2.1 创建Bucket2.2 管理文件2.3 阿里云OSS文档3. 项目初始化3.1 创建SpringBoot项目3.2 Maven依赖3.3 安装lombok插件4. 后端服务编写4.1 阿里云OSS配置…...
对话数字化经营新模式:第2届22客户节(22Day)年猪宴圆满结束!
2023年2月22日,由杭州电子商务研究院联合贰贰网络(集团)、TO B总监联盟等发起举办的“第二届客户节22Day”暨2022年度爱名奖 AM AWARDS颁奖及22年猪宴沙龙活动圆满结束。 (主持人:杜灵芝) 本次沙龙邀请到浙江工业大学管理学院程志…...
数据结构——第二章 线性表(5)——双向循环链表
双向循环链表1.双向循环链表的定义2.双向循环链表的基本操作实现2.1 双向循环链表的初始化操作2.2.双向循环链表的插入操作2.3. 双向循环链表的删除操作1.双向循环链表的定义 单向链表便于查询后继结点,不便于查询前驱结点。为了方便两个方向的查询,可以…...
4面美团软件测试工程师,却忽略了这一点,直接让我前功尽弃
说一下我面试别人时候的思路 反过来理解,就是面试时候应该注意哪些东西;用加粗部分标注了 一般面试分为这么几个部分: 一、自我介绍 这部分一般人喜欢讲很多,其实没必要。大约5分钟内说清楚自己的职业经历,自己的核…...
robot remote server用这个server去远程获取ip
server端配置: 1、安装python环境 2、下载robot remote server 下载地址:https://pypi.python.org/pypi/robotremoteserver/(不要用pip下载,把robotremoteserver.py文件下载下来) 3、首先创建一个目录E:\rfremote\ &a…...
【WSL】Windows 上安装并启动
一、什么是 WSL Windows Subsystem for Linux 适用于 Linux 的 Windows 子系统 可以帮助我们自然、方便地在 Windows 上使用 Linux 子系统 二、安装 我们要安装的是 WSL2 , 因为其功能相对来说更加完善 1. 简化安装 — 本人亲测不好用 简化安装:高…...
SAFe(Scaled Agile Framework)学习笔记
1.SAFe 概述 SAFe(Scaled Agile Framework)是一种面向大型企业的敏捷开发框架,旨在协调多个团队和部门的协同工作,以实现高效的软件开发和交付。下面是SAFe框架的简单介绍总结: SAFe框架包括以下四个层次:…...
Redis 集群搭建
前缀参考文章1:Centos7 安装并启动 Redis-6.2.6 前缀参考文章2:Redis 主从复制-服务器搭建【薪火相传/哨兵模式】 管道符查看所有redis进程:ps -ef|grep redis 杀死所有redis进程:killall redis-server 1. 首先修改 redis.conf 配…...
【Unity VR开发】结合VRTK4.0:创建物理按钮
语录: 如今我努力奔跑,不过是为了追上那个曾经被寄予厚望的自己 前言: 使用线性关节驱动器和碰撞体从动器可以轻松创建基于物理的按钮,以使交互者能够在物理上按下按钮控件,然后挂钩到驱动器事件中以了解按钮何时被按…...
【软件测试】web自动化测试如何开展合适?自动化测试用例如何设计?资深测试的总结......
目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 首先,还…...
挑战复杂功能,让快马AI成为你微信小程序开发的智能编程搭档
最近在开发一个微信小程序时,遇到了一个比较复杂的自定义组件需求:一个可以左右滑动切换日期、并显示对应日程的周视图日历。这个功能看似简单,但实际开发中涉及到日期计算、滑动事件处理、数据绑定等多个难点。好在发现了InsCode(快马)平台&…...
颠覆式图像分层黑科技:layerdivider让设计效率提升95%的秘密
颠覆式图像分层黑科技:layerdivider让设计效率提升95%的秘密 【免费下载链接】layerdivider A tool to divide a single illustration into a layered structure. 项目地址: https://gitcode.com/gh_mirrors/la/layerdivider 设计效率的革命性突破࿱…...
深度解析开源项目:NVIDIA Profile Inspector 完全指南与实战配置方案
深度解析开源项目:NVIDIA Profile Inspector 完全指南与实战配置方案 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector NVIDIA Profile Inspector(NPI)是一款功能强大的…...
揭秘AI教材写作:低查重率,用AI轻松搞定教材编写难题!
编写教材需要丰富的资料作为基础,但传统的资料整理方式早已无法满足当前的需求。过去,课标文件、学术论文和教学案例等信息零散地散落在多个平台上,比如知网和教研网站,这让我们花费数天才筛选到有用的内容。而即使所有资料都收集…...
手把手实战:微信小程序+SpringBoot+Vue3全栈开发指南(二)
1. 从Vue2升级到Vue3的核心变化 很多开发者还在使用Vue2进行微信小程序开发,但Vue3已经带来了许多革命性的改进。我在最近的一个电商小程序项目中完成了技术栈升级,实测下来性能提升非常明显。Vue3最大的变化是引入了Composition API,这让我们…...
LoadRunner Developer实战:如何在VSCode中集成性能测试(含Jenkins流水线配置)
LoadRunner Developer实战:VSCode集成与Jenkins流水线配置全指南 在DevOps实践中,性能测试左移已成为提升软件质量的关键策略。作为Micro Focus推出的开发者友好型工具,LoadRunner Developer让开发团队能在编码阶段就发现性能瓶颈。本文将手…...
忍者像素绘卷一文详解:Z-Image-Turbo加速模型+Masashi Kishimoto风格注入
忍者像素绘卷一文详解:Z-Image-Turbo加速模型Masashi Kishimoto风格注入 1. 创作理念与技术亮点 忍者像素绘卷是一款革命性的图像生成工具,它将传统忍者漫画的热血精神与现代AI技术完美结合。这款工具基于Z-Image-Turbo深度优化,专为16-Bit…...
FireRedASR-AED-L从零开始教程:无需Python环境,镜像开箱即用识别中英混合语音
FireRedASR-AED-L从零开始教程:无需Python环境,镜像开箱即用识别中英混合语音 你是不是经常遇到这样的场景?手头有一段重要的会议录音,里面既有中文讨论,又夹杂着几个英文专业术语,想把它转成文字却找不到…...
OpenMS全面解析:开源质谱数据分析平台的实战指南
OpenMS全面解析:开源质谱数据分析平台的实战指南 【免费下载链接】OpenMS The codebase of the OpenMS project 项目地址: https://gitcode.com/gh_mirrors/op/OpenMS OpenMS是一款功能全面的开源质谱数据分析平台,专为液相色谱-质谱(LC-MS)数据管…...
如何永久保存微信聊天记录:WeChatMsg本地化解决方案
如何永久保存微信聊天记录:WeChatMsg本地化解决方案 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeChatM…...

