JavaSE(基础篇)——数组(一)

简介: JavaSE(基础篇)——数组(一)

数组概述

1.数组的定义:

数组是类型相同的有序集合。


数组是描述相同类型的若干个数据,按照一定的先后次序排列组合而成。


其中每一个数据称作数组元素,可以通过下标来访问其元素。


2.数组的四个基本的特点:

1.数组的长度是确定的,一旦被创建,他的大小就是不能被改变的。


2.其元素类型必须相同,不能出现混合类型。


3.数组中的元素可以是任何的数据类型,可以是基本类型也可以是引用类型。


4.数组是引用类型,数组也可以看作对象,数组中的成员变量相当于该对象的成员变量,数组本身就是对象,Java对象是在堆中的,所以数组无论是保存原始类型还是其他类型,数组本身就是在堆里。


数组声明创建

1.声明数组:

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

2.创建数组

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


arrayRefVar = new dataType[arraySize];

以上语法做了两件事:


1.使用dataType[arraySize]创建了一个数组。


2.把数组赋值给变量arrayRefVar。


数组是通过索引访问的,从0到array.length-1.


获取数组的长度语法为:


arrayRefVar = new dataType[arraySize];

【演示创建一个数组,并赋值和进行访问】


public class java1 {
    public static void main(String[] args) {
        int[] nums = new int[5];
        nums[0] = 1;
        nums[1] = 2;
        nums[2] = 3;
        nums[3] = 4;
        nums[4] = 5;
        int sum = 0;
        for (int l = 0; l < nums.length; l++) {
            sum += l;
        }
        System.out.println("总和为"+sum);
    }
}

结果:

image.png



3.内存分析

Java内存分析:

image.png



1.声明的时候并不会实例化任何对象,只有在实例化数组对象的时候,JVM才会分配空间,这是才和长度有关,因此声明数组的时候不能指定其长度,错误示范: int a[5]。


2.声明一个数组的时候,数组并没有被真正的创建。


3.构造一个数组必须声明其长度。


//1.声明一个数组 
int[] myList = null;

image.png


//2.创建一个数组
myList = new int[10];

image.png


//3.像数组中存值 
myList[0] = 1; 
myList[1] = 2; 
myList[2] = 3; 
myList[3] = 4; 
myList[4] = 5; 
myList[5] = 6; 
myList[6] = 7; 
myList[7] = 8; 
myList[8] = 9; 
myList[9] = 10;

image.png


4.三种初始化

静态初始化

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

int[] a = {1,2,3}; 
Man[] mans = {new Man(1,1),new Man(2,2)};

动态初始化

数组定义、为数组元素分配空间、赋值的操作、分开进行。

int[] a = new int[2]; 
a[0]=1; 
a[1]=2;

数组的默认初始化

数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被隐式初始化。

public static void main(String[] args) { 
int[] a=new int[2]; 
boolean[] b = new boolean[2]; 
String[] s = new String[2]; 
System.out.println(a[0]+":"+a[1]); //0,0 
System.out.println(b[0]+":"+b[1]); //false,false 
System.out.println(s[0]+":"+s[1]); //null, null
 }


相关文章
|
11月前
|
存储 Java 编译器
数组的定义与使用【JavaSE】
数组的定义与使用【JavaSE】
33 0
|
4月前
|
存储 Java 索引
|
4月前
|
存储 Java 索引
|
12月前
|
存储 机器学习/深度学习 Java
【javaSE】 数组的定义与使用
【javaSE】 数组的定义与使用
|
存储 Java 编译器
JavaSe语法 -- 数组基础篇
JavaSe语法 -- 数组基础篇
|
4月前
|
Java
JavaSE基础篇:枚举
JavaSE基础篇:枚举
|
4月前
|
存储 Java C语言
JavaSE之数组
JavaSE之数组
48 0
|
9月前
|
存储 机器学习/深度学习 Java
【JavaSE】数组的定义与使用
【JavaSE】数组的定义与使用
|
存储 Java 索引
【JavaSE专栏26】数组是什么?如何定义
【JavaSE专栏26】数组是什么?如何定义
|
存储 机器学习/深度学习 算法
【JavaSE】数组的详解
本文讲解:数组的详解。