黑马程序员-数组

---------------------- ASP.Net+Android+IOS开发</a>、 .Net培训、期待与您交流! ----------------------


理解数组

数组是编程语言中常见的一种数据结构,它用于存储多个数据,每个数据被称为数组元素,通常通过数组元素的索引来访问数组元素,索引从0开始编号

Java的数组要求所有数组元素具有相同的数据类型,可以是基本数据类型,也可以是引用数据类型

注意:
因为Java是面向对象的语言,支持类与类之间的继承,可以创建父类类型的数组,存放不同的子类

一旦数组的初始化完成,数组在内存中所占的空间将被固定下来,因此数组的长度不可改变

数组也是一种数据类型,它本身是一种引用类型


数组的定义和初始化

int[] arr = new int[]{3, 5, 1, 3};

int[] arr = {3, 5, 1, 3};

int[] arr = new int[4];

内存结构

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


栈内存

用于存储局部变量(方法或语句中的变量),当数据使用完,所占空间会自动释放
数组引用变量也存储在栈内存中,数组元素存储在堆中
每个方法都会在栈中开辟自己的一段栈空间,存放局部变量,方法一结束,空间立刻释放


堆内存

数组元素和对象(非引用),通过new建立的实例都存放在堆内存中,每一个实例都有内存地址值
对象中的成员变量会被初始化(栈内存中的局部变量默认不会初始化)


方法区(共享区)

存放方法体
静态成员


二维数组

二维数组中有3个一维数组,每一个一维数组中有4个元素
一维数组的名称分别为:arr[0], arr[1], arr[2]
给第一个一维数组1脚标位赋值为78写法是:arr[0][1] = 78;


Arrays

用于操作数组的工具类
里面都是静态方法

import java.util.Arrays;
import java.util.List;
/**
static <T> List<T> asList(T... a)
*/

class ArraysTest
{
    public static void main(String[] args)
    {
        String[] arr1 = {"sdf", "saldf"};

        //可变参数
        List<String> list = Arrays.asList("sdf", "df", "sdfsdf");
        System.out.println(list);

        //jdk1.4的时候,还没有可变参数,使用的是Object数组,为了向下兼容,以后版本的asList方法也可以接收数组
        list = Arrays.asList(arr1);
        System.out.println(list);

        //下面的数组a不能赋值给Object[],因为a中是int,int不是Object
        int[] a = new int[]{1, 2, 3};

        //所以asList(a)中的a并不是作为数组,而是作为一个参数(1.5中的可变参数),打印结果[[I@5eb650]
        System.out.println(Arrays.asList(a));
    }
}



---------------------- ASP.Net+Android+IOS开发</a>、 .Net培训、期待与您交流! ----------------------
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值