狂神日记2-三种初始化及内存分析
1.三种初始化
(1)静态初始化:创建+赋值,后来无法改变它的值
例:int [ ] a = {1,2,3,4,5,6,7,8};
System.out.println( a[0] );
(运行结果为1)
(2)动态初始化:先声明创建,后来根据需要再赋值
例:int[ ] b = new int [10];
b[ 0 ]=10;
System.out.println( b[0] );
System.out.println( b[1] );
(运行结果为10
0)
没有被初始化的空间都默认值为0。
b[0]没有被初始化,因此它的值为0。
(3)数组的默认初始化:数组是引用类型,它的元素相当于类的实际变量,因此数组一经分配空间,其中的每个元素也被按照实际变量同样的方式被隐式初始化。
2.内存分析:
(1)堆:存放new的对象和数组
可以被所有的线程共享,不会存放别的对象引用
(2)栈:存放基本数据类型(会包含这个基本类型的具体数值)
引用对象的变量(会存放这个引用在堆里面的具体地址)
(3)方法区:可以被所有的线程共享
包含了所有的class和static变量
浙公网安备 33010602011771号