java内存
堆
存放new的对象和数组
可以被所有的线程共享,不会存放别的对象引用
栈
存放基本变量类型(会包含这个基本类型的具体数值)
引用对象的变量(会存放这个引用在堆里面的具体地址)
方法区
可以被所有线程共享
包含了所有的class和static变量
数组
数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被隐示初始化
也就是说,没被我们自己主动初始化的话,java会自己给它赋予初值。
特点
- 数组一旦被创建,它的大小就是不可以改变的
- 数组中的元素可以是任意类型,包括基本类型、引用类型
- 数组变量属引用类型,数组也可以看成是对象,对象中的每个元素相当于该对象的成员变量。
- 数组本身就是对象,java中对象是在堆中的(new出来的都是堆中的),因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中的