java全栈系列之JavaSE--数组的三种初始化方法及内存分析024
2021/7/30 7:36:18
本文主要是介绍java全栈系列之JavaSE--数组的三种初始化方法及内存分析024,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
java内存分析
堆中存放new出来的对象和数组,存放具体的值的变量存放在栈里面
在定义和创建数组的时候内存发生了什么?
当用户定义了一个数组,例如:int [ ] Array;只是定义了一个数组没有创建。这时在栈里记录了一个int类型的数组Array,但是栈里面并没有存放数组里面的数据,当用户创建数组是,例:int [ ] Array=new int[5];在内存空间的堆创建了一个int类型的Array数据,并定义数组长度是5,所以数组创建前也就是在定义的时候,是存放在栈里的,创建后并赋值之后是存放在堆里面的
数组的下标越界:
当用户定义了一个int类型的数组名为Array长度为5,数组的下标为(0-Array.length)-1,也就是0-4,
int [] Array = new int[5]; //数组也可以直接创建,无需定义,定义则是空数组 Array[0]=1; //分别赋予初始值 Array[1]=2; Array[2]=3; Array[3]=4; Array[4]=5;
当我取的值大于数组的最大长度则会出现下表越界的现象
例如:下表最大是4但是我取5的值,则会报错
System.out.print(Array[5])
数组的初始化方式:
//第一种 int []Array; //只定义数组,并没有创建 //第二种 int [] Array = new int [10];//无需声明数组,直接创建数组并指定长度
静态初始化与动态初始化
静态初始化
int [] Array1={1,2,3,4,5,6,7,8,9,10}; //定义数组时并定义初始值 int [] Array2={11,22,33,44,55,66,77,88,99,100};//定义后无法修改
Man引用类型
Man[] mans={new Man1(),new Man2()};
动态初始化
int [] Array = new int [10]; //先创建后赋予值 Array[0]=100; Array[4]=400;
这篇关于java全栈系列之JavaSE--数组的三种初始化方法及内存分析024的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-22项目:远程温湿度检测系统
- 2024-12-21《鸿蒙HarmonyOS应用开发从入门到精通(第2版)》简介
- 2024-12-21后台管理系统开发教程:新手入门全指南
- 2024-12-21后台开发教程:新手入门及实战指南
- 2024-12-21后台综合解决方案教程:新手入门指南
- 2024-12-21接口模块封装教程:新手必备指南
- 2024-12-21请求动作封装教程:新手必看指南
- 2024-12-21RBAC的权限教程:从入门到实践
- 2024-12-21登录鉴权实战:新手入门教程
- 2024-12-21动态权限实战入门指南