Java——内存分配的简单介绍

Java为了提高程序的效率,对内存空间进行了不同的划分,具体有以下5个内存空间:

1、栈:存放的是局部变量,即主要存放main中的变量,包括类的对象在堆中的地址,但是当对象调用他们的成员方法的时候,会在子栈中申请一块内存来存储该成员方法。
 特点:
   A:栈内存的数据使用完就释放掉
   B:先进后出

2、堆:存放的是所有new出来的东西,即累的对象,包括对象的成员变量,以及成员方法在堆中的标记(成员方法在方法区中的地址)。同时把该对象的首地址标记在栈中对象的声明的内存下。
 特点:
   A:每一个new出来的东西都有地址值
   B:每个变量都有默认值
       byte,short,int,long 默认值为0
       float,double, 默认值为0.0
       char 默认值为 ‘\u0000’
       boolean 默认值为false
       引用类型 默认值为null
   C:使用完毕就变成了垃圾,但是并没有立即回收,会在垃圾回收器空间的时候回收。

3、方法区:存放class文件,以及对象的成员方法。同时会把该成员方法的地址标记在堆的对象内存下,但是当对象调用他们的成员方法的时候,该方法会入栈。

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

5、寄存器:(CPU使用)

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值