Java 数组

来源:互联网 发布:mac无法拖动文件夹 编辑:程序博客网 时间:2024/06/06 04:15

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);

JVM栈跟堆

  • 栈是运行时的单位
    在Java中一个线程就会相应有一个线程JVM栈与之对应。JVM栈因为是运行单位,因此里面存储的信息都是跟当前线程(或程序)相关信息的。包括局部变量、程序运行状态、方法返回值等等。
  • 堆是存储的单位
    JVM堆则是所有线程共享的,只负责存储对象信息。

多维数组

声明语法:
数据类型[ ][ ] 数组名;
使用语法new int[ ][ ]创建数组时,必须指定第一个下标。语法new int[ ][ ]是错误的。

锯齿数组:
各行的长度不一样的二维数组。

0 0
原创粉丝点击