java中的数组声明创建与使用

本文详细介绍了Java中的数组,包括数组的定义、声明与创建过程。数组是一组相同类型的有序集合,长度固定且不可变。声明数组通常使用`dataType[] arrayRefVar`样式。创建数组需用`new`操作符,并指定长度。数组元素通过索引访问,索引从0开始。Java内存中,数组对象存放在堆中。数组初始化分为静态初始化(直接赋初始值)和动态初始化(分开定义与赋值)。未初始化的数组元素会有默认值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数组

数组的定义:

  • 相同类型的有序集合
  • 按照一定的先后次序排列而成
  • 每一个数组元素通过下标来访问他们

注意:

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

数组的声明和创建

声明数组

首先必须声明数组变量,才能使用数组。

dataType[]	arrayRefVar;	//首选的方法
dataType	arrayRefVar[];	//效果相同,但不是首选方法

建议使用 **dataType[] arrayRefVar **的声明风格声明数组变量。 dataType arrayRefVar[] 风格是来自 C/C++ 语言 ,在Java中采用是为了让 C/C++ 程序员能够快速理解java语言

double[]	myList;			//首选的方法
double		myList[];		//效果相同,但不是首选方法
创建数组

Java语言使用new操作符来创建数组,语法如下:

arrayRefVar = new dataType[arraySize];

上面的语句完成了两个功能:

  • 使用dataType[arraySize]创建了一个数组
  • 把新创建的数组的引用赋值给变量arrayRefVar.

数组变量的声明,和创建数组可以用一条语句完成

dataType[] arrayRefVar = new dataType[arraySize];

数组的元素是通过索引访问的。数组的索引从0开始,所以索引值从0到arrayRefVar.length-1(数组长度-1)

获取数组长度:

array.length

[演示]

public class item{
    public static void main(String[] args){
        int[] myList = new int[10];			//数组的声明和创建
        int total = 0;						//求和变量初始化
        for(int i=0;i<myList.length;i++){	//数组赋值初始化
            myList[i]=i*i;
        }
        for(int i=0;i<myList.length;i++){	//访问数组,并求和
            total += myList[i];
        }
        System.out.println("total is "+total);	//输出结果
    }
}

java内存分析

    • 存放new的对象和数组
    • 可以被所有线程共享,不会存放别的对象引用
    • 存放基本变量类型(会包含这个基本类型的具体数值)
    • 引用对象的变量(会存放这个引用在堆里面的具体地址)
  • 方法区
    • 可以被所有线程共享
    • 包含了所有的class和static变量

注意:

  1. 声明的时候并没有实例化对象,只有在实例化数组对象时,JVM才分配空间,这时才与长度有关。因此,声明数组时不能指定其长度(数组中元素的个数),列如:int nums[5];//非法的
  2. 声明一个数组时并没有数组被真正的创建
  3. 构造一个数组,必须指定长度,数组被真正的创建,才会在堆中开辟数组需要的空间

数组的初始化

静态初始化

除了用new关键字来产生数组,还可以直接在定义数组的同时就为数组元素分配空间并赋初始值

int[] nums = {198,168,888};	//数组初始化并赋值
动态初始化

数组的定义、创建数组,赋值的操作,分开进行。

int[] nums;
nums = new int[2];
a[0]=168;
a[1]=198;
数组的默认初始化
int [] nums = new int[2];	//数组的元素值这里被默认初始化为0,各种类型数据的初始化不同,这里可以参考前面的数据类型一章
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值