Java数组篇02——数组初始化及拓展
无冥冥之志者,无昭昭之明,无昏昏之事者,无赫赫之功。——荀子
★本篇笔记简介:0.思维导图-->1.数组初始化-->2.数组边界-->3.小结-->4.拓展补充
目录
0、思维导图
1、数组初始化
数组初始化主要分为三种:静态初始化、动态初始化以及数组的默认初始化。
下面逐一介绍:
1.1静态初始化
除了用new关键字来产生数组以外,还可以直接在定义数组的同时就为数组元素分配空间并赋值。
int[] a = {1,2,3}; Student[] stus = {new Student(1,1),new Student(2,2)};
1.2动态初始化
数组定义、为数组元素分配空间、赋值的操作、分开进行。
int[] a = new int[2]; a[0]=1; a[1]=2;
1.3数组的默认初始化
数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被隐式初始化。
ps: 隐式初始化,可以理解为默认初始化。
public static void main(String[] args) { int[] a=new int[2]; boolean[] b = new boolean[2]; String[] s = new String[2]; System.out.println(a[0]+":"+a[1]); System.out.println(b[0]+":"+b[1]); System.out.println(s[0]+":"+s[1]); }
输出结果,如图
:
2、数组边界
下标的合法区间:[0, length-1],如果越界就会报错;
public static void main(String[] args) { int[] a=new int[2]; System.out.println(a[2]); }
输出结果,如图
:
★ps: ArrayIndexOutOfBoundsException : 数组下标越界异常!
3、小结
- ① 数组是相同数据类型(数据类型可以为任意类型)的有序集合。
- ② 数组也是对象。数组元素相当于对象的成员变量。
- ③ 数组长度的确定的,不可变的。如果越界,则报:ArrayIndexOutofBounds。
4、拓展补充:Java内存
4.1 栈(Stack)
在栈内存中保存的是堆内存空间的访问地址,或者说栈中的变量指向堆内存中的变量。
连续的存储空间,遵循后进先出的原则,用于存放局部变量。
4.2 堆(Heap)
堆内存用来存放由new创建的对象实例和数组。
不连续的空间。
4.3 方法区(Method)
方法区是各个线程共享的内存区域,它用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。
方法区在堆空间内,用于存放:
①类的代码信息;
②静态变量和方法;
③常量池。
思维图示:
作者:Code_流苏(一个喜欢古诗词和编程的Coder😊)
★喜欢的话,还请多多点赞与关注!❤ 感谢支持!❤
笔记更新随个人学习进度而进行,欢迎评论交流学习!