Fork me on GitHub

java内存分配

A:栈 存储局部变量


B:堆 存储所有new出来的


C:方法区(方法区的内存中)

             类加载时 方法信息保存在一块称为方法区的内存中, 并不随你创建对象而随对象保存于堆中;

D:本地方法区(系统相关)


E:寄存器(CPU使用)

注意:
         a:局部变量 在方法定义中或者方法声明上定义的变量。
         

         b:栈内存和堆内存的区别
                栈:数据使用完毕,就消失。------>存储的是值类型

                                         局部变量:在栈中

                堆:每一个new出来的东西都有地址 --------->存储的是引用类型

                       成员变量:在堆中

                      每一个变量都有默认值
                      byte,short,int,long 0
                      float,double 0.0
                     char '\u0000'
                     boolean false
                     引用类型 null
                     数据使用完毕后,在垃圾回收器空闲的时候回收。

  c:方法区中会有:常量池,静态方法区域,非静态方法区。

 

posted on 2017-01-03 23:44  TopTime  阅读(181)  评论(0编辑  收藏  举报