Java数组创建与使用
一.创建和初始化
1.数组是怎么创建的?
直接举例子:
int[] arr = new int[10];
这里只简单的举一个int开辟数组的例子。
可见java数组的创建于C语言是不同的。前面是一个int[ ]就是一个数组的数据类型,后面的arr是数组名,最后[ ]里的数字10是开辟10个这样的空间。
2.数组的初始化
数组的初始化分为两种:一种是静态初始化,一种是动态初始化。
2.1动态初始化
这种就是上面举的例子那样:
int[] arr = new int[10];
直接开辟十个空间,只指定元素个数,但不指定元素是谁。
2.2静态初始化
不需要指定元素个数,据情况而定。像这样:
int[] arr1=new int[]{1,3,2,4};
int[] arr2={1,2,3,4};
上面是完整版本,下面的arr2是上面的简化版本。
当然还可以分成两步:
int[] arr;
//arr = new int[]{1,2,3,4};
//或者arr = new int[13];
这种初始化是不行的:
int[] arr4;
arr4={1,2,3,4};
2.3如果不初始化,数组会取默认值。
| 类型 | 默认值 |
| byte | 0 |
| short | 0 |
| int | 0 |
| long | 0 |
| float | 0.0f |
| double | 0.0 |
| char | /u0000 |
| boolean | false |
二.数组的使用
遍历数组的方法
第一种,手动打出每个要访问的元素,比较笨。
第二种,用for循环遍历。
第三种,这个C语言没有,用的是for-each遍历。例子:
int[] arr = {1,2,3,4};
for(int x : arr){System.out.println(x);
}
三.数组是引用类型
1.JVM内存分布

其中方法区和堆区是由所有线程共享的数据区,剩下的三个是线程隔离的数据区。
各区的简介:
程序计数器 (PC Register): 只是一个很小的空间,保存下一条执行的指令的地址;
虚拟机栈(JVM Stack): 与方法调用相关的一些信息,每个方法在执行时,都会先创建一个栈帧,栈帧中包含有:局部变量表、操作数栈、动态链接、返回地址以及其他的一些信息,保存的都是与方法执行时相关的一 些信息。比如:局部变量。当方法运行结束后,栈帧就被销毁了,即栈帧中保存的数据也被销毁了;
本地方法栈(Native Method Stack): 本地方法栈与虚拟机栈的作用类似.,只不过保存的内容是Native方法的局部变量,在有些版本的 JVM 实现中(例如HotSpot),本地方法栈和虚拟机栈是一起的;
堆(Heap): JVM所管理的最大内存区域。使用 new 创建的对象都是在堆上保存(例如前面的new int[]{1, 2, 3} ),堆是随着程序开始运行时而创建,随着程序的退出而销毁,堆中的数据只要还有在使用,就不会被销毁;
方法区(Method Area): 用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。方法编译出的的字节码就是保存在这个区域。
2.引用数据类型
引用数据类型存储的不是变量的值,而是存储对象所在空间的地址,有点指针那味儿。

上图是两个数组演示图,arr1与arr2各自储存一个空间的地址。

上图是arr2=arr1后,两个数组储存的地址是一样的,因此指向同一个空间。
像这种情况,0X34这块空间没有引用类型指向,会被JVM垃圾回收。
相关文章:
Java数组创建与使用
一.创建和初始化 1.数组是怎么创建的? 直接举例子: int[] arr new int[10]; 这里只简单的举一个int开辟数组的例子。 可见java数组的创建于C语言是不同的。前面是一个int[ ]就是一个数组的数据类型,后面的arr是数组名,最后[…...
EMAP如何建数据源
新建数据源: EMAP底座的数据源,名称为“DB_EMAP_BIZ_BASE",不可随意更改. 新建业务系统数据源,名称为”DB_STUDY_BIZ_BASE". 支持的数据库: 支持两种类型数据库:H2 和 oracle 新建H2数据源&am…...
在 Linux 中创建文件
目录 ⛳️推荐 前言 使用 touch 命令创建一个新的空文件 使用 echo 命令创建一个新文件 使用 cat 命令创建新文件 测试你的知识 ⛳️推荐 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到…...
高德地图+HTML+点击事件+自定心信息窗体
代码如下 <!doctype html> <html><head><meta charset"utf-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"initial-scale1.0, user-scalableno, width…...
流畅的python-学习笔记_协议+继承优缺点
接口和协议 python动态语言,没有interface等概念,接口和协议方法有的也有替代品,所以类似于鸭子类型,只关注行为像鸭子,不关注它是不是鸭子。不是每个接口都得实现,这是允许的 猴子补丁 可动态给对象添加…...
哪个文件加密软件好?迅软加密软件特性解析
哪个文件加密软件好? 这里推荐一款好用的文件加密软件,迅软DSE加密软件,有17年的加密经验了,已为三十万企业解决信息安全问题。简单易用,兼容性强,各类型文件都可加密。完善的售后保障,各地有服…...
Ubuntu 根目录扩容
环境 物理机:MacBook Air M2 Sonoma 14.4.1 虚拟机:VMware Fusion Player 13.5.0 镜像:Jammy Desktop ARM64 步骤 删除所有快照,关闭镜像,在 vm 上找到该镜像的硬盘设置,进行扩容; 开启镜像&am…...
人证比对API接口如何对接
人证比对API接口全称叫人脸身份证比对API接口也叫人脸实名认证API接口、实人认证API接口,指的是输入姓名、身份证号码和头像照片,与公安库身份证头像进行权威比对,返回比较结果。那么人脸身份证比对API接口该如何对接呢? 首先我们…...
NIO(非阻塞I/O)和IO(阻塞I/O)详解
文章目录 一、NIO(Non-blocking I/O,非阻塞I/O)1、Channel(通道)2、Buffer(缓冲区)1、ByteBuffer 读取文件2、ByteBuffer 的常用方法2、ByteBuffer 的结构详解3、ByteBuffer 与字符串互转4、Sca…...
【网络】传输层的特点总结
1传输层协议 传输层主要有两个常见的协议:TCP(传输控制协议)和UDP(用户数据报协议)。TCP 提供可靠的、面向连接的通信服务,适用于对数据传输可靠性要求高的场景,如网页浏览、文件传输等。而 UD…...
Scala 多版本下载指南
Scala,这一功能丰富的编程语言,结合了面向对象和函数式编程的精华,为开发者提供了强大的工具来构建高效、可扩展的应用程序。随着Scala社区的不断壮大和技术的演进,多个版本的Scala被广泛应用于不同的项目与场景中。本文旨在为您提…...
已经安装tensorflow,仍报错No module named ‘tensorflow‘
在安装某些python虚拟环境的教程文章中,经常看到有评论区说安装了但是调用显示无模块,例如pytorch和tensorflow等等。 其实跟之前我写过的一篇文章解决方法类似,就是python项目中需要应用哪个虚拟环境,这个项目的python解释器就选…...
五一 作业
#include <iostream>using namespace std; class Num { private:int a; public:Num() {}Num(int a):a(a){}//设置a的值void set(int a){this->aa;}//1-a的和void Sum(){if(a<1){cout<<"a<1"<<endl;return;}int sum0;for(int i1;i<a;i)…...
TesseractOCR安装及使用
1. 基本概念 1.1 Tesseract Tesseract 是一款基于 C 语言开发并开源的光学识别工具,提供底层的文字识别能力。 1.2 Tess4J Tess4J 是对 Tesseract OCR API 的 Java 封装,有了 Tess4J 之后 Java 就可以直接调用本地安装的 Tesseract 进行文字识别。 …...
npm安装指定版本,npm删除依赖,卸载依赖
安装指定版本 npm中安装指定的版本号,格式为 ‘包名版本号’ npm install 包名称版本号 --save 例如安装jquery: npm install jquery3.0.0 --save在package.json里面可以看到对应的包: "jquery": "^3.0.0"注意:已有…...
从代码到洞察:使用API接口深入分析商品详情数据
在电子商务的世界中,商品详情数据是企业做出明智决策的基石。API(应用程序编程接口)提供了一种强大的方式来获取这些数据,不仅可以简化数据获取过程,还可以为深入分析和业务洞察提供丰富的信息。本文将探讨如何使用API…...
数字旅游以科技创新为核心:推动旅游服务的智能化、精准化、个性化,为游客提供更加贴心、专业、高效的旅游服务
目录 一、引言 二、数字旅游以科技创新推动旅游服务智能化 1、智能化技术的应用 2、提升旅游服务的效率和质量 三、数字旅游以科技创新推动旅游服务精准化 1、精准化需求的识别与满足 2、精准化营销与推广 四、数字旅游以科技创新推动旅游服务个性化 1、个性化服务的创…...
HTTP深度指南:协议结构、请求方法与状态码
详解HTTP HTTP教程HTTP消息结构HTTP状态码HTTP和HTTPS HTTP教程 HTTP(超文本传输协议,HyperText Transfer Protocol)是一种用于分布式、协作式、超媒体信息系统的应用层协议。* HTTP是一个基于TCP/IP通信协议来传递数据的(HTML文…...
负载或反向代理服务器如何配置XFF以获取终端真实IP
文章目录 XFF介绍工作原理注意事项 配置方式1. Nginx2. HAProxy3. F5 BIG-IP4. Radware注意事项 本文介绍如何在反向代理或负载中配置XFF,方便后端服务获取请求来源的真实IP XFF介绍 X-Forwarded-For(简称XFF)是一个非标准的HTTP头部字段&a…...
Satellite Communications Symposium(WCSP2022)
1.Power Allocation for NOMA-Assisted Integrated Satellite-Aerial-Terrestrial Networks with Practical Constraints(具有实际约束的 NOMA 辅助天地一体化网络的功率分配) 摘要:天地一体化网络和非正交多址接入被认为是下一代网络的关键组成部分,为…...
别再死记ResNet结构了!用PyTorch手把手带你复现ResNet-50(附完整代码与可视化)
从零构建ResNet-50:PyTorch实战与架构解密 当你第一次看到ResNet的残差连接时,是否曾被那个"跳跃"的结构所困惑?为什么简单的跨层连接就能解决深度网络的退化问题?本文将以工程师视角,带你用PyTorch从第一行…...
RK3562核心板选型与开发实战:从硬件拆解到软件适配
1. 项目概述:为什么是PET_RK3562_CORE? 在嵌入式开发领域,尤其是智能硬件和物联网设备的设计中,核心板的选择往往是决定项目成败、成本控制和技术路线的关键一步。最近几年,基于ARM架构的国产化芯片方案异军突起&#…...
如何免费下载中国大学MOOC视频:MoocDownloader完整使用指南
如何免费下载中国大学MOOC视频:MoocDownloader完整使用指南 【免费下载链接】MoocDownloader An MOOC downloader implemented by .NET. 一枚由 .NET 实现的 MOOC 下载器. 项目地址: https://gitcode.com/gh_mirrors/mo/MoocDownloader 你是否曾经因为网络不…...
拆解安防摄像头的“眼睛”:从IMX290 Sensor到镜头,如何一步步调出通透画质?
拆解安防摄像头的“眼睛”:从IMX290 Sensor到镜头,如何一步步调出通透画质? 在安防监控领域,画质表现直接决定了产品的核心竞争力。当我们谈论"通透画质"时,实际上是在讨论一种光学与电子系统的协同优化艺术…...
避坑指南:Vivado增量综合的‘甜蜜区’与‘雷区’——从日志文件看何时该用、何时该弃
Vivado增量综合实战决策手册:如何精准识别高效区间与风险边界 在FPGA开发领域,时间就是竞争力。当项目进入迭代优化阶段,每次按下综合按钮后的等待时间,都可能成为团队效率的隐形杀手。Vivado的增量综合功能就像一把双刃剑——用对…...
Beyond Compare 5终极激活指南:3分钟获取永久授权密钥
Beyond Compare 5终极激活指南:3分钟获取永久授权密钥 【免费下载链接】BCompare_Keygen Keygen for BCompare 5 项目地址: https://gitcode.com/gh_mirrors/bc/BCompare_Keygen 你是否还在为Beyond Compare 5的30天试用期到期而烦恼?每次打开软件…...
Unity VR开发选无线还是有线?Oculus Quest 2串流实战对比与效率工具推荐
Unity VR开发无线与有线串流深度对比:Oculus Quest 2高效开发全指南 当你沉浸在Unity VR开发的世界中,Oculus Quest 2无疑是目前最受欢迎的测试平台之一。但每次修改代码后漫长的打包安装过程,是否让你在无线自由与有线稳定之间反复纠结&…...
别再手动挖洞!3DMAX QuickBoolean插件保姆级安装与工具栏配置指南(附图标含义详解)
3DMAX QuickBoolean插件:从零开始的高效布尔运算实战指南 在三维建模领域,布尔运算一直是创建复杂几何形状的必备技能。无论是建筑可视化中的门窗开洞,还是工业设计中的零件装配,传统布尔运算操作往往伴随着繁琐的步骤和不可预测的…...
告别元器件搜索焦虑:立创EDA专业版+立创商城联动使用技巧全解析
告别元器件搜索焦虑:立创EDA专业版立创商城联动使用技巧全解析 在电子设计领域,元器件选型与供应链管理一直是工程师面临的核心挑战之一。当项目进入关键阶段,一个看似简单的0.1uF电容缺货或封装不匹配,就可能引发连锁反应&#x…...
【亲测免费】 GeoMatch_src:基于边缘的模板匹配技术
GeoMatch_src:基于边缘的模板匹配技术 【下载地址】GeoMatch_srcVS2015OpenCV3.3版说明文档 本仓库提供了**GeoMatch_src**项目的更新版本,专为使用Visual Studio 2015和OpenCV 3.3环境的开发者设计。GeoMatch_src是一个基于边缘的模板匹配技术实现&…...
