一. 数组元素访问:
1.什么是索引
每一个存储到数组的元素,都会自动的拥有一个编号,从0开始。
这个自动编号称为数组索引(index),可以通过数组的索引访问到数组中的元素。
2.访问数组元素格式
数组名[索引];
3.示例代码
package com.itheima.array; public class Demo3ArrayIndex { /* 数组动态初始化: 初始化的时候, 手动指定数组长度, 系统会为数组容器分配初始值. 数组的元素访问格式: 数组名[索引] 索引: 数组中数据的编号方式, 编号从0开始 作用: 访问数组容器中的空间位置 注意: 数组在创建完毕后, 即使没有赋值, 也可以取出, 但取出的元素都是默认初始化值. */ public static void main(String[] args) { int[] arr = new int[3]; // 0 1 2 System.out.println(arr); // 数组变量名记录的是数组在堆中的内存地址,数组的内存地址 [I@10f87f48 // 数组名[索引] 访问数组容器中的空间位置 System.out.println(arr[0]); // 0 系统自动分配的默认初始化值 System.out.println(arr[1]); System.out.println(arr[2]); System.out.println("--------------"); // 数组名[索引] arr[0] = 11; arr[1] = 22; arr[2] = 33; System.out.println(arr[0]); System.out.println(arr[1]); System.out.println(arr[2]); } }
二.内存分配:
1.内存概述:
内存是计算机中的重要原件,临时存储区域,作用是运行程序。我们编写的程序是存放在硬盘中的,在硬盘中的程序是不会运行的。
必须放进内存中才能运行,运行完毕后会清空内存。
Java虚拟机要运行程序,必须要对内存进行空间的分配和管理。
2.java中的内存分配:
目前我们只需要记住两个内存,分别是:栈内存和堆内存
区域名称 作用
寄存器 :给CPU使用,和我们开发无关。
本地方法栈: JVM在使用操作系统功能的时候使用,和我们开发无关。
方法区: 存储可以运行的class文件。
堆内存: 存储对象或者数组,new来创建的,都存储在堆内存。
方法栈: 方法运行时使用的内存,比如main方法运行,进入方法栈中执行。
通过数组变量名记录的地址在堆内存中找到内存空间,通过索引找到具体的值
两个数组内存图
多个数组指向相同内存图
三. 数组的静态初始化:
1. 什么是静态初始化
在创建数组时,直接将元素确定
2. 静态初始化格式;
完整版格式:
数据类型[] 数组名 = new 数据类型[]{元素1,元素2,...};
简化版格式
数据类型[] 数组名 = {元素1,元素2,...};这只是简化了new及后面的部分语句,对于编译器而言,会自动给你补上new及后面的部分语句,所以也会在堆中创建一片内存空间,产生内存地址
3.两种初始化的区别:
动态初始化:手动指定数组的长度,由系统自动产生默认初始化值
静态初始化:手动指定数组元素,系统会根据元素个数,计算出数组的长度
使用场景:
动态初始化:只明确元素个数,不明确具体数值,推荐使用动态初始化
例:使用数组容器来记录键盘录入的5个整数
静态初始化:
需求当中已经明确了要操作的具体数据,直接静态初始化即可
例:将一班学生的成绩存入数组当中 85 86 87
原文:https://www.cnblogs.com/swx2022kycgsa/p/15110163.html