当前位置: 首页 > news >正文

JAVA基础7:数组

1.数组定义格式

1)数组概述

一次性声明大量的用于存储数据的变量

要存储的数据通常都是同类型数据,比如:考试成绩

数组(array)是一种用于存储多个相同类型数据的存储模型

2)数组定义格式

格式一:数据类型[] 变量名

范例: int[] arr

定义了一个int类型的数组,数组名是arr

格式二:数据类型 变量名[]

范例:int arr[]

定义了一个int类型的变量,变量名是arr数组

2.数组初始化概述

Java中的数组必须先初始化,然后才能使用

所谓初始化:就是为数组中的数组元素分配内存空间,并为每个数组元素赋值

1)动态初始化

动态初始化:初始化时只指定数组长度,由系统为数组分配初始值

格式:数据类型[] 变量名 = new 数据类型[数组长度];

范例: int[] arr = new int[3];

package myArray;public class ArrayDemo {public static void main(String[] args) {int[] arr = new int[3];/*左边:int:说明数组中的元素类型是int类型[]:说明这是一个数组arr:这是数组的名称右边:new:为数组申请内存空间int:说明数组中的元素类型是int类型[]:说明这是一个数组3:数组长度,其实就是数组中的元素个数*/}
}

2)数组元素访问

  • 数组变量访问方式
  • 格式:数组名

  • 数组内部保存的数据的访问方式
  • 格式:数组名[索引]

  • 索引是数组中数据的编号方式
  • 作用:索引用于访问数组中的数据使用,数组名[索引]等同于变量名,是一种特殊的变量名
  • 特征①:索引从0开始
  • 特征②:索引是连续的
  • 特征③:索引逐一增加,每次加1
package myArray;public class ArrayDemo {public static void main(String[] args) {int[] arr = new int[3];/*左边:int:说明数组中的元素类型是int类型[]:说明这是一个数组arr:这是数组的名称右边:new:为数组申请内存空间int:说明数组中的元素类型是int类型[]:说明这是一个数组3:数组长度,其实就是数组中的元素个数*///输出数组名System.out.println(arr);//[I@7c30a502//输出数组中的元素System.out.println(arr[0]);System.out.println(arr[1]);System.out.println(arr[2]);}
}

3)内存分配

①Java中内存分配

Java程序在运行时,需要在内存中分配空间。为了提高运算效率,就对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式内存管理方式

②栈内存和堆内存

  • 栈内存:存储局部变量

                定义在方法中的变量,比如:arr

                使用完毕,立即消失

  • 堆内存:存储new出来的内容(实体,对象)

                数组在初始化时,会为存储空间添加默认值

                        ※整数:默认值0

                        浮点数:默认值0.0

                        布尔值:默认值false

                        字符:默认值是空字符

                        引用数据类型:默认值是null

                每一个new出来的东西都有一个地址值

                使用完毕,会在垃圾回收器空闲时被回收

http://www.lryc.cn/news/229341.html

相关文章:

  • Riskified: 2023年电商政策滥用问题恶化,正严重挑战商家盈利底线
  • 【论文阅读】多模态NeRF:Cross-Spectral Neural Radiance Fields
  • Huggingface
  • 【深度学习】pytorch——常用工具模块
  • 【Android】统一系统动画
  • 京东数据运营与分析:如何全面获取电商销售数据?
  • du_命令可以像find_命令那样列出最大的文件吗
  • asp.net blazor集成TinyMCE.Blazor
  • CSS注入的四种实现方式
  • 突然消失的桌面文件如何恢复?详细教程让你轻松解决问题!
  • Springboot+Dubbo+Nacos 集成 Sentinel(入门)
  • ARPG----C++学习记录05 Section10 武器类,IK重定向,装备和捡起武器,动画蓝图
  • CSRF跨站请求伪造
  • 修改kernel驱动配置文件
  • 采集摄像头数据的Golang应用
  • Axure9学习
  • 使用gitflow时如何合并hotfix
  • (七)Spring源码解析:Spring事务
  • Stable Diffusion 是否使用 GPU?
  • DevOps平台两种实现模式
  • Java 简单实现一个 UDP 回显服务器
  • element ui中Select 选择器,自定义显示内容
  • 机器视觉行业,日子不过了吗?都进入打折潮,双11只是一个借口,打广告出新招,日子不好过是真的
  • 【手动创建UIWindow Objective-C语言】
  • 【学习辅助】Axure手机时间管理APP原型,告别手机控番茄任务模板
  • [PyTorch][chapter 62][强化学习-基本概念]
  • 使用 Stable Diffusion Img2Img 生成、放大、模糊和增强
  • 【Git】第一篇:Git安装(centos)
  • 在uniapp中通过自定义事件使页面之间传递数据
  • 【Windows Docker:安装nginx】