一、栈空间

1、栈空间存储数据效率高

2、栈中的数据是按“先进后出”的方式管理

3、栈空间存储空间比较小,不能存放大量的数据

4、JVM将基本类型的数据存放在栈空间

帮助理解

  1、“客栈” 能提供很多优质高效的服务[效率高]

  2、“客栈” 外面想入住的客人很多  ||  假设客人先进去的优先安排住在最顶楼[先进],而最顶楼要出去也是最慢的[后出]。

  3、“客栈”收费比较贵,所以不能提供大量房间入住[存储空间小]。

  4、基本类型的数据 --》  是“客栈”的VIP,可以优先入住

二、堆空间

1、堆空间存取数据的效率最低

2、数据存放的位置随机分配

3、堆空间存储数据的空间大,能存放大容量的数据

帮助理解

  1、“草堆”里寻找想要的种子,要找很久[效率低]

  2、“草堆”里的种子都是随便摆放的[位置随机分配]

  3、“草堆”旁边可以放很多的种子,随便来啊,哈哈[存储空间大]

Java栈和堆的区别的更多相关文章

  1. 面试题思考:Stack和Heap的区别 栈和堆的区别

    堆栈的概念: 堆栈是两种数据结构.堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除.在单片机应用中,堆栈是个特殊的存储区,主要功能是暂时存放数据和地址,通常 ...

  2. java栈内存堆内存和GC相关

    java栈内存堆内存 Java把内存分成两种,一种叫做栈内存,一种叫做堆内存,有着不同的作用.栈内存用来存储局部变量和方法调用.栈内存归属于单个线程,每个线程都会有一个栈内存,其存储的变量只能在其所属 ...

  3. java栈、堆

    一.栈.堆 几个小概念 1.寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制. 2. 栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的 ...

  4. Java栈与堆 (转)

    1. 栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方.与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆. 2. 栈的优势是,存取速度比堆要快,仅次于直接位于C ...

  5. 内存栈与堆的区别C#

    C# 堆与栈 理解堆与栈对于理解.NET中的内存管理.垃圾回收.错误和异常.调试与日志有很大的帮助.垃圾回收的机制使程序员从复杂的内存管理中解脱出来,虽然绝大多数的C#程序并不需要程序员手动管理内存, ...

  6. Java学习之栈和堆的区别

    在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配. 当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放掉为该变量所分配 ...

  7. java栈和堆区别

    1, 垃圾回收机制仅仅作用于堆内存,与栈内存无关; 2, 栈:stack 栈的存取速度比堆快,效率高 保存局部变量和对象的引用值 3, 堆:保存较大的变量 4, 栈有一个很重要的特殊性,就是存在栈中的 ...

  8. C++ 栈和堆的区别

    C++中的存储区分为全局数据区.代码区.堆.栈. 全局数据区存放静态数据.全局变量.常量. 代码区存放所有类成员函数和非成员函数的代码. 栈区存放用于函数的返回地址.形参.局部变量.返回类型. 堆区存 ...

  9. java栈与堆

    java基本类型: 变量存放在栈区 java引用类型: 变量名存放在栈区,变量内容存放在堆区. 实例一: int a = 6; int b = 9; swap(int x, int y) { int ...

随机推荐

  1. Android应用APP脱壳笔记

    [TOC] 天下游 模拟定位技术点简析 通过代码分析初步猜测模拟定位用到的几处技术点: 获取了Root权限 通过反射获取 android.os.ServiceManager 对应的函数 getServ ...

  2. Atitit.木马病毒 webftp 的原理跟个设计

    Atitit.木马病毒 webftp 的原理跟个设计 ftp木马的效果 文件传播 文件列表 文件内容查看 作者::  ★(attilax)>>> 绰号:老哇的爪子 ( 全名::Att ...

  3. 使用apxs安装apache模块

    使用apxs安装apache模块                 ---by石锅拌饭 1.缘由 前几天迁移系统.发现配置了fastcgi的一个脚本下载文件总是提示类似Connection reset ...

  4. C++语言基础(6)-const 关键字

    在类中,如果你不希望某些数据被修改,可以使用const关键字加以限定.const 可以用来修饰成员变量.成员函数以及对象. 一 const 成员变量 const 成员变量的用法和普通 const 变量 ...

  5. pthread linux mutet:example1

    #include<iostream> #include<unistd.h> #include<pthread.h> #include<string> u ...

  6. 开源码应用之Eclipse篇

    开写这篇的时候,恰逢Eclpse Mars(4.5)正式公布,最终由日蚀变登火星了,也离我開始基于Eclipse开发产品已经过去10年,这10年间,经历了Eclipse由私有核心框架到拥抱OSGi, ...

  7. SDUTOJ 2772 KMP简单应用

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvUl9NaXNheWE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA ...

  8. gtest入门简介

    Gtest测试,入门简介: 资源:http://developer.51cto.com/art/201108/285290.htm http://www.cnblogs.com/bangerlee/a ...

  9. Failed to load the JNI shared library jvm.dl

    . 原因1:该目录下jvm.dll不存在 2 解决办法:重新安装jdk或者jre并配置好环境变量.copy一个jvm.dll放在该目录下 3 原因2:eclipse的版本与jdk或者jre版本不一致 ...

  10. go语言获取字符串元素的个数

    1:获取字符串字节的个数,并按字节挨个输出 package main import ( "fmt" ) func main() { var str string = "a ...