java数组&ArrayList(底层内存分配)

java数组&ArrayList(内存分配)

数组

存储同种数据类型的多个值

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

    范例: int[] array

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

    范例:int array[]

初始化

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

  • 格式:数据类型[]变量名 = new 数据类型[数组长度];
  • 范例: int[] arr = new int[3]

静态初始化:已经知道数据,直接放进去就可以了。

内存分配
  • 栈内存:方法运行时,进入的内存,局部变量都存放于这块内存中
  • 堆内存:new出来的内容都会进入堆内存,并且会存在地址值
  • 方法区:字节码文件(.class)加载时进入的内存
  • 本地方法栈:调用操作系统相关资源
  • 寄存器:交给cpu去使用

数组的默认初始化值

整数0 浮点数0.0 布尔false 字符 空字符 引用数据类型null

引用数据类型:引用,记录了地址值的变量,所对应的数据类型,就是引用数据类型。

出现new就会进堆,new是用来开辟空间的,栈一般放在一级缓存里,缓存空间是比较小的,所以用来临时存储变量,方法等。但是堆空间是比较大的,所以涉及内存操作就会在堆里开辟空间用来存放数据,这时记录了地址值的变量就是引用数据变量,java中引用数据变量有:类,接口,数组

操作

长度:array数据个数:数组名.length

获取最值

//定义首索引数字最大,一个个比较更新最大值
int[]	arr	=	{12,45,98,73,60};
int max	=	arr[0];
for(int i = 1;i<arr.length;i++){
  if(arr[i]>max){
    max=arr[i];
  }
}

二维数组

存储一维数组的数组容器

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

范例:int[] [] arr

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

范例:int arr[] []

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

范例:int[] arr[]


集合(ArrayList)

容量可变

如果存储的数据长度经常发生改变,推荐使用集合

打印String,StringBuilder,集合数据名都不会出现地址

E用引用数据类型替换,例如:

ArrayList<Sting>ArrayList<Student>
  • 构造方法

    • 空参构造ArrayList():初始长度为10,后期可扩容
  • 成员方法:

    • 添加:boolean add(E e)将指定的元素添加到列表尾部

      ​ void add(int index,E e)将指定的元素插入列表中的指 定位置

    • 删除:boolean remove(Object o)删除指定的元素,返回删除是否成功

      ​ E remove(int index)删除指定索引处的元素,返回被删除的元素

    • 修改: E set(int index,E element)修改指定索引处的元素,返回被修改的元素

    • 查询:E get(int index)返回指定索引处的元素

      ​ int size()返回集合中的元素的个数

    • 长度:集合名.size()

  • <>:

    • 起限定作用,可以在<>中限制集合承载的数据类型

    • <>是一种特殊的数据类型,泛型

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值