数组(array)

数组(array)

 

单词

 

length 长度 | array 数组 | explain 解释 | index 索引;指数 | bound 界限;肯定的

 


 

程序

 

创建数组

 1 public class ArrayExplain {
 2  3     public static void main(String[] args) {
 4  5         int[] a;//声明一个数组(栈:存储指向堆的地址)
 6         a = new int[10];//创建一个数组(堆)
 7         
 8         int[] b = {1,2,3,4,5,6}; //静态初始化
 9         int[] b = new int[10]; //动态初始化,包含了默认初始化
10 11         //为数组元素赋值,不初始化就为默认值
12         for (int i=0; i<a.length; i++) {
13             a[i] = i;
14         }
15     }
16 }

数组的定义

  • 相同类型数据的有序集合

  • 通过下标来访问数组中的元素

四个基本特点
  1. 创建后长度固定。(越界报:ArrayIndexOutofBounds)

  2. 其中元素必须是相同类型。

  3. 数组中元素可以是任何类型,包括基本类型和引用类型。

  4. 数组变量属引用类型,数组可以看成对象,数组中的每个元素相当于该对象的成员变量。数组本身就是对象,Java中的对象是在堆中的,因此数组无论是保存原始类型还是其他类型,数组对象本身是在堆中的。

java内存

  1. · 存放new的对象和数组

    ·可以被所有的线程共享,不会存放别的对象引用

  2. ·存放基本变量类型(包含这个基本类型的数值)

    ·引用对象的变量(存放引用在堆里面的地址)

  3. 方法区

    ·可以被所有的线程共享

    ·包含了所有的class和static变量

 

 

 

数组的初始化

  • 数组是引用类型,元素相当与类的实例变量,所以一分配空间就会被隐式初始化。

 

多维数组

 

程序演示

 1 public class TwoArray {
 2  3     public static void main(String[] args) {
 4  5         int[][] a = {{1,2},{2,3},{3,4},{4,5,6}};
 6  7         System.out.println(a[3][0]);
 8         System.out.println(a.length);//显示的是有几个模块
 9         System.out.println(a[2].length);
10         System.out.println(a[3].length);//模块中有几个元素
11 12         for (int i = 0; i < a.length; i++) {
13             for (int j = 0; j < a[i].length; j++) {
14                 System.out.print(a[i][j]+"\t");
15             }
16         }
17     }
18 }

 

foreach遍历数组

结构

1 /*
2 for (类型 名称: 数组) {
3     操作语句...
4 }
5 */
6 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
7 for (int x : a) {
8     System.out.println(x);
9 }

 

遍历(一维/二维)数组

 1 //一维
 2 for (int x : a) {
 3     System.out.println(x);
 4 }
 5  6 //二维
 7 for (int[] ints : a) {  //创建一个整型数组ints并且将a中的模块地址存到数组ints中
 8     for (int anInt : ints) {  //现在就和遍历一维数组一样了
 9         System.out.print(anInt + "  ");
10     }
11     System.out.println();
12 } 

 

注意点

  • lengthlength()的区别

    1. length(属性)计算数组(array)的长度。

    2. length() (方法)计算字符(String)的长度。

 

 

仅个人理解,有不对的希望可以告诉我一下[拜托][拜托][拜托]。

posted @ 2022-07-06 13:54  坚强的娃子  阅读(501)  评论(0)    收藏  举报