Java中什么是引用变量?
Java的引用变量实际上是一个指针,它指向的是堆内存中对象实例,就相当于是为数组或对象起的一个名称,然后就可以在程序中使用栈中的引用变量来访问堆中的数组或对象。
什么是堆, 什么是栈?
存储区域 | 存储内容 | 优点 | 缺点 | 回收 |
---|---|---|---|---|
栈 | 基本类型的变量和对象的引用变量 | 存取速度比堆要快,仅次于寄存器,栈数据可以共享 | 存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。栈中主要存放一些基本类型的变量 | 当超过变量的作用域后,Java会自动释放掉该变量,内存空间可以立即被另作他用 |
堆 | 由new等指令创建的对象和数组 | 可以动态地分配内存大小,生存期也不必事先告诉编译器 | 由于要在运行时动态分配内存,存取速度较慢 | 由Java虚拟机的自动垃圾回收器来回收不再使用的数据 |
堆栈的存储特点决定了其中存储的数据类型。
推荐教程:《Java教程》