数组·上

一、数组概述

数组概念

数组是相同类型数据有序集合

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

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

下标从0开始

数组声明创建

dataType [] arrayRefVar; //首选方法

dataType arrayRefVar []; 效果相同

 

使用new操作符来创建数组

dataType [] arragRefVar = new dataType[arraySize];

获取数组长度: arrays.length

 

定义- 使用

先定义后使用

  1. 定义

  2. 创建一个数组

  3. 给数组元素赋值

若没有赋值, 则有默认值,int默认值为0, stirng默认值位Null

数组的长度是固定的,确定后不可改变

 

package array;

public class ArrayDemo01 {
   // 变量的类型 变量名 = 变量的值 恒定公式
   public static void main(String[] args) {
       int[] nums; //1。 定义
       //int nums2[]; // 第二种方法定义 C/C++的惯用写法

       nums new int[10]; //2。 创建一个数组, 这里面可以存放10个int类型的数字, 预留空间存放数据

       //3。 给数组元素赋值
       nums[0] 1;
       nums[1] 2;
       nums[2] 3;
       nums[3] 4;
       nums[4] 5;
       nums[5] 6;
       nums[6] 7;
       nums[7] 8;
       nums[8] 9;
       nums[9] 10;
       //若没有赋值, 则有默认值,int默认值为0, stirng默认值位Null
       System.out.println(nums[9]);

       // 计算所有元素的和:
       int sum 0;

       //获取数组长度 arrays.length
       for (int 0; nums.length; i++) {
           sum =sum nums[i];
      }
       System.out.println("总和为: " sum);
      }
}
//10
//总和为: 55
package array;

public class Practice01 {
   public static void main(String[] args) {
       char[] numbers;
       numbers new char[7];

       numbers[0] 'N';
       numbers[1] 'a';
       numbers[2] 't';
       numbers[3] 's';
       numbers[4] 'u';
       numbers[5] 'm';
       numbers[6] 'e';
       System.out.println(numbers[0]);
  }

}

二、java内存分析

java内存

Java内存 存放new的对象和数组 可以被所有的线程共享,不会存放别的对象引用 存放基本变量类型(包含这个基本类型的具体数据) 引用对象的变量(会存放这个引用在堆里面的具体地址) 方法区 可以被所有的线程共享 包含了所有的class和static变量

 

Java内存

 

1、 声明数组

int[] array = null;

2、 创建数组

array = new int[10];

3、 给数组元素赋值 - 堆中安置数字

 

声明数组时,数组并不存在,只有在创建数组时,数组开始存在。

第一步声明数组时,堆是空的。

如果要取不存在的元素, 就会出现error。

error: Java.lang.ArrayIndexOutOfBoundsException: 1 - 数组越界了,数组不存在

截屏2021-02-08 16.37.21

栈-堆数组

 

三种初始化

静态初始化

Int[] a = {1,2,3};

Man[] mans = {new Max(1,1), new Max(2,2)};

 

动态初始化

Int[] a = new int[2];

a [0] = 1;

a [1] = 2;

 

package array;

public class ArrayDemo02 {
   public static void main(String[] args) {
       //静态初始化: 创建+赋值 一起做了
       int[] = {1,2,3,4,5,6,7,8}; //直接初始化
       System.out.println(a[3]); // 4

       //动态初始化 - 动态初始化包含默认初始化
       int[]new int[10]; //后期手动赋值
       b[0] 10;
       System.out.println(b[0]);
       System.out.println(b[1]); // 0 - 没有赋值,所以是默认值0
       //创建完数组后,分配空间后,其实元素都有默认值=0,
  }
}

默认初始化

 

四、小结、数组的四个基本特点

数组一旦被创建,它的大小就是不可以改变的,如果越界,则报: ArrayIndexOutOfBounds

元素必须是相同类型的,不允许出现混合类型

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

数组变量属于引用类型,数组也可以看成是对象,数组中的每个元素想当于该对象的成员变量

无论是原始类型还是其他对象类型,java的对象都是保存在堆中的

 

 

posted @ 2021-02-08 17:03  NTE701  阅读(146)  评论(0)    收藏  举报
1