美文网首页
java内存分析

java内存分析

作者: RoboyCore | 来源:发表于2016-11-04 12:21 被阅读41次

    0.寄存器:
    寄存器是存在在cpu上的。而内存是挂在数据总线的,数据总线就是用来决定传输数据的大小。而就是通过在寄存器上的地址来寻找相应内存。总的来说,寄存器和内存是两个东西,程序是无法来控制寄存器,所以这里了解一下就可以了。主要涉及到运行程序涉及到的就是下面这些栈(stack)、堆(heap)、静态域、常量池。

    1.堆栈:就是堆中的栈,比如牛奶,是牛身上的奶;
    栈中主要存放一些基本类型的变量( int, short, long, byte,float, double, boolean, char )和对象引用。 对象是不会放置在里面的。

    2.堆:存放的主要是动态生成的对象和数组。从这个存放的数据可以知道,这个堆里面存放的是,在程序运行的时候生成的一些数据。如:对象的定义和变量的定义。

    3.数据共享Data segment
    3.1常量池
    这个主要是在编译完成后,存放在.class文件中(code segment)。包括一些基本的数据类型和相应的类的接口和声明。换言之就是在编译后,程序中经常使用的不会改变的。
    3.2 静态域
    这个就是咱们存放在对象中的静态变量。随着类加载而加载。
    静态常量,构造方法等,都会触发类加载。

    //======================================================

    PCB //程序控制块 你懂的...
    stack //局部变量...

    。 //stack往下动态增长,heap往上动态增长

    heap //new出来的...
    bss segment //未初始化全局变量...
    data segment //数据段,程序运行的中间数据
    code segment //代码段,程序要运行,当然要把代码移进内存啊
    //==============================================================

    内存分析

    相关文章

      网友评论

          本文标题:java内存分析

          本文链接:https://www.haomeiwen.com/subject/ksoiuttx.html