Java数组
来源:互联网 发布:网络大众理财产品收益 编辑:程序博客网 时间:2024/06/05 14:34
数组是一种引用数据类型,数组引用变量只是一个引用,数组元素和数组变量在内存里是分开存放的。
实际的数组对象被存储在堆(heap)内存中;如果该数组对象的数组引用变量是一个局部变量,则存储在栈(stack)内存中。
堆和栈的区别:
当一个方法执行时,每个方法都会建立自身的内存栈,在这个方法内定义的变量将会逐个放入这块栈内存中,随着方法的执行结束,该方法的内存栈将自然销毁。因此,所以在方法中定义的局部变量都存放在栈内存中;当在程序中创建一个对象时,该对象将被保存在运行时数据区中,以便反复利用(因为对象的创建成本通常较大),该运行时数据区就是堆内存。堆内存中对象不会随着方法的结束而销毁,即使方法结束后,对象仍会被其他变量所引用。只有当一个对象没有任何引用变量引用它时,系统的垃圾回收器才会在合适时间回收它。
为了能够有效销毁已经不会再使用的堆内存中的数组,可将数据的变量赋为null,即切断了数组引用变量和实际数组之间的引用关系,实际的的数组成为了垃圾。
当程序中初始化数据后,系统中实际上产生两个内存区,分别为栈内存中的引用变量,堆内存中的数据本身。如下图所示:
阅读全文
0 0
- java数组添加数组
- java数组添加数组
- Java数组-二维数组
- 【Java】数组--二维数组
- java-数组/二维数组
- Java数组、遍历数组
- java数组
- JAVA数组
- JAVA数组
- JAVA数组
- Java数组
- Java数组
- java数组
- java数组
- java数组
- Java--数组
- Java数组
- java 数组
- 如何在本地搭建Python开发环境
- 过滤器(Filter)、监听器(Listener)
- Spring属性注入
- [RK3288][Android6.0] WiFi之从Linkspeed看获取流程
- 遍历所有Map(json)中的键值对
- Java数组
- JAVA、WEB最新技术框架整理 参考下
- 初识Docker
- 物联网产业链
- 简单LinuxC程序关于排序问题(冒泡排序与选择排序)
- java继承[详细]
- vs2010中的c语言sqrt编译不通过
- 基于Apache2.2配置虚拟域名访问
- Spring学习笔记(二)IOC详解