11、数据类型之间的区别(堆栈内存)
2024-02-27 11:10:34 0 举报
AI智能生成
在编程中,数据类型之间的区别主要体现在它们存储数据的方式和位置上。堆栈内存是计算机中用于存储数据的一种方式,其中堆和栈分别代表了不同的存储区域。 堆(Heap)是一种动态内存分配方式,用于在程序运行时根据需要动态分配内存。堆内存中的数据通常由程序员通过malloc()、new等函数进行分配,并在使用完毕后通过free()、delete等函数释放。堆内存中的数据没有固定的存储位置,可以分布在内存的任何位置。 栈(Stack)是一种静态内存分配方式,用于存储局部变量、函数参数、返回值等。栈内存在程序运行时自动进行分配和释放,无需程序员进行管理。栈内存中的数据通常具有固定的存储位置,遵循“后进先出”(LIFO)的原则。 因此,堆和栈是两种不同的内存管理方式,它们之间的区别主要体现在分配方式、存储位置和释放方式上。根据实际需求和性能考虑,程序员需要在编程时合理选择和使用堆栈内存。
作者其他创作
大纲/内容
webkit底层运行机制
底层渲染过程
1、在浏览器中打开页面,浏览器引擎会渲染相关的代码(包含JS代码),换句话说,会把代码自上而下执行
2、浏览器想要执行代码,会提供一个供代码执行的环境,我们把这个环境叫做ECStack(Execution Context Stack 执行环境栈)=> 栈内存 Stack
3、最开始执行的是全局代码,所以会形成一个EC(GLOBAL)全局上下文,在栈内存中执行全局的代码
4、在全局的执行上下文中有一个VO(GLOBAL)全局变量对象,可以把接下来定义的变量和对应的值储存到这里面
内存的概念
Stack 栈内存
打个比方:内存条:4G/8G......
栈内存作用
供代码自上而下执行
Heap 堆内存
打个比方:硬盘:500GB/1TB......
所谓堆栈内存,其实就是在计算机内存中分配出来的一块空间,用来执行和储存代码的
基本数据类型(值类型)
值类型由于结构相对简单,直接把创建的值存储到“栈内存”中即可
栈内存的两个作用
1、供代码自上而下执行
2、存储基本类型值
let a = 12;
1、创建一个值(基本类型值直接存储在栈内存中即可)
2、创建一个变量a ,把其储存到VO(GLOBAL)中
3、让创建的变量a 和创建的值12 关联在一起 => =赋值的操作
这就是定义变量的三个步骤(明确顺序)
图例
引用数据类型(对象函数)
引用数据类型的结构相对复杂(一个综合体,包含很多值)
所以不能直接存储在栈内存中,需要单独开辟空间来存储,这个空间就是“堆内存”
引用数据类型值都存储在单独开辟的“堆内存”中!
堆内存只有一个作用
存储引用类型值
let n = {......}
1、创建值
开辟一个堆内存(Heap),每一个堆内存都有一个16进制的地址
把对象中的键值对分别存储到堆内存中
把堆内存的地址放在栈内存中,用来供变量的引用
2、创建一个变量
3、让变量和之前创建堆内存的地址进行关联
图例
0 条评论
下一页
为你推荐
查看更多