JVM 堆和栈的区别

Posted 二十六度半

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JVM 堆和栈的区别相关的知识,希望对你有一定的参考价值。


 
栈内存:
 
  • 程序在栈内存中运行
 
  • 栈中存的是基本数据类型和堆中对象的引用
 
  • 栈是运行时的单元
 
  • 栈解决程序的运行问题,即程序如何执行,或者说如何处理数据
 
  • 一个线程一个独立的线程栈
 
 
堆内存:
 
  • 程序运行所需的大部分数据保存在栈内存中
 
  • 堆中存的是对象
 
  • 堆是存储的单元,堆只是一块共享的内存
 
  • 堆解决的是数据存储的问题,即数据怎么放,放在哪儿
 
  • 所有线程共享堆内存
 
 
Java中的参数传递( 传值呢?还是传引用? ):
 
  • 程序运行永远都是在栈中进行的,因而参数传递时,只存在传递基本类型和对象引用的问题,不会直接传递对象本身
 
 
 
 
参考资料:

以上是关于JVM 堆和栈的区别的主要内容,如果未能解决你的问题,请参考以下文章

JVM中堆和栈的区别

jdk1.8的JVM内存划分模型,堆和栈的区别

java中堆和栈的区别!!!!

JVM中堆和栈的区别

JVM堆和栈的区别

JVM 堆和栈的区别