前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >什么是强类型、弱类型、动态类型、静态类型语言

什么是强类型、弱类型、动态类型、静态类型语言

作者头像
JavaEdge
发布于 2021-02-22 05:26:24
发布于 2021-02-22 05:26:24
7.4K00
代码可运行
举报
文章被收录于专栏:JavaEdgeJavaEdge
运行总次数:0
代码可运行

强类型语言

强制类型定义的语言,即一旦某一个变量被定义类型,如果不经强制转换,那么它永远就死该数据类型。

强类型语言包括:Java、.net、Python、C++等语言。其中Python是动态语言,是强类型定义语言,是类型安全的语言,Java是静态语言,是强类型定义语言,也是类型安全的语言。

强类型接口设计

  • 使用 feigh 设计强类型接口

弱类型语言

弱类型定义的语言,某一个变量被定义类型,该变量可以根据环境变化自动。弱类型语言包括:VB,PHP,JavaScript等语言。其中VBScript是动态语言,是一种类型不安全的原因。

举个栗子吧:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var A=5;
var B="5"
sumA=A+B;
sumB=A-B;

sumA=55,系统默认+字符连接符,将A转化为字符串类型;而sumB=0;系统认为-是算数运算符,从而将B转化为int类型,所以sum为5-5=0;

优缺点

强类型语言和弱类型原因其判断的根本是是否会隐形进行语言类型转变。 强类型原因在速度上可能略逊于弱类型语言,但是强类型定义语带来的严谨性又避免了不必要的错误。

动态类型语言

动态性语言是指在运行期间才去做数据类型检查的语言,也就是说动态类型语言编程时,永远不用给任何变量指定数据类型,该语言会在第一次赋值给变量时,在内部将数据类型记录下来。Python和Ruby就是一种典型的动态类型语言,其他的各种脚本语言如VBScript也多少属于动态类型语言。

静态类型语言

静态类型语言与动态类则刚好相反,它的数据类型在编译期间检查,也就是说在写程序时要声明所有变量的数据类型,C/C++是静态类型语言的典型代表,其他静态语言还有C#、Java等。

对于动态语言与静态语言的区分,其根本在于判断是在运行期间去做数据类型还是在编译期间检查。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/01/10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
编程语言傻傻分不清:弱类型、强类型、动态类型、静态类型
这篇文章综合介绍了四种分类,特别地,为了方便大家快速有效的学习,笔者尝试用思维导图的办法描述编程语言的区别。一般来讲,看第一个图就够了。但如果你想更深入地了解,也可以参考下面的文字表述。
陈满iOS
2018/09/10
9.7K1
编程语言傻傻分不清:弱类型、强类型、动态类型、静态类型
编译型语言、解释型语言、静态类型语言、动态类型语言、强类型语言、弱类型语言概念与区别
编译型语言和解释型语言 1、编译型语言 需通过编译器(compiler)将源代码编译成机器码,之后才能执行的语言。一般需经过编译(compile)、链接(linker)这两个步骤。编译是把源代码编译成机器码,链接是把各个模块的机器码和依赖库串连起来生成可执行文件。 优点:编译器一般会有预编译的过程对代码进行优化。因为编译只做一次,运行时不需要编译,所以编译型语言的程序执行效率高。可以脱离语言环境独立运行。 缺点:编译之后如果需要修改就需要整个模块重新编译。编译的时候根据对应的运行环境生成机器码,不同的
Albert陈凯
2018/04/04
3.2K0
编程语言的弱类型、强类型、动态类型、静态类型的解释
例如在SQL语言中,当一个整数与一个浮点数相加时,系统会自动将整数转换为浮点数,以便进行运算并得到正确的结果;或者对int类型列 输入一个字符串类型,如果系统发现该字符串可以转化成int类型数字,则会将其自动转化成int类型数字
黎鹤舞
2024/03/19
7230
编程语言的弱类型、强类型、动态类型、静态类型的解释
你必须知道的编程语言分类
我们习惯把编程语言分类为机器语言(汇编语言)和高级语言(Fortran/Lisp/Cobol/Basic/C/Pascal /C++/Java/Perl/Python),选择使用高级语言编程而不是机器语言相信大家都能说出一两个理由(比汇编语言更容易和更清晰的表达性、多平台的可移植性,但需要一个专用的编译器或者是解释器)。
呱牛笔记
2023/05/02
7700
你必须知道的编程语言分类
通俗的方式理解动态类型,静态类型;强类型,弱类型
引言 今天和一个朋友讨论 C++ 是强类型还是弱类型的时候,他告诉我 C++ 是强类型的,他和我说因为 C++ 在写的时候需要 int,float 等等关键字去定义变量,因此 C++ 是强类型的,我告诉他 C++ 是弱类型的他竟然还嘲笑我不懂基础。 我又尝试去问了另外一个同学 Python 是强类型还是弱类型的时候,得到的竟然是弱类型,就因为定义变量没有 int,float! 然后我想找一些网上的资料试图告诉他们他们是错的(我是对的),结果发现网上的资料大多为了严谨结果把简单的问题(其实并不简单)说的很
桃翁
2018/06/27
2.3K0
[oeasy]python075_什么是_动态类型_静态类型_强类型_弱类型_编译_运行
age = 1 print(age, type(age)) age = "1" print(age, type(age))
oeasy
2025/03/18
781
[oeasy]python075_什么是_动态类型_静态类型_强类型_弱类型_编译_运行
弱类型、强类型、动态类型、静态类型语言的区别是什么
语言设计时,可以定义一组forbidden behaviors. 它必须包括所有untrapped errors, 但可能包含trapped errors.
用户8442333
2021/12/01
1.5K0
论编程界的日经问题:到底如何区分静态类型和动态类型、强类型和弱类型?
博主在本文中探讨了编程界常见的问题,即如何区分静态类型和动态类型,强类型和弱类型。他指出,由于这些概念本身没有明确的定义,导致人们很难就此达成一致共识。然而,如果按照已有的共识来界定这些概念,就能得出一些明确的答案。文章提到了强类型语言和弱类型语言的区别,以及静态类型语言和动态类型语言的区别。在强类型和弱类型的定义中,强类型语言常常会直接出错或编译失败,而弱类型语言会进行隐式转换或产生意料之外的结果。根据这个定义,Python被归类为强类型语言。静态类型语言在编译期确定变量类型,而动态类型语言在运行时确定。根据这个区别,C, C++, C#, Java等被视为静态类型语言,而Python, JavaScript, TypeScript, PHP等被视为动态类型语言。最后,博主表示这种讨论对工程开发的实际意义并不大。
HikariLan贺兰星辰
2023/10/18
4490
Python学到什么程度可以面试工作(解答)
逛知乎,看到帖子Python学到什么程度可以面试工作?,在桃花岛主的回答中讲到2019年最新的Python面试题,同时还有旭东大佬已做了大部分的解答。
python学习教程
2020/02/13
6530
Python学到什么程度可以面试工作(解答)
Python是一门什么语言
编程语言主要从以下几个角度为进行分类,编译型和解释型、静态语言和动态语言、强类型定义语言和弱类型定义语言,每个分类代表什么意思呢,下面我们一起看一下。
后场技术
2020/09/03
7470
Python是一门什么语言
python学习笔记(python发展介
·金融:量化交易,金融分析等,作为动态语言的python,语言结构清晰简单,库丰富,成熟稳定,科学计算和统计分析都很牛
py3study
2020/01/15
6490
Go是一门什么样的语言?
  首先Go语言诞生于2007年由谷歌公司研发,2009年开源,2012年推出1.0版本,Go是一种语言层面支持并发(Go最大的特色、天生支持并发)、内置runtime,支持垃圾回收(GC)、静态强类型,快速编译的语言(编译型语言)。
追逐时光者
2021/08/05
1.1K0
python3--python的出生与应用
python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆(中文名字:龟叔)为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。
py3study
2018/08/02
6270
JS进阶系列01-JS的弱类型和动态类型
首先,我们要弄清楚编程语言的两组划分,即弱类型和强类型,动态类型和静态类型。下面有一幅图,非常详细地说明了它们各自的定义和区别。
love丁酥酥
2018/08/27
2.3K0
JS进阶系列01-JS的弱类型和动态类型
Python之路--Python初识
python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆(中文名字:龟叔)为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。
py3study
2020/01/19
2K0
Python到底是强类型语言,还是弱类型语言?
我在上一篇文章中分析了 为什么 Python 没有 void 类型 的话题,在文章发布后,有读者跟我讨论起了另一个关于类型的问题,但是,我们很快就出现了重大分歧。
Python猫
2020/09/03
3.2K0
Python到底是强类型语言,还是弱类型语言?
谁告诉的你们Python是强类型语言!站出来,保证不打你!
最近有些学员问我,Python到底是强类型语言,还是弱类型语言。我就直接脱口而出:Python是弱类型语言。没想到有一些学员给我了一些文章,有中文的,有英文的,都说Python是强类型语言。我就很好奇,特意仔细研究了这些文章,例如,下面就是一篇老外写的文章:
蒙娜丽宁
2020/08/31
1.1K0
谁告诉的你们Python是强类型语言!站出来,保证不打你!
python介绍
python是一门优秀的综合语言,python的宗旨是简明,优雅,强大,在人工智能,云计算,金融分析,大数据开发,web开发,自动化运维,测试等方向应用广泛,已是全球第4大最流行的语言
py3study
2018/08/02
8060
函数式编程与面向对象编程[2]: 静态类型语言的表达力 静态类型语言与动态类型语言函数式编程与面向对象编程[2]: 静态类型语言的表达力 静态类型语言与动态类型语言
像Java或者C#这样强类型的准静态语言在实现复杂的业务逻辑、开发大型商业系统、以及那些生命周期很长的应用中也有着非常强的优势
一个会写诗的程序员
2018/08/20
1.4K0
函数式编程与面向对象编程[2]: 静态类型语言的表达力 静态类型语言与动态类型语言函数式编程与面向对象编程[2]: 静态类型语言的表达力 静态类型语言与动态类型语言
编程语言常识
选择哪种类型系统通常取决于项目的需求、开发者的偏好以及编程语言的特性。不同的语言类型系统适用于不同的情境,没有一种绝对更好的选择。
追逐时光者
2023/09/04
2060
编程语言常识
推荐阅读
相关推荐
编程语言傻傻分不清:弱类型、强类型、动态类型、静态类型
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文