Java中堆和栈的区别
来源:互联网 发布:java软件工程师资格证 编辑:程序博客网 时间:2024/05/29 08:20
转载自:堆于栈的介绍
java 的内存分为两类,一类是栈内存,一类是堆内存。
栈内存是指程序进入一个方法时,会为这个方法单独分配一块私属存储空间,用于存储这个方法内部的局部变量,当这个方法结束时,分配给这个方法的栈会释放,这个栈中的变量也将随之释放。
堆是与栈作用不同的内存,一般用于存放不放在当前方法栈中的那些数据,例如,使用new 创建的对象都放在堆里,所以,它不会随方法的结束而消失。方法中的局部变量使用final 修饰后,放在堆中,而不是栈中。
堆:(对象)
引用类型的变量,其内存分配在堆上或者常量池(字符串常量、基本数据类型常量),需要通过new等方式来创建。
堆内存主要作用是存放运行时创建(new)的对象。
( 主要用于存放对象,存取速度慢,可以运行时动态分配内存,生存期不需要提前确定)
栈:(基本数据类型变量、对象的引用变量)
基本数据类型的变量(int、short、long、byte、float、double、boolean、char等)以及对象的引用变量,其内存分配在栈上,变量出了作用域 就会自动释放。
栈内存的主要作用是存放基本数据类型和引用变量。栈的内存管理是通过栈的"后进先出"模式来实现的。
(主要用来执行程序,存取速度快,大小和生存期必须确定,缺乏灵活性)
0 0
- Java中堆和栈的区别
- Java中堆和栈的区别
- Java中堆和栈的区别
- Java中堆和栈的区别
- Java中堆和栈的区别
- JAVA中堆和栈的区别
- Java中堆和栈的区别
- Java中堆和栈的区别
- JAVA中堆和栈的区别
- java中堆和栈的区别
- Java中堆和栈的区别
- Java中堆和栈的区别
- Java中堆和栈的区别
- Java中堆和栈的区别
- Java中堆和栈的区别
- Java中堆和栈的区别
- java中堆和栈的区别!!!!
- Java中堆和栈的区别
- BZOJ 3209 二进制数位DP
- SpringMVC学习笔记(二)
- Eclipse运行C++文件
- Mongodb学习(3)基本操作——增删改查
- linux中动态队列管理机制(AQM):CoDel
- Java中堆和栈的区别
- MYSQL优化建议
- 用户和用户组
- Activity被回收导致Fragment的getActivity为null的解决办法
- Spring MVC 整合 hibernate-validator
- 大数据概念,数据技术分类,ETL
- could not extract ResultSet
- PoEdu_Windows_Lesson02_数据类型和字符编码
- Android 出现错误:Error:(1, 0) Minimum supported Gradle version is 3.3. Current version is 2.14.1. If usi