Java 03-基础 堆和栈(另,理解Java内存)

概述:

  栈区(STACK)堆区(HEAP)

  1、栈中主要存放一些基本类型的变量,且每一个基本数据类型有固定的大小(byte,short,int,long,float,double,boolean,char),和引用类型的内存地址

  2、堆中主要存放引用类型的数据

  3、栈的存取速度比堆快

  4、栈的数据可以共享

  5、栈的数据大小确定的,堆的数据大小可变的

 

  区别:栈区开辟一块固定大小的空间保存基本类型,堆区开辟一块可变的空间保存引用类型。

  引用类型的保存过程:例:String b = “aaa”,

  堆区开辟空间保存“aaa”,并且在栈区保存“aaa”的内存地址(例:地址为0x11),0x11记录在堆区保存的位置信息,实现对应关系。

  外部寻找“aaa”时,先寻找栈区“aaa”的内存地址,内存地址对应堆区的某一个位置(也就是“aaa”的位置)通过内存地址找到堆区的“aaa”。也就是说引用类型及用了栈区的空间也用了堆区的空间,而基本数据类型只需要在栈区存取就行

 

深入理解:

 

 

 

  

posted @ 2022-01-05 18:03  小小生Sir  阅读(14)  评论(0编辑  收藏  举报