数组

数组的定义

定义格式

  1. 数据类型 [] 数组名=new 数据类型[长度]
    (1)数据类型:即数组中存储元素的数据类型,可以是基本数据类型,也可以是引用数据类型。
    (2)[]:表示数组。
    (3)数组名:数组的变量名,遵循标识符命名规范。
    (4)new:创建数组的关键字,通过new开辟空间。
    (5)长度:即数组长度,数组最多能够存放元素的个数,数组长度在定义时指定,不可更改。
  2. 数据类型 [] 数组名=new 数据类型[]{元素1,元素2,…};
    优点:定义时元素是确定的,避免内存空间的浪费。
  3. 数据类型[] 数组名={元素1,元素2,元素3,…};
public class ArrayDemo1{
   public static void main(String[]args){
       int [] arr1=new int [3];//虽然数组定义好了,但是具体储存哪三个数,不确定。
       int [] arr2=new int [] {1,2,3};
       int [] arr3={1,2,3};
   }
}

数组的访问

1.定义:通过数组的索引访问数组的元素。
(1)索引:也叫下标、脚标,是数组元素距离数组起始位置的偏移量。
第一个元素的偏移量为0,所以数组的索引从0开始。
(2)格式:数组名[索引]
取值:数组名[索引]
赋值:数组名[索引]=值;
(3)注意:数组下标越界的问题。
2.

public class ArrayDemo2{
  public static void main(String[]args){
     int []arr={11,22,33};
     //输出第3个元素的值,它的索引是2。
     System.out.println(arr [2]);
     //将数组第一个元素的值改为10。
     arr [0]=10;
     System.out.println(arr [0]);
  }
}

数组的遍历

需求:给定一个int型数组,输出数组中的每一个元素。

public class ArrayDemo3{
   public static void main(String []args){
   /*1.直接输出数组变量名,得到的是数组的内存地址值。
   2.数组中未手动赋值的元素,其实是有默认值的,
   例如:int 型数组默认值是0,double型数组默认值是0.0。
   3.数组的长度:    数组名.length
      数组的最大索引:    数组的长度-1。
        */
      int [] arr=new int [5];
      arr [0]=1;
      arr [1]=2;
      arr [2]=3;
      System.out.println(arr);
      //传统做法;遍历数组。
      System.out.println(arr [0] );
      System.out.println(arr [1] );
      System.out.println(arr [2] );
      System.out.println(arr [3] );
      System.out.println(arr [4] );
      System.out.println("arr数组的长度是:"+arr.length);
      System.out.println("arr数组的最大索引是:"+(arr.length-1)   );
      System.out.println("---------");
      //通过for循环遍历数组,打印数组中每个元素的值。
      for(int i=0;i<arr.length;i++){
          System.out.println(arr[i]);
       }
      }
   }

输出结果
1
2
3
0
0
[I@3ac3fd8b
arr数组的长度是:5
arr数组的最大索引是:4
————————————
1
2
3
0
0

数组的初始化

在内存中为数组开辟连续空间并为每个元素赋值的过程。
内存:计算机的重要组件,用于程序运行中临时储存数据。
连续空间:数组元素在内存中的存放位置是连续的。
1.(1)动态初始化:只指定长度,由系统给出默认值
整数型:0
浮点型:0.0
字符型:’\u0000’(空字符)
布尔型:false
引用类型:null
(2)静态初始化:给出初始化值,由系统决定数组长度。

2.Java程序的内存分配
(1)方法区:储存可运行的class文件,包含方法,静态成员,常量等。
(2)栈:方法运用时使用的内存,特点是“后进先出”,即最先进入栈区的方法最后出栈,比如main方法。
(3)堆:存储new出来的数组或对象。
(4)本地方法栈:JVM在调用操作系统功能时使用,与开发无关。
(5)寄存器:CPU使用,与开发无关。
数组类型:变量arr储存的是数组在堆 内存中的地址值,而不是数组元素的值,变量arr通过内存地址引用堆内存中的数组,
所以数组是引用类型。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值