首页 > 编程语言 >JAVA基础-数组

JAVA基础-数组

时间:2024-01-30 20:34:00浏览次数:26  
标签:初始化 JAVA int 数据类型 基础 索引 内存 数组

数组(array)是一种容器,用来存储同种数据类型的多个值。
总结:数组容器在存储数据的时候,需要结合数据类型考虑。
例如:int类型的数组容器 (boolean byte short double)
建议:容器的类型,和存储的数据类型保持一致

数组的定义格式
⚫ 格式一:数据类型 [ ] 变量名
⚫ 范例:int[ ] array
⚫ 格式二:数据类型 变量名[ ]
⚫ 范例:int array[ ]

数组初始化概述
Java中的数组必须先初始化,然后才能使用
所谓初始化:就是在内存中,为数组容器开辟空间,并将数据存入容器中的过程。

数组初始化方式分两种:
⚫ 动态初始化
⚫ 静态初始化

动态初始化
⚫ 格式:数据类型 [ ] 变量名 = new 数据类型[数组长度];
⚫ 范例: int [ ] arr = new int[3];

注意:打印数组变量名,出现的是数组在内存中的地址值
例如:[I@10f87f48

数组元素访问
⚫ 索引是数组中空间的编号
特征①:索引从0开始
特征②:索引是连续的
特征③:索引逐一增加,每次加1
⚫ 作用:访问数组容器中的空间位置

Java中内存分配:
Java 程序在运行时,需要在内存中分配空间。为了提高运算效率,就对空间进行了不同区域的划分
每一片区域都有特定的处理数据方式和内存管理方式。
分为:
栈内存:方法运行时,进入的内存,局部变量都存放于这块内存当中
堆内存:new出来的内容都会进入堆内存,并且会存在地址值
方法区:字节码文件(.class文件)加载时进入的内存
本地方法栈:调用操作系统相关资源
寄存器:交给CPU去使用

数组内存图(多个数组)
⚫ 注意:每new一次,在堆内存中,都是一块新的空间,堆内存中的空间地址不会出现重复的现象

两种初始化的区别对比
⚫ 动态初始化:手动指定数组长度,由系统给出默认初始化值。
⚫ 静态初始化:手动指定数组元素,系统会根据元素个数,计算出数组的长度

数组操作的两个常见小问题
⚫ 索引越界:访问了数组中不存在的索引对应的元素,造成索引越界问题
⚫ 空指针异常:访问的数组已经不再指向堆内存的数据,造成空指针异常
⚫ null:空值,引用数据类型的默认值,表示不指向任何有效对象

数组常见操作
⚫ 数组遍历:将数组中所有的内容取出来,取出来之后可以(打印,求和,判断..)
注意:遍历指的是取出数据的过程,不要局限的理解为,遍历就是打印!

标签:初始化,JAVA,int,数据类型,基础,索引,内存,数组
From: https://www.cnblogs.com/elaine1111/p/17997899

相关文章

  • Java学习(day2)
    整数拓展inti=10;inti2=010;//八进制0inti3=0x10;//十六进制0x浮点数拓展floatf=0.1f;//0.1doubled=1.0/10;//0.1f!=d浮点数有舍入误差最好不用浮点数进行比较字符拓展charc1='a';charc2='中';System.out.println(c1);System.out......
  • 深入理解Java双列结合Map
    在Java编程中,集合框架提供了多种数据结构来存储和操作数据.其中,双列集合Map是一种非常有用且广泛使用的数据结构,本文我将深入探讨Java中的双列集合Map,介绍其特点、常用方法和使用场景.一、什么是双列集合Map?双列集合Map是一种用于存储键值对(Key-ValuePair)的数据结构.......
  • [RoarCTF 2019]Easy Java
    [RoarCTF2019]EasyJava打开是一个登录页面,通过爆破得到admin/admin888为账号密码此时刷新页面点击下面的help发现有help.docx文件变更为POST可下载文件打开docx并未发现flag信息查看了师傅们的WP之后才知道,涉及到Java的题目,我们首先读取初始化配置信息/WEB-INF/web.xm......
  • java打包将静态文件一起打
    java打包将静态文件一起打Java打包将静态文件一起打概述在Java开发中,我们常常需要将静态文件(如html、css、js等)一同打包到生成的jar文件中,以便于在项目部署时一并发布。本文将介绍如何实现这一过程,并提供详细的操作步骤和代码示例。流程下表展示了实现Java打包将静态文件一起......
  • C语言之二维数组的奥妙
    二维数组是什么二维数组是一个数组,数组的元素是数组type arr[N]={arr[M]};上图等价于typearr[N][M]N行M列数组,N和M都为整形常量 二维数组的存储方法如图是一个两行两列的二维数组,比如inta[2][2],在内存中是如何存储的采用的是蛇形的方法 二维数组的使用1#i......
  • Java实现Rabbitmq群发消息
    1.Rabbitmq简介RabbitMQ是一个实现了AMQP(AdvancedMessageQueuingProtocol)高级消息队列协议的消息队列服务,用Erlang语言。是面向消息的中间件。你可以把它想像成一个邮局:你把信件放入邮箱,邮递员就会把信件投递到你的收件人处。在这个比喻中,RabbitMQ是一个邮箱、邮局、邮递员......
  • 深入了解Java中的Map.size方法
    本文转载自:https://www.python100.com/html/54940.html在Java中,Map是一个非常重要和常用的数据结构,它用于存储键值对映射的集合。在Map中,size()这个方法是用来获取集合大小的,我们经常使用它来获取键值对映射的数量。但是,你知道吗?实际上,Map.size()的实现和使用也是有许多细节和注......
  • VBA字节数组
    1SubreadArrByte()2DimstrPathAsString,ArByte()AsByte3DimintFileLenAsInteger4'配置路径、字节数组5strPath=ActivePresentation.Path'6strPath=strPath&"\"&"ByteFile-副本.txt"......
  • 【scikit-learn基础】--『回归模型评估』之损失分析
    分类模型评估中,通过各类损失(loss)函数的分析,可以衡量模型预测结果与真实值之间的差异。不同的损失函数可用于不同类型的分类问题,以便更好地评估模型的性能。本篇将介绍分类模型评估中常用的几种损失计算方法。1.汉明损失Hammingloss(汉明损失)是一种衡量分类模型预测错误率的指......
  • 【Java】Java版本升级,找不到符号 问题处理
    哈喽,各位早上/中午/晚上好呀!JDK21出了也有一段时间了,有的小伙伴也按捺不住开始将项目升级到JDK21了吧。既然升级,大概多多少少都会遇到“找不到符号”的问题,英文原文是“cannotfindsymbol”。如何解决呢?以下方式不止针对于升级到JDK21,其它版本的升级配置方法相同。其实Idea......