Java内存
堆
- 存放new的对象与数组。
- 可以被所有线程共享,不会被别的对象引用。
栈
- 存放基本变量内型(也会包含这个内型的基本数值)
- 引用对象的变量(会引用存在这个堆里的具体数值)
- 堆处于栈中
方法区
- 可以被所有线程共享
- 包含所有的static与class
数组
- 声明的时候数组并不存在只有创建一个数组时才存在。
- 取出数组时不能超过创建的总数组
但是我们一般会把声明与创建写在一块
三种初始化
静态初始化
//一维数组的静态初始化
int[] a = {1,2,3,4,5,6,7,8,9} ;
//二维数组的静态初始化
int[] [] b ={
{1,2},{3,4},{5,6}}
//创建加赋值
//引用类型先了解Mam[] mans = {new mans(1,2),new mans(3,4)};
动态初始化
- 动态初始化包含了默认初始化。
//一维数组
int[] nums = int[3];
nums[0] = 1;
nums[1] = 2;
nums[2] = 3;
nums[3] = 4;
//二维数组
int[][] nums1 = int [4][2];
nums1[0][1] = 1;
nums2[0][2] = 2;
数组的默认初始化
除了8个基本类型其他全是引用类型
数组是引用类型,它的元素相当于类的实例变量,因此数组一被创建其中的每个元素与实例变量一样都被隐式初始化。