狂神日记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变量

 

posted @ 2021-01-05 09:56  蓝色森林lin  阅读(77)  评论(0)    收藏  举报