数组变量属于引用类型, 数组本身就是对象, java 中对象是在堆中的
Java 程序在运行时, 需要在内存中分配空间, 为了提高运算效率, 就对空间进行了不同区域的划分, 因为每一片区域都有特定的处理数据方式和内存管理方式
栈: 存放局部变量
堆: 存储的是所有 new 出来的东西
方法区: 后面讲
本地方法区: 和系统相关
寄存器: 给 cpu 使用
栈内存的数据用完就释放掉(脱离了它的作用域才会释放)
堆内存的特点:
每一个new 出来的东西都有地址值
每个变量都有默认值(byte short int log -> 0, float double -> 0.0, char -> '\0000', 就是一个空字符, boolean -> false, 引用类型 -> null
使用完毕就变成了垃圾, 但是并没有立即回收, 会在垃圾回收器空闲时回收
方法的加载也是在栈中