JAVA数组02:内存分析及三种初始化

JAVA内存

存放new的对象及数组

可以被别的线程共享,不会存放别等对象引用

存放基本数据类型(会包含这个基本类型的具体数值)

引用类型的变量(会存放这个引用在堆里面的具体地址)

  • 方法区

可以被所有的线程共享

包含了所有class和static变量

当一个数组被声明时定义该数组基本类型,存放于栈里面

通过new创建数组后,在堆内独立存放数组的长度

// 通俗理解栈就是书名,堆是目录,数组变量是内容

初始化的三种方式

  • 静态初始化

// 定义数组时直接给数组赋值

int[] nums = {1,2,3,4,5};

  • 动态初始化

// 创建数组后依次给变量赋值

int[] nums = new int[1];

nums[0] = 1;

  • 数组的默认初始化

除了八大基本类型,其余都是引用类型,数组的元素相当于类的实例变量,所以数组一经分配空间,其中的元素也被按照实例变量的方式隐式赋值,例:String的值为null,那么int的值为0;

数组的四个基本特点

  • 数组的长度是确定的数组一旦被创建,它的大小长度是不可以改变的
  • 元素必须是相同类型,不允许出现混合类型
  • 数组的元素可以是任何数据类型,包括基本类型和引用类型
  • 数组变量属于引用类型,数组也可以看作是对象,数组中的每个元素相当于该对象的成员变量,数组本身就是对象,无论保存原始类型还是其他对象类型,数组对象本身是在堆中的

数组边界

  • 下标的合法区间:[0,length-1],超出数组大小就会报错:

ArrayIndexOutOfBoundsException:数组下标越界异常

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值