java对象数组

What

在Java中数组可以是任意类型的,比如基本类型int[], boolean[]等等,也可以是对象类型,比如StringBuilder[],Person[]等等。

在使用基本类型数组和对象类型数组的时候是不一样的。

How

基本类型

int[] num = new int[3];//此时num数组每个元素都初始化为0了
num[2] = 2;
int a = num[1];
boolean[] change = new boolean[3];//此时change数组每个元素都初始化为false了
change[0] = true;
boolean ret = change[2];

对象类型

//以下是错误用法:
StringBuilder[] sbArray = new StringBuilder[3];//只是初始化数组,但是每个数组元素都是null
int len = sbArray[0].length();//此时会报错,NullPointer Exception


//正确用法:
StringBuilder[] sbArray = new StringBuilder[3];//只是初始化数组,但是每个数组元素都是null
sbArray[0] = new StringBuilder();
int len = sbArray[0].length();//正确执行

Why

BankAccount [ ] accounts;或 BankAccount accounts[ ]; 定义了一个存储BankAccount类对象的数组。

与C、C++不同,Java在数组的定义中并不为数组元素分配内存,因此[ ]中不需指明数组中元素的个数,即数组长度,而且对于如上定义的数组是不能引用的,必须经过初始化才可以引用。

对象数组初始化方式:

按照初始化方式不同,可以分为静态初始化和动态初始化

  • 静态初始化:在定义数组的同时对数组元素进行初始化, 例如:

    BankAccount[] accounts = { new BankAccount(“Zhang", 100.00),

    new BankAccount(“Li", 2380.00),

    new BankAccount(“Wang", 500.00),

    new BankAccount(“Liu", 175.56),

    new BankAccount(“Ma", 924.02)

    };

  • 动态初始化:使用运算符new为数组分配空间,对于基本类型的数组,其格式如下:

    type arrayName[ ]=new type[arraySize];

    type[ ] arrayName=new type[arraySize];

    对于对象数组,使用运算符new只是为数组本身分配空间,并没有对数组的元素进行初始化。即数组元素都为空,如图。
    在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值