java内存管理和分配

53 篇文章 0 订阅

一、java内存管理:

               1、 Java把内存划分成两种:一种是栈内存,一种是堆内存。   

               2、在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配

     3、当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用。

     4、堆内存用来存放由new创建的对象和数组

     5、在堆中分配的内存,由Java虚拟机的自动垃圾回收器来管理。

     6、在堆中产生了一个数组或对象后,还可以在栈中定义一个特殊的变量,让栈中这个变量的取值等于数组或对象在堆内存中的首地址,栈中的这个变量就成了数组或对象的引用变量。

 二、java内存分配:程序运行时的内存分配有三种策略,分别是静态的,栈式的,和堆式的

          1、静态存储分配要求在编译时能知道所有变量的存储要求,

          2、栈式存储分配要求在过程的入口处必须知道所有的存储要求,

          3、堆式存储分配则专门负责在编译时或运行时模块入口处都无法确定存储要求的数据结构的内存分配,比如可变长度串和对象实例.堆有大片的可利用块或空闲块组成,堆中的内存可以按照任意顺序分配和释 放.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值