Java 数组
一维数组
几个概念
数组
一种数据结构,用来存储元素个数固定,元素类型相同的有序集。
基本知识
声明数组
指定数组的元素类型,并不在内存中给数组分配任何空间,只是创建一个对数组的引用的存储位置,语法:
elementType[] arrayRefVar;
(一个数组变量存储的是指向数组的引用)创建数组 new操作符 语法:
arrayRefVar = new elementType[arraySize];- 使用new elementType[arraySize]创建了一个数组
- 把这个创建的数组的应用赋值给变量arrayRefVar
数组的大小跟默认值
- 当给数组分配空间时(new操作符),必须通过指定该数组能够存储的元素个数来确定数组大小。
- 当创建数组后,它的元素被赋予默认值。
数组初始化语法 {}
elementType[] arrayRefVar = {value0, value1, value2, …, valuek}
数组的复制
可以使用赋值语句(=)复制基本数据类型的变量,但不能复制数组。将一个数组变量赋值给另一个数组变量,实际上是将一个数组的引用赋值给另一个变量,这两个变量都指向相同的内存地址。
复制数组的三个方法:
- 使用循环语句诸葛地赋值数组的元素
- 使用System类中的静态方法arraycopy
没有给目标数组分配内存空间,复制前必须创建目标数组以及分配给它的内存空间。复制完成后,源数组跟目标数组具有相同的内容,但占有独立的内存空间。
- 使用clone方法复制数组
给方法传递数组
- 对于基本数据类型参数,传递的是实参的值。
- 对于数组类型参数,参数值是数组的引用,给方法传递的是这个引用。
- 基本类型
byte,short,int,long,char,float,double,Boolean,returnAddress- 应用类型
类类型,接口类型和数组
Arrays类的几个静态方法
- java.util.Arrays.sort(array);
- java.util.Arrays.binarySearch(array);
- java.util.Arrays.equals(array);
- java.util.Arrays.fill(array);
- java.util.Arrays.sort(array);
- 栈是运行时的单位
在Java中一个线程就会相应有一个线程JVM栈与之对应。JVM栈因为是运行单位,因此里面存储的信息都是跟当前线程(或程序)相关信息的。包括局部变量、程序运行状态、方法返回值等等。 - 堆是存储的单位
JVM堆则是所有线程共享的,只负责存储对象信息。
多维数组
声明语法:
数据类型[ ][ ] 数组名;
使用语法new int[ ][ ]创建数组时,必须指定第一个下标。语法new int[ ][ ]是错误的。
锯齿数组:
各行的长度不一样的二维数组。