Java千百问_07JVM架构(003)_内存分配有哪些策略
Posted 幽灵雾
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java千百问_07JVM架构(003)_内存分配有哪些策略相关的知识,希望对你有一定的参考价值。
1、内存分配有哪些策略
我们从编译原理讲起,不同的开发环境、开发语言都会有不同的策略。一般来说,程序运行时有三种内存分配策略:静态的、栈式的、堆式的
静态存储
是指在编译时就能够确定每个数据目标在运行时的存储空间需求,因而在编译时就可以给它们分配固定的内存空间。
这种分配策略要求程序代码中不允许有可变数据结构的存在,也不允许有嵌套或者递归的结构出现,因为它们都会导致编译程序无法计算准确的存储空间。栈式存储
栈式存储分配是动态存储分配,是由一个类似于堆栈的运行栈来实现的,和静态存储的分配方式相反。
在栈式存储方案中,程序对数据区的需求在编译时是完全未知的,只有到了运行的时候才能知道,但是规定在运行中进入一个程序模块的时候,必须知道该程序模块所需要的
以上是关于Java千百问_07JVM架构(003)_内存分配有哪些策略的主要内容,如果未能解决你的问题,请参考以下文章
Java千百问_07JVM架构(005)_显示内存管理有什么弊端
Java千百问_07JVM架构(015)_XmnXmsXmxXss有什么区别
Java千百问_07JVM架构(013)_java什么情况会内存溢出
Java千百问_07JVM架构(016)_java内存如何优化