java栈stack和堆heap的工作原理,用途及区别?举例说明

java堆和栈的区别【新手可忽略不影响继续学习】 

Java中内存分成两种:一种是栈stack,一种是堆heap。

函数中的一些基本类型的变量(int, float)和对象的引用变量(reference)都在函数的栈中,如int a = 5,有个地方先存5,之后再让a指向那个地方。w=new Window(),是w指向Window的首地址。马克-to-win,存取速度快,稍逊于寄存器, 比堆快,

函数执行完后,Java会自动释放掉为函数里变量开辟的栈内存空间,该内存空间可以立即被另作他用。

堆heap内存用来存放由new创建的对象和数组。堆内存,负责运行时(runtime, 执行生成的class文件时)数据,由JVM的自动管理。缺点是,存取速度较慢。 

栈中的引用变量指向堆中的对象或数组。

更多内容请见原文,原文转载自:https://blog.csdn.net/qq_44639795/article/details/103124765

posted @ 2021-01-14 15:15  师徒行者  阅读(90)  评论(0编辑  收藏  举报