JAVA---数组

数组的定义

格式一:数组类型 [] 数组名
格式二:数组类型 数组名[]

数组的初始化

静态初始化

**初始化:**在内存中,为数组容器开辟空间,并将数据存入容器的过程
格式: 数据类型[] 数组名 = new 数据类型[] {元素...}
简化格式: 数据类型[] 数组名 = {元素...}
打印输出: 输出数组名,返回的是数组的地址
数组的遍历: 使用for循环
数组的长度: arr.length

动态初始化

初始化只指定数组的长度,由系统分配初始值,有虚拟机给出默认的初始化值
格式: 数据类型[] 数组名 = new 数据类型[数组长度]
**数组初始化值的规律:

  1. 整数类型:0
  2. 小数类型:0.0
  3. 字符类型:/u0000空格
  4. 布尔类型:false
  5. 引用数据类型:null

静态初始化和动态初始化的区别

动态初始化:手动指定数组长度,系统给出默认初始化值

  • 只明确元素个数,不明确数值,推荐使用动态
    静态初始化:手动指定数组元素,系统根据元素个数,计算出数组的长度
  • 需求中明确了操作的具体数据,直接静态初始化

数组常见问题

访问不存在的索引,报出数组越界错误

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
	at com.array.ArrayDemo1.main(ArrayDemo1.java:13)

数组内存图

Java内存分配
栈、堆、方法区、本地方法栈、寄存器
从JDK8开始,取消了方法区,新增元空间,把原来方法区的功能进行拆分,有的放在堆中,有的放在元空间
在这里插入图片描述

  1. 栈:方法运行时使用的内存
    在这里插入图片描述
  2. 堆:存储对象或数组,new创建的,都存储在堆内存中
  3. 方法区:存储可以运行的class文件
  4. 本地方法栈:JVM在使用操作系统功能的时候使用,和开发无关
  5. 寄存器:给CPU使用,和开发无关
    数组内存图
    在这里插入图片描述
    两个数组指向同一个空间的内存图
    当两个数组指向同一个小空间时,其中一个数组对小空间中的值发生了改变,那么其他数组再次访问的时候都是修改之后的结果了
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值