Java---数组与内存控制
来源:互联网 发布:哈布斯堡家族现状知乎 编辑:程序博客网 时间:2024/04/20 15:41
带着问题
- Java数组的基本语法
- Java数组的静态特性
- Java数组的内存分配机制
- 初始化Java数组的两种方式
- 初始化基本类型数组的内存分配
- 初始化引用类型数组的内存分配
- 何时是数组引用变量,何时是数组对象
- 数组元素等同于变量
- 多维数组的内存分配
数组初始化
数组的初始化有两种方式
- 静态初始化
- 动态初始化
//静态初始化String[] str= new String[]{"1","2","3"};//动态初始化String[] str2 = new String[5];
内存的分配:当数组初始化完成之后数组的长度就固定了,在内存中通过引用,上述中的str来指向这一块内存。str只是一个引用,改变它并不能改变内存中的数组。例如将str赋值为一个新的数组,并不能改变原来指向的数组。
通过数组来看内存分配:分清楚数组引用和数组对象,数组变量是一个引用,保存在栈内,而数组对象保存在堆中。所有局部变量都是存放栈内存;但是引用类型所引用的对象则总是在堆内存中。
基本类型数组的初始化
对于基本类型数组而言,数据元素的值直接存储在对应的数组元素中,因此初始化比较简单:程序直接先为数组分配内存空间,再将数据元素的值存入对应内存里。
int a[] = new int[2];
a
在栈空间中,不同于引用类型数组,由于基本类型的数组需要的内存小,所以a[0]
直接存的是值。
引用类型数组的初始化
引用类型的数组元素依然是引用类型,因此数组元素里存储的还是引用,它在堆中指向另一块内存。这块内存里存储了该引用变量所引用的对象。
使用数组
当数组引用变量指向一个邮箱的数组对象之后,程序就可以通过该数组引用变量来访问数组对象。
数组元素就是变量
还是需要强调一点的是所有数组引用在栈内存中,数组对象在堆内存中。务必要搞清楚这两个概念的区别。数组元素的使用与普通变量没有区别。
没有多维数组
所谓的多维数组,其实只是数组元素依然是数组的1维数组。
int a[][] = new int[2][2];
在上述代码中a[0]
和a[1]
是一个引用,分别指向了一个数组对象。而a[0][0]
也是一个引用,但是由于int是基本类型,所以这个引用直接存储了int类型的值。如果a[0][0]
不是基本类型,那么存储的是该类型的地址。3维数组依次类推。
阅读全文
0 0
- java数组与内存控制
- Java数组与内存控制
- Java数组与内存控制
- java 数组与内存控制
- Java数组与内存控制
- Java数组与内存控制
- Java---数组与内存控制
- 1. Java数组与内存控制
- Java数组与内存控制(转)
- Java进阶---数组与内存控制
- 疯狂java之数组与内存控制
- (一)Java数组与内存控制
- java之数组与内存控制
- java 基础概念 -- 数组与内存控制
- Java数组初始化与内存控制
- Java数组与内存控制(转)
- 数组与内存控制
- 数组与内存控制
- 欢迎使用CSDN-markdown编辑器
- jquery无new构造
- Hadoop 启动脚本分析与实战经验
- springboot打包
- 拼多多商家如何提升销量
- Java---数组与内存控制
- java 反射(四) 反射对属性、方法的操作
- HDU 1176 免费馅饼
- SAS数据导入的三种方法举例
- iOS开发中,illegal configuration Safe Area Layout Guide before iOS 9.0
- C语言实现16进制按照2进制反序,输出的结果用16进制显示
- Google增强现实解决方案介绍---ARCore
- unity使用UGUI特效裁剪
- Struts2从后台传递数据到前台