004数组的定义(一维数组)

1. 数组定义格式及初始化

  • 什么是数组?

  • 该如何定义数组?

    1: 数组就是一个[容器], 用来存储[同种数据类型]的多个值.

如果定义的数组类型是一个int类型的, 该数组容器就只能存储int类型的整数.
不能存储String类型的字符串.
细节: 如果创建的数组容器类型是一个double类型的, 该数组容器可以存储double以下的整数类型.

2: 定义数组的格式:

		数据类型[] 数组名;

			int[] arr1;
			
	动态初始化:
				数据类型[] 数组名 = new 数据类型[数组的长度];
				
				int[] arr = new int[3];
	
	静态初始化:
	
				完整格式:
						数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3...};
				
				简化格式:
						数据类型[] 数组名 = {元素1,元素2,元素3...};
						
							注意: 简化格式当中没有看到new关键字, 但是也会在堆内存开辟空间并产生地址值.
							
							int[] arr = {11,22,33,44};
							
				静态初始化在创建的时候, 不允许动静结合
									
								int[] arr = new int[2]{11,22,33};

2. 数组元素访问

  • 什么是索引(角标 下标)?

  • 怎样通过索引操作数组中的元素?

    1. 索引 : 数组容器中, 每一个元素位置的[编号]
      编号从0开始, 逐个增长

    2. 操作格式 : 数组名[索引];

3. 内存分配

  • Java内存中分为那几块区域?
  • 数组在内存中创建的过程?
  栈内存 : [方法]运行时所进入的内存, 变量都存放在这块内存当中.

  堆内存 : new出来的东西, 都会进入堆内存

  				堆内存中产生的数据, 都会存在[地址值]

  				Scanner sc = new Scanner(System.in);
  				Random r = new Random();
  				int[] arr = new int[3];

方法区 : .class(字节码)文件加载时, 进入的内存.

					Demo.java	-> 源文件
					Demo.class  -> 字节码文件

						Demo.class ------ JVM
本地方法区 : 交给[操作系统]去访问[底层资源]的一些方法.
  				如果在源码当中, 某些功能被native所修饰, 就代表该方法会存放在本地方法区.
  					源码中是看不到此类方法的具体实现过程的.							
  寄存器 : 交给CPU去使用的.

4. 数组操作的两个小问题

  1. 数组索引越界异常

     ArrayIndexOutofBoundsException : 当访问了不存在的索引时
    
  2. 空指针异常 :

     NullPointerException : 当一个变量不再记录地址值的时候, 还想去访问堆内存的数据.
    

5. 数组遍历

  • 什么是数组的遍历?
  • 数组名.length代表的是什么?
  1. 数组的遍历, 就是通过[循环]将数组中所有的数据[取出来]

     	取出来 :
     			打印, 累加求和, 判断...
    
  2. 数组名.length: 动态获取数组的长度

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值