Java数组创建与使用

news2024/12/23 14:51:19

一.创建和初始化

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如果不初始化,数组会取默认值。
类型默认值
byte0
short0
int0
long0
float

0.0f

double0.0
char/u0000
booleanfalse

二.数组的使用

遍历数组的方法

第一种,手动打出每个要访问的元素,比较笨。

第二种,用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垃圾回收。

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

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

相关文章

【代码随想录——栈与队列】

1.栈和队列理论基础 栈和队列的原理大家应该很熟悉了,队列是先进先出,栈是先进后出。 2.用栈实现队列 type MyQueue struct {head []intheadSize intstore []intstoreSize int }func Constructor() MyQueue {return MyQueue{head : make([]int,100),h…

《ESP8266通信指南》11-Lua开发环境配置

往期 《ESP8266通信指南》10-MQTT通信(Arduino开发)-CSDN博客 《ESP8266通信指南》9-TCP通信(Arudino开发)-CSDN博客 《ESP8266通信指南》8-连接WIFI(Arduino开发)(非常简单)-CSD…

qt for android 无法进入调试c++代码解决方法

1.上一篇文章介绍了qt 5.15.13配合NDK25 的解决方法,但是还存在一个问题是可以调试qml代码但是无法进入c代码中。 在网上进行搜索,得到的答案是确实存在这个问题,包括这个qt6版本。 2.看来这个问题没有办法了,静下来思考下。这个…

AI助力临沂商贸的世界语言

“你好”“Bonjour”“Hola”……“中国老板娘”能够流利运用 17 种语言,近日在海外爆火。借由 AI 技术的助力,商家在镜头前自如切换各国语言,与来自全球各地的外商实现无障碍的沟通交流。这种现象背后,是 AI 技术对传统商贸模式的…

Python 控制 Keysight (原Agilent) 直流电源

前言 直流电源是如图型号,是keysight 6631系列;由于本身直流电源的功能也不复杂,所以控制起来相对比较简单,本来不想写这篇文章的,但是想想还是做一个简单的记录吧! 硬件环境结构图: 通信方式:由于该直流电源只GPIB接口,所以是通过GPIB线与设备进行通信 实现原理: …

中国网安上市公司2023财报摘要及启示

随着国内网络安全市场越来越来越来越卷,出海,从原来的陌生遥远不看好,已经成为许多厂商不得不思考的一个新方向。 阻力不变。 地缘政治问题依然存在,沟通成本高,对产品成熟度要求高,对团队背景和公司整体能…

如何通过OMS加快大表迁移至OceanBase

OMS,是OceanBase官方推出的数据迁移工具,能够满足众多数据迁移场景的需求,现已成为众多用户进行数据迁移同步的重要工具。OMS不仅支持多种数据源,还具备全量迁移、增量同步、数据校验等功能,并能够对分表进行聚合操作&…

文件操作

前言: 文件内容属性 要向访问文件就要打开文件——>用进程来打开——>要把文件先加载到内存中——> 一个进程可以打开多个文件,OS中也有可能多个进程打开了多个文件 文件以多,就需要进行管理,——先描述再组织 没有被打开…

基于Spring Boot框架实现大学生选课管理系统

文章目录 源代码下载地址项目介绍项目功能界面预览 项目备注源代码下载地址 源代码下载地址 点击这里下载源码 项目介绍 项目功能 教务处管理 开课、开班审批,排课处理,班级操作,选课时间段管理** 使用了sql解决了开课开班的时间段的冲突…

基于PHP后台微信图书馆借书还书小程序系统设计与实现

博主介绍:黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程&#xff…

IDM下载器激活

文章目录 1、Internet Download Manager简介2、Internet Download Managery应用3、Internet Download Managery下载 1、Internet Download Manager简介 Internet Download Manager (IDM) 是一款功能强大的下载管理软件,旨在帮助用户更高效地管理和加速其下载任务。它…

【硬件开发】原型设计对于成功产品开发重要性及常见阶段

电子产品的设计与开发始于原型制作阶段。这些原型虽可能与最终产品极为相似,但总带有实验性质,因为电子原型的制作过程包括对新概念、新思想及新解决方案的测试。虽然存在出错的风险,跳过这一阶段可能会导致不必要的开支。不擅长电子硬件设计…

CSS和JavaScript

CSS 在html中引入CSS 我们需要先在该项目先建立css文件 html引入CSS,在<head></head>中添加<link>标签 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" co…

QT--4

QT 使用定时器完成闹钟 #include "widget.h" #include "ui_widget.h"void Widget::timestart() {timer.start(1000); }void Widget::timeend() {timer.stop(); }Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(t…

电商核心技术揭秘52:数字化内容营销创新

相关系列文章 电商技术揭秘相关系列文章合集&#xff08;1&#xff09; 电商技术揭秘相关系列文章合集&#xff08;2&#xff09; 电商技术揭秘相关系列文章合集&#xff08;3&#xff09; 电商技术揭秘四十一&#xff1a;电商平台的营销系统浅析 电商技术揭秘四十二&#…

火爆开展齐力控股集团带您了解2024年第13届生物发酵展

参展企业介绍 齐力控股集团专业生产高精度卫生级不锈钢设备配件及管道所有连接件、锻造、精加工一站式服务。产品广泛适用于制药、饮料、乳制品、啤酒、生物化工等领域。所有产品均按3A、SMS、DIN、RJT、IDF、DS等标准制造&#xff0c;所有产品均达到GMP药典要求。我们是一家有…

【LeetCode刷题记录】简单篇-110-平衡二叉树

【题目描述】 给定一个二叉树&#xff0c;判断它是否是 平衡二叉树 。 【测试用例】 示例1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;true 示例2&#xff1a; 输入&#xff1a;root [1,2,2,3,3,null,null,4,4] 输出&#xff1a;false …

基于Vue3与ElementUI Plus酷企秀可视化设计器中的创新应用

一、引言 随着科技的快速发展&#xff0c;前端技术已经从简单的网页呈现进化到了复杂的数据可视化、互动体验和跨平台应用的构建。酷企秀可视化设计器作为一个集成了多种前端技术的创新平台&#xff0c;不仅为企业提供了全方位的数字化展示解决方案&#xff0c;还在多个行业领…

新产品Spiff来啦!Salesforce将最新收购加入Sales Cloud!

Salesforce在过去一年中一直处于收购间歇期&#xff0c;但这并没有妨碍Salesforce在2023年底收购了Spiff。Spiff是新型激励薪酬管理(Incentive Compensation Management&#xff0c;ICM) 软件提供商 &#xff0c;是AppExchange合作伙伴&#xff0c;结合直观的低代码UI、熟悉的电…

车载测试系列:车载测试Bug定位与分析

车载Bug定位 1.1 模拟复现条件 能够复现bug才能对问题进行定位、解决以及验证。找到bug存在的特定的条件&#xff0c;进行重现。对于依赖外部输入的条件&#xff0c;如果条件比较复杂难以模拟可以在程序里预设直接进入对应状态。 1.2 打印Log 根据问题的现象&#xff0c;在…