栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java数组篇02——数组初始化及拓展

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java数组篇02——数组初始化及拓展

Java数组篇02——数组初始化及拓展

无冥冥之志者,无昭昭之明,无昏昏之事者,无赫赫之功。——荀子

★本篇笔记简介:0.思维导图-->1.数组初始化-->2.数组边界-->3.小结-->4.拓展补充

目录
    • Java数组篇02——数组初始化及拓展
      • 0、思维导图
      • 1、数组初始化
        • 1.1静态初始化
        • 1.2动态初始化
        • 1.3数组的默认初始化
      • 2、数组边界
      • 3、小结
      • 4、拓展补充:Java内存
        • 4.1 栈(Stack)
        • 4.2 堆(Heap)
        • 4.3 方法区(Method)

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)

★喜欢的话,还请多多点赞与关注!❤ 感谢支持!❤
笔记更新随个人学习进度而进行,欢迎评论交流学习!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/677226.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号