编程语言的各种类型详解 - 程序员小知识1 - O寻_觅O

-xunmi- 2021-08-16 原文


编程语言的各种类型详解 – 程序员小知识1


编程语言的分类

  1. 强类型定义语言
  2. 弱类型定义语言
  3. 动态类型语言
  4. 静态类型语言
  5. 编译型语言
  6. 解释型语言
  7. 脚本语言
分类 定义 举例
强类型定义语言 强类型定义语言又称强类型语言,强类型语言要求变量严格符合定义,所有变量都必须先定义后使用。一旦一个变量被定义为某一种数据类型后,如果不经强制转换则永远都是这个数据类型。 Java,.NET,Python,C,Go,Kotlin,Switf。
弱类型定义语言 与强类型相反,弱类型的数据类型可以被忽略,一个变量可以赋不同数据类型的值。 JavaScript,VB,VBScript。

有部分人对Python有所误解,误解Python为弱类型语言
在这里插入图片描述
我们在Python中使用字符型和整数型相加后输入,程序报错unsupported operand type(s) for +: ‘int’ and \’str(+:“int”和“str”的操作数类型不受支持)
从中很明显能感觉到Python对类型的严格定义,所有Python并不是一个弱类型语言。在弱类型中是允许字符和整数型相加
在这里插入图片描述
从上图可以看出浏览器中的控制台内置的JavaScript就是一门弱类型语言。
强类型语言在速度上可能略逊色于弱类型语言,但强类型语言带来的严谨性能够有效的避免许多错误。

分类 定义 举例
动态类型语言 动态类型的语言会在运行期间再去做数据类型检查,动态类型语言的好处就是不用给变量指定任何数据类型,该类型的语言会的变量会在第一次被赋值时在内部自动将数据类型记录。 JavaScript,Ruby,VBScript,Python,Swift
静态类型语言 编译语言在编写代码时就检查变量的数据类型,使用静态类型语言必须要先声明变量的数据类型才能使用变量。 C/C++,C#,Java,Go,Kotlin

总的来说动态语言更好用,不仅能减少代码量,让代码看上更加简洁,还更接近于日常语言。想到什么用什么,不用事先声明。
“这门语言是不是动态语言”与“这门语言是否类型安全”之间是完全没有联系的!类型安全代码指访问被授权可以访问的内存位置。例如,类型安全代码不能从其他对象的私有字段读取值。它只从定义完善的允许方式访问类型才能读取。

分类 定义 举例
编译型语言 编译型语言有编译器,编译型语言会在运行之前将所有代码都转换成二进制机器码,相当于全文翻译 C/C++,C#,Swiper,Go,Kotlin
解释型语言 解释型语言有解释器,解释型语言会在代码运行时一边解释一边运行,相当于实时翻译 Python,Java,JavaScript,VBScript

对于运行效率来说,编译型是高于解释型语言的,因为编译型语言在执行时不用经过解释,可以直接运行。但是对于多平台的兼容性,编译型语言就不如解释型语言的兼容性强。所以编译型语言常用于大型项目,或者偏底层项目,而解释型语言则较多用于服务器等需要兼容性强的地方。

分类 定义 举例
脚本语言 脚本语言是一个很另类的分类,很多语言即是脚本语言,同时又是编程语言,脚本语言要满足可以以文字形式存在,类似于一种命令,常见的脚本语言,比如Python,JavaScript,VBScript等都是动态编译型语言 Python,JavaScript,VBScript,Ruby
发表于
2019-10-11 17:04 
O寻_觅O 
阅读(174
评论(0
编辑 
收藏 
举报

 

版权声明:本文为-xunmi-原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/-xunmi-/p/12227436.html

编程语言的各种类型详解 - 程序员小知识1 - O寻_觅O的更多相关文章

  1. APP内的H5页面测试方法, 移动端的浏览器(例如UC浏览器)测试方法 – Charles-MQ

    APP内的H5页面测试方法, 移动端的浏览器(例如UC浏览器)测试方法 前言: 用appium做UI自动化,测 […]...

  2. MySQL设置外键报错 #1452 – Cannot add or update a child row: a foreign key constraint fails 解决方法

      MySQL数据库,当我尝试在A表中设置B表的主键为外键时,报出错误:#1452 – Canno […]...

  3. 加密和隐藏 – 一五一十

    加密和隐藏 加密 http://tieba.baidu.com/p/1883066853?pid=245707 […]...

  4. js获取当前时间,日期格式为年月日 – luziluck

    js获取当前时间,日期格式为年月日 //获取当前时间 var date = new Date(); var y […]...

  5. 医疗行业的数据采集 Lis系统,实验室(检验科)信息系统 – 有证程序员

    医疗行业的数据采集 Lis系统,实验室(检验科)信息系统 1.今天找资料时,突然翻到N年前在医疗行业的资料,不 […]...

  6. MP3分割合并器—-MP3 Splitter & Joiner 4.2汉化 绿色 破解版 注册码 – scgw

    MP3分割合并器—-MP3 Splitter & Joiner 4.2汉化 绿色 破解版 […]...

  7. Xamarin 学习笔记 – 配置环境(Windows & iOS)

    本文翻译自CodeProject文章:https://www.codeproject.com/Articles […]...

  8. Linux SSH下安装Java并设置环境 – 王守昌

    Linux SSH下安装Java并设置环境 我是用Xshell进行远程连接阿里云服务器的,所以jdk不好下载。 […]...

随机推荐

  1. 扩增子分析解读2提取barcode 质控及样品拆分 切除扩增引物

    本节课程,需要完成扩增子分析解读1质控 实验设计 双端序列合并 先看一下扩增子分析的整体流程,从下向上逐层分析 […]...

  2. Java&Tomcat环境变量配置

    版本匹配: Java PATH环境变量。作用是指定命令搜索路径,在shell下面执行命令时,它会到PATH变量 […]...

  3. 对接第三方支付接口-类似文件锁的编程小技巧

      在这次对接支付接口的时候,有如下场景:用户还款的时候,APP端只要请求了支付接口后,正常情况下,支付接口会 […]...

  4. 谷歌地球到底有多厉害?附查看高清卫星影像方法

      国产高配版谷歌地球,图新地球(点击下载)看高清卫星影像       苏州中心20级高清正射影像   苏州博 […]...

  5. javascript 基本概念

    一、在HTML中使用javascript 1.直接是用<script></script> […]...

  6. 易语言中锐浪报表绿色发布指南(免COM组件DLL注册)

    易语言中锐浪报表绿色发布指南(免COM组件DLL注册) 第一步 打开易语言开发环境(注要求易语言版本 v5.5 […]...

  7. 百度网盘创建无提取码链接

        众所周知,百度网盘把公开分享功能关闭很久了,分享出来的链接只能带提取码,这个方法可以分享无提取码的链接 […]...

  8. controller does not exist\”phpcms 控制器不存在的解决方法

    控制器不存在解决方法。 排查方法: 1.检查链接 2.检查模块下的 文件名称是否和链接一致 3.检查文件中类的 […]...

展开目录

目录导航