JAVA中的内存分配及栈与堆的区别

    xiaoxiao2025-04-05  20

    JAVA程序为提高效率,就对数据空间进行了不同的分配

    具体分为如下5个内存空间:

    1、栈:存放局部变量

    2、堆:存放所有new出来的东西个

    3、方法区:存放方法

    4、本地方法区:和系统相关

    5、寄存器:CPU使用

    栈内存的数据用完就释放掉

    例:{

    int a=100;

    System.out.println(a);

    }

    堆内存的特点:

    A:每个new出来的东西都有地址值

    B:每个变量都有默认值

         byte,short,int ,long 默认0              float,double默认0.0         

      char默认‘\u0000’         boolean 默认false           引用类型默认null

    C:使用完毕后就变成了垃圾,但没有立即回收,会在垃圾回收器空闲时回收

    例:java中的GC就像学校中的清洁工,会挨个教师清理

    而C++中的GC则是专一的,可随时清理想清理的

    转载请注明原文地址: https://ju.6miu.com/read-1297764.html
    最新回复(0)