java中 stack与和heap的区别

原创 2015年11月18日 11:13:59

java的内存分为栈(stack)和堆(heap);

1、栈(stack)

 (1)定义

        每个应用运行时都有自己的一段内存空间,用于存放临时变量、参数传递、函数调用时的PC值以及对象的引用,这叫stack。

  (2)优缺点

    优点:存取速度比堆快,仅次于CPU中的寄存器。另外,

    缺点:存在栈中的数据的大小与生存期必须是确定的,所以缺乏灵活性。

  2、堆(heap)

  (1)定义

       堆是JVM的内存数据区。Heap的管理很复杂,每次分配不定长的内存空间专门用来保存对象的实例(实际上是保存对象实例的属性值,属性的类型和对象本身的类型标志等),并不保存对象的方法(方法是指令,保存在栈中)。

   (2)优缺点

        优点:堆是一个运行时的数据区,它的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,因为它是在运行时动态分配内存的,java的垃圾收集器会自动收走这些不再使用的数据。

       缺点:由于在运行时动态分配内存,存取速度比较慢。

JAVA中Stack和Heap的区别

1.Java中对象都是分配在heap(堆)中。从heap中分配内存所消耗的时间远远大于从stack产生存储空间所需的时间。 (1)每个应用程序运行时,都有属于自己的一段内存空间,用于存放临时变量、参数...
  • wl_ldy
  • wl_ldy
  • 2010年10月12日 13:45
  • 15785

面试题思考:Stack和Heap的区别

堆和栈的区别
  • u014306011
  • u014306011
  • 2016年04月02日 15:30
  • 3320

Java中Heap与Stack的区别

1) Heap是 Stack的一个子集。   2) Stack存取速度仅次于寄存器,Stack里面的数据可共享,但是其中数据的大小和生存期必须在运行前确定。   3) Heap...
  • john548
  • john548
  • 2016年08月18日 17:46
  • 114

java中的堆Heap和栈Stack的区别

java里面Heap和Stack分别存储数据的不同   Heap(堆) Stack(栈) JVM中的功能 内存数据区 内存指令区 存储数据 对象实例(1...
  • u012448293
  • u012448293
  • 2016年02月21日 00:31
  • 219

stack与heap的关系与区别

stack:         具体地说,现代计算机(串行执行机制),都直接在代码底层支持栈的数据结构。这体现在,有专门的寄存器指向栈所在的地址,有专门的机器指令完成数据入栈出栈的操作。这种机制的特点...
  • ydonghao2
  • ydonghao2
  • 2013年10月25日 19:24
  • 2636

java内存解析--heap(堆)stack(栈)的理解

学习编程的时候,经常会看到stack这个词,它的中文名字叫做"栈"。 理解这个概念,对于理解程序的运行至关重要。容易混淆的是,这个词其实有三种含义,适用于不同的场合,必须加以区分。 含义一...
  • smartboy_01
  • smartboy_01
  • 2014年04月04日 09:57
  • 3652

[Java]Stack栈和Heap堆的区别(终结篇)

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://android.blog.51cto.com/268543/50100   ...
  • wangshfa
  • wangshfa
  • 2012年12月28日 21:46
  • 405

java中堆(heap)和堆栈(stack)有什么区别

stack 和 heep 都是内存的一部分stack 空间小,速度比较快, 用来放对象的引用heep 大,一般所有创建的对象都放在这里。栈(stack):是一个先进后出的数据结构,通常用于保存方法(函...
  • jxdwyg
  • jxdwyg
  • 2010年06月02日 09:17
  • 144

堆(heap)和栈(stack)有什么区别??

堆栈存放用户自己用malloc分配的空间,用free来释放;由用户自己管理,而栈存放函数的局部变量,由编译器来负责分配和回收管理,速度快,但容量有限, 简单的可以理解为:  heap:是由ma...
  • ly0303521
  • ly0303521
  • 2015年04月09日 19:40
  • 1670

堆内存(Heap)和栈内存(Stack)详解

原文地址:http://blog.csdn.net/abcjennifer/article/details/39780819 堆:顺序随意  栈:先进后出  堆和栈的...
  • Meta_Cpp
  • Meta_Cpp
  • 2015年01月09日 14:02
  • 2524
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java中 stack与和heap的区别
举报原因:
原因补充:

(最多只允许输入30个字)