首页 > 其他分享 >堆、栈、调用栈、解释型、编译型、静态类型、动态类型、弱引用、强引用 概念理解

堆、栈、调用栈、解释型、编译型、静态类型、动态类型、弱引用、强引用 概念理解

时间:2023-01-09 10:36:20浏览次数:50  
标签:调用 变量 编译 引用 类型 动态

1、堆——存储引用数据类型;
2、栈——存储基本数据类型和引用数据类型的地址;

3、调用栈
每次函数调用会将该函数执行上下文进行入栈操作;多个函数之间的调用,通过函数调用栈可以清晰的看出其调用顺序,环境内变量的值;方便开发和定位

4、解释型、编译型
个人理解:
解释型——基于不同系统(Mac,windows,linux等)上方均存在一个解释器,解释性语言可直接运行在一个解释器中,只要系统上存在解释器,解释性语言即可实现跨平台,无需编译即刻运行
编译型——代码首先需编译成二进制文件,该二进制文件运行在某一系统上,如CPU指令发生变化,需要重新修改源码,重新编译;编译型语言默认不会在运行阶段出现语法错误,因为编译阶段已经去除语法错误

5、静态类型、动态类型
静态类型–一个变量声明时它的类型就是明确的。声明过后,它的类型就不允许再修改。
动态类型–运行阶段才能够明确变量的类型,而且变量的类型随时可以改变。其实,动态类型语言中的变量没有类型,变量当中存放的值是有类型的。JavaScript就是一门动态类型的语言。

6、弱引用、强引用
在说这个之前,我们得首先了解js的垃圾回收机制
1)引用计数
2)标记清除
强引用——变量引用到了对象
弱引用——对象作为weakMap,weakSet,weakRef的键值引用,可实现弱引用

强引用的对象不会被垃圾回收机制回收,但是弱引用对象是会被回收的。
强引用可能导致内存无法释放,造成内存泄漏;而弱引用不存在这个问题。

标签:调用,变量,编译,引用,类型,动态
From: https://www.cnblogs.com/MrZhous/p/17024865.html

相关文章

  • 数据类型
    最新的ECMAScript标准定义了8种数据类型:七种基本数据类型:1、布尔值(Boolean),有2个值分别是:true和false.2、null,一个表明null值的特殊关键字。JavaScript是大小......
  • 读编程与类型系统笔记02_基本类型
    1. 空类型1.1. uninhabitabletype1.1.1. 声明从不返回的函数1.2. 不能有任何值的类型,其可取值的集合是一个空集合1.3. 函数不返回的原因1.3.1. 函数在所有代......
  • TypeScript支持的数据类型(一)
    说明TypeScript做为JavaScript的超集,对于JavaScript中的类型完全支持,除了JavaScript中的类型之外,TS自身也提供了一些数据类型。在TS中,数据类型的整体结构如下:最顶级......
  • 2.1JS中的数据类型
    ​  1数值型:number整数和浮点数统称为数值。例如85或3.1415926等。2字符串型:String由0个,1个或多个字符组成的序列。在JavaScript中,用双引号或单引号括起来表示,如"......
  • 2.1JS中的数据类型
    ​  1数值型:number整数和浮点数统称为数值。例如85或3.1415926等。2字符串型:String由0个,1个或多个字符组成的序列。在JavaScript中,用双引号或单引号括起来表示,如"......
  • C语言中各数据类型所占用的字节数
      sizeof(T)返回存储一个类型T的对象所需要的字节数。定义一个变量时,电脑在内存中开辟空间。1byte(字节)=8bit(比特位)1kb=1024byte(字节)1mb=1024kb1gb=1024mb我们知道......
  • 读编程与类型系统笔记01_类型简介
    1. 引子1.1. 1999年发射的火星气候探测者号(MarsClimateOrbiter)进入火星轨道的过程中失去联络1.2. 原因1.2.1. Lockheed(洛克希德·马丁公司)开发的一个组件使用磅力......
  • python中的容器类型(2)
    Python中的容器类型(2) python中的容器类型包含字符串(str),元组(tuple),列表(list),集合(set)等类型。接下来是对集合(set),元组(tuple),字典的介绍。1.集合  集......
  • 数据类型及扩展
    浮点数扩展floatf=0.1f;//输出0.1doubled=1.0/10;//输出0.1System.out.println(f==d);//输出falsefloatd1=12345678;doubled2=d1+1;System.out.pr......
  • 【Python】输入并查看数据类型
    print(type(1))----返回intprint(type('您好'))----返回str字符串print(type(0>1))------返回bool布尔类型print(type(3.145))------返回float浮点类型prin......