资讯专栏INFORMATION COLUMN

Java数组

Pocher / 2555人阅读

摘要:静态初始化初始化时由程序员显示指定每个数组元素的初始值,由系统决定数组长度。使用数组数组最常用的用法就是访问数组元素,包括对数组元素进行赋值和取出数组元素的值。

理解数组:数组也是一种类型

Java的数组要求所有数组元素具有相同的数据类型.

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

public static void main(String[] args) {
        // TODO Auto-generated method stub
        int[] arr = new int[2];
        arr[0] = 0;
        arr[1] = 1;
        arr[2] = 2;
        for(int i = 0;i < arr.length;i++){
            System.out.println(arr[i]);
        }
    }

上述代码在运行的时候会报错---Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2

定义数组

Java语言支持两种语法格式来定义数组:
type[] arrayName;
type arrayName[];
对于这两种语法格式而言,通常推荐使用第一种格式。因为第一种格式不仅具有更好的语意,而且具有更好的可读性。
数组是一种引用类型的变量,因此使用它定义一个变量时,仅仅表示定义了一个引用变量(也就是定义了一个指针),这个引用变量还未指向任何有效的内存空间,所以还没有内存空间来存储数组元素,因此这个数组也不能使用,只有对数组进行初始化后才可以使用。

数组的初始化

所谓初始化,就是为数组的数组元素分配内存空间,并为每个数组元素赋初始值。
数组的初始化有如下两种方式。

静态初始化: 初始化时由程序员显示指定每个数组元素的初始值,由系统决定数组长度。

动态初始化: 初始化时程序员只指定数组长度,有系统为数组元素分配初始值。

使用数组

数组最常用的用法就是访问数组元素,包括对数组元素进行赋值和取出数组元素的值。Java语言的数组索引值为数组长度减1.如果访问数组元素时指定的索引值小于0,或者大于等于数组的长度,编译程序不会出现任何错误,但运行时出现异常: java.lang.ArrayIndexOutOfBoundsException.

foreach循环
String[] names = {"zuckjet", "zuckberg"};
for (String name: names) {
    System.out.println(name);
}

使用foreach循环迭代变量数组元素时,并不能改变数组元素的值,因此不要对foreach的循环变量进行赋值。

探究

数组是一种引用数据类型,数组引用变量只是一个引用,数组元素和数组变量在内存中是分开存放的。
与所有引用变量相同的是,引用变量是访问真实对象的根本方式。也就是说,如果希望在程序中访问数组对象本身,则只能通过这个引用变量访问它。实际的数组对象被存储在堆内存中。

如果内存中数组不再有任何引用变量指向自己,则这个数组将成为垃圾,该数组所占的内存将会被系统的垃圾回收机制回收。因此,为了让垃圾回收机制回收一个数组所占的内存空间,可以将该数组变量赋为null.

int[] a = {1, 3, 5};
int[] b = {2, 4, 6, 8};
b = a;
System.out.println(b.length) //3

a变量和b变量都引用了第一个数组。此时第二个数组失去了引用,变成了垃圾,只有等待垃圾回收机制来回收它。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/67388.html

相关文章

  • Java学习笔记(一)

    摘要:是完全面向对象的语言,对象具有状态行为和标识。类一一是具有共同特征和行为的一类事物的统称。受保护的,对同一包内的类和所有子类可见。一种通用的内存池,用于存放所有对象。类级变量又称全局级变量或静态变量,需要使用关键字修饰。 java语言的基本特点 java语言是面向对象的高级程序设计语言,它是编译型的语言,Java语言不使用指针,并提供了自动的垃圾回收机制,使得程序员不必为内存管理而担...

    chengtao1633 评论0 收藏0
  • 4.java数组

    摘要:数组基本概念数组指的是一组相关变量的集合,语言中提供的数组是用来存储固定大小的同类型元素。数组的元素类型和大小都是确定的。数组的申明首先必须声明数组变量,才能在程序中使用数组。数组的操作方法针对数据提供了一些类库支持。 数组基本概念 数组指的是一组相关变量的集合,Java 语言中提供的数组是用来存储固定大小的同类型元素。 数组的元素类型和大小都是确定的。 数组的申明 首先必须声明数组变...

    Carl 评论0 收藏0
  • Java 性能调优指南之 Java 集合概览

    摘要:单线程集合本部分将重点介绍非线程安全集合。非线程安全集合框架的最新成员是自起推出的。这是标准的单线程阵营中唯一的有序集合。该功能能有效防止运行时造型。检查个集合之间不存在共同的元素。基于自然排序或找出集合中的最大或最小元素。 【编者按】本文作者为拥有十年金融软件开发经验的 Mikhail Vorontsov,文章主要概览了所有标准 Java 集合类型。文章系国内 ITOM 管理平台 O...

    gnehc 评论0 收藏0
  • java中的数组

    摘要:概念数组,就是容器,只能存放相同类型的数据数组的格式数据类型数组名数据类型数组的容量数组声明缩写数组中元素的存取给数组第一个元素赋值给数组第二个元素赋值给数组第三个元素赋值打印赋值结果总结数组元素的存放和取出,都是通过数组的索引实现的数组的 概念 数组,就是容器,只能存放相同类型的数据; 数组的格式 数据类型[] 数组名 = new 数据类型 [数组的容量]; double[] sco...

    Vicky 评论0 收藏0
  • Java数组超详解

    摘要:栈区的使用完立马销毁。格式数组名索引注索引和语言中的下标是一样的索引是从开始的,也就是说我们要访问第一个元素就是,以此类推。五数组长度表示在中我们没有的,但是我们可以通过下列操作求出。格式数组名如就求出了数组的长度。 目录 一、前言 二、数组的定义 数组定义的形式: 格式1: 格式2: 三...

    layman 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<