Java内存分析
堆
-
存放new 的对象和数组
-
可以被所有的线程共享,不会存放别的对象引用
栈
-
存放基本变量类型(会包含这个基本类型的具体数值)
-
引用对象的变量(会存放这个引用在堆里面的具体地址)
方法区
-
可以被所有的线程共享
-
包含了所有的class和static变量
数组
初始化
-
静态初始化
int []a={1,2,3,4,5,6};
-
动态初始化
int []b=new int [5];
数组四个基本特点
-
长度确定,数组一旦被创建它的大小就是不可改变的
-
元素必须是相同类型的
-
数组中的元素可以是任意类型,包括基本类型和引用类型
-
数组变量属于引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量,数组本身就是对象,Java中对象是在堆中,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中的
循环
-
for循环
for(int i=oi<a.length;i++)
-
foreach循环
for(结果类型 结果名称 循环体)
多维数组
-
多维数组可以看成是数组的数组,比如一个二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组
-
二维数组
int a[][]=new int[2][5];
稀疏数组
-
当一个数组中的大部分元素为0,或者为同一值的数组时,可以使用稀疏数组来保存该数组
-
稀疏数组处理方式:
-
记录数组一共有几行几列,有多少个不同值。
-
把具有不同值的元素和行列及值记录在一个小规模的数组中,从而缩小程序的规模
-