【测试开发学习历程】计算机编程语言

前言:

学习完数据库,我们便要进入到编程语言的内容当中了。

这里先对编程语言写出大致的分类,

在这之后,我们会以Python为重点,

开始测试开发为重点的编程语言学习。

目录

1 计算机编程语言的发展

2 语言的分类

2.1 按照程序的执行方式

编译型

解释型

编译型与解释型的优劣势对比:

2.2 按照程序的设计思想来分

面向对象


1 计算机编程语言的发展

机器语言:计算机只能识别二进制(计算机内部的元件通过高低电压来表示信息,高电压是1,低电压是0),早期编程用二进制实现,比如:10100010;

面试问题:什么是二进制?

二进制逢二进一

  •  汇编语言:通过指令集来表示具体的操作,不同硬件的指令集不同,程序可移植性差,比如mov ax bx;
  • 高级语言:跟人的自然语言接近,易于理解,比如C/C++/Java/Python等。

2 语言的分类

2.1 按照程序的执行方式

  • 编译型

    • 编译型语言以C/C++为代表;

    • 编译型语言的程序在运行前需要先编译成机器语言,机器语言能够被计算机识别,因此不需要解释就直接运行;C语言的编译器有GCC,C++的编译器有G++

  • 解释型

    • 解释型语言以Python/Ruby/Perl为代表

    • 解释型语言的程序不需要编译,程序在运行时才翻译成机器语言,每执行一次都要翻译一次;

      Java语言较为特殊,先把.java文件编译成.class字节码文件(十六进制),然后再由JVM解释运行,所以Java既是编译型也是解释型;

  • 编译型与解释型的优劣势对比:

    1. 编译型语言的优势在于运行效率更高,对系统的资源要求更低,一般来说编译型语言用于实现后台的复杂逻辑,比如MySQL数据库、Nginx服务器、CPython等都是用C语言编写的;

    2. 解释型语言的优势在于跨平台性更好(相对而言编译型的可移植性差,C语言程序进行移植后,要重新编译),经常用于脚本的开发。

2.2 按照程序的设计思想来分

  • 面向过程(Procedure Oriented Programming,简称POP)

    • 面向过程是一种以事件为中心的编程思想,编程的时候把解决问题的步骤分析出来,然后用函数把这些步骤实现,在一步一步的具体步骤中再按顺序调用函数。

    • 举个例子,下五子棋,面向过程的设计思路是首先分析解决这个问题的步骤: (1)开始游戏(2)黑子先走(3)绘制画面(4)判断输赢(5)轮到白子(6)绘制画面(7)判断输赢(8)返回步骤2,重复步骤2到7 (9)输出最后结果。

    • 代表语言:C语言

    • 应用场景:

      • 适合编写系统软件:编译器,JVM,驱动,操作系统内核

      • 嵌入式设备的编程

  • 面向对象

    • (Object Oriented Programming,简称OOP)

    • 面向对象是一种以对象为中心的编程思想,把要解决的问题分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。(简单说面向对象是完成一件事情,只需要找到某个或某些对象,一一组装完成即可)

    • 在下五子棋的例子中,用面向对象的方法来解决的话,首先将整个五子棋游戏分为三个对象: (1)黑白双方,这两方的行为是一样的 (2)棋盘系统,负责绘制画面 (3)规则系统,负责判定犯规、输赢等 然后赋予每个对象一些属性和行为:第一类对象(黑白双方)负责接受用户输入,并告知第二类对象(棋盘系统)棋子布局的变化,棋盘系统接收到了棋子的变化,并负责在屏幕上面显示出这种变化,同时利用第三类对象(规则系统)来对棋局进行判定。

    • 代表语言:Java ,C++,C#,PHP,JavaScript,Python

      • Java

        • 面向对象的语言

        • 跨平台

      • web开发

        • Android应用开发

        • 服务端应用接口开发

        • 微信公众号开发

      • C++

        • 主要用于底层代码的开发(比如一些大型的游戏,比如lol

        • 一个不完全面向对象的编程语言,也可以面向过程

        • 之前用作MFC界面的开发

        • 现在更多用于数据计算

        • 数据仓库的开发

      • C#

        • 读音:Csharp

        • 微软公司的面向对象的语法

        • 运行在.NET framework

        • 主要开发Windows桌面应用,Windows store 应用

        • 配合asp.net,开发基于Windows Server服务器的web应用

      • PHP

        • 脚本语言,慢慢走向标准化面向对象语言

        • 主要开发动态网页

        • web开发

      • JavaScript

        • Java没有关系

        • 脚本语言

        • 主要用作网页的交互以及动效

      • Python

        • 脚本语言

        • 语法很简单,优美

        • 可以做web开发

        • 数据计算开发

        • 非常适合做自动化测试

  • 面向过程语言和面向对象语言优缺点对比

    • 面向过程:

      • 优点:性能比面向对象高,因为面向对象的类调用时需要实例化;比如单片机、嵌入式开发、linux/unix等一般采用面向过程开发,性能是最重要的因素。

      • 缺点:没有面向对象易维护、易复用、易扩展。

    • 面向对象:

      • 优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护,适合开发复杂、庞大的大型系统。

      • 缺点:性能比面向过程低。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/769249.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JAVA 学习记录(1)

1.函数 (1)String.join(";", messages); ";" 表示分隔符,输出的结果: message; (2) Double.parseDouble(valueString); 它返回由字符串参数表示的双精度值。 (3) Double.valueOf((Float) value; float 类型的数值转化为double类…

计数组合【2024蓝桥杯0基础】-学习笔记

文章目录 计数原理排列数组合数组合数性质例题分析代码复现 例题2状态分析代码复现 常见的排列组合问题圆排列代码复现 第二类斯特林数 感悟 计数原理 排列数 组合数 组合数性质 例题分析 代码复现 def ksm(a, b, c):ans 1%cwhile b ! 0:if b % 2 0:ans ans * a %ca a * …

java面向对象编程基础

对象: java程序中的对象: 本质上是一种特殊的数据结构 对象是由类new出来的,有了类就可以创建对象 对象在计算机的执行原理: student s1new student();每次new student(),就是在堆内存中开辟一块内存区域代表一个学生对象s1变…

K3 计划订单投放时,将“关联物料”传递到采购和生产订单的“组部件”字段

参考K/3 WISE 中MRP计算投放过程中 销售订单自定义字段怎么携带到任务单这篇文章,进行优化。 在表ICMrpDestBills下增加触发器,代码如下 CREATE TRIGGER [dbo].[ICMrpDestBills_update]ON [dbo].[ICMrpDestBills]AFTER INSERT,UPDATE AS BEGINSET NO…

查询正在运行的Top SQL的脚本(建议收藏)

这篇文章提供了一些现成的SQL脚本,通过查询V$SQLSTATS视图找到正在运行的TOP SQL,用于后续的优化。建议大家收藏,需要查询TOP SQL时直接复制和粘贴即可。 之前的一篇文章解释了为什么要使用V$SQLSTATS视图。 当数据库表现出各种不同的性能问…

javaSwing推箱子游戏

一、简介 策略性游戏可以锻炼人的思维能力还能缓解人的压力,使人们暂时忘却生活当中的烦恼,增强人们的逻辑思维能力,游戏的艺术美也吸引着越来越多的玩家和厂商,寓教于乐,在放松人们心情的同时还可以活跃双手。在人类…

Docker数据卷与网络模式

华子目录 数据卷注意数据卷操作查看镜像,容器,数据卷所占空间 Docker的网络模式查看指定容器的网络模式bridge模式none模式host模式container模式 数据卷 数据卷是一个可供一个或多个容器使用的特殊目录,它绕过UFS,可以提供很多有…

Open CASCADE学习|显示文本

目录 1、修改代码 Viewer.h: Viewer.cpp: 2、显示文本 OpenCasCade 你好啊 霜吹花落 1、修改代码 在文章《Open CASCADE学习|显示模型》基础上,增加部分代码,实现对文本显示的支持,具体如下: Viewer…

从数据页的角度看 B+ 树

资料来源 : 小林coding 小林官方网站 : 小林coding (xiaolincoding.com) 大家背八股文的时候,都知道 MySQL 里 InnoDB 存储引擎是采用 B 树来组织数据的。 这点没错,但是大家知道 B 树里的节点里存放的是什么呢?查询数据的过程又是怎样的&am…

填补市场空白,Apache TsFile 如何重新定义时序数据管理

欢迎全球开发者参与到 Apache TsFile 项目中。 刚刚过去的 2023 年,国产开源技术再次获得国际认可。 2023 年 11 月 15 日,经全球最大的开源软件基金会 ASF 董事会投票决议,时序数据文件格式 TsFile 正式通过,直接晋升为 Apache T…

【C++从练气到飞升】05---运算符重载

🎈个人主页:库库的里昂 ✨收录专栏:C从练气到飞升 🎉鸟欲高飞先振翅,人求上进先读书。 目录 ⛳️推荐 一、运算符重载的引用 二、运算符重载 三、赋值运算符重载 1 .赋值运算符重载格式: 2 .赋值运算符只能重载成…

【智能算法】飞蛾扑火算法(MFO)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献 1.背景 2015年,Mirjalili等人受到飞蛾受到火焰吸引行为启发,提出了飞蛾算法(Moth-Flame Optimization,MFO)。 2.算法原理 2.1算法思想 MFO基于自然界中飞蛾寻找光源的…

Qt读取本地系统时间的几种方式

一,使用Windows API函数GetLocalTime(精确到毫秒) typedef struct _SYSTEMTIME //SYSTEMTIME结构体定义 {   WORD wYear;//年   WORD wMonth;//月   WORD wDayOfWeek;//星期,0为星期日,1为星期一&#xff0c…

PCL ICP配准高阶用法——统计每次迭代的配准误差并可视化

目录 一、概述二、代码实现三、可视化代码四、结果展示本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。 一、概述 在进行论文写作时,需要做对比实验,来分析改进算法的性能,期间用到了迭代误差分布统计的比较分析,为直…

Claude 3似乎比GPT-4性能更高,更多的人在尝试使用它

Anthropic 是 OpenAI 的主要竞争对手之一,于 3 月初推出了其最新的大型语言模型 (LLM),称为 Claude 3。事实证明,Claude 3 的性能优于 OpenAI 的旗舰产品 GPT-4,这让 AI 社区感到惊讶,这标志着 GPT-4 的第一个实例被超…

Java只有中国人在搞了吗?

还是看你将来想干啥。想干应用架构,与Java狗谈笑风生,沆瀣一气,你就好好写Java,学DDD,看Clean Architecture。你想成为炼丹玄学工程师,年入百万,就选python,专精各种paper。你不在意…

对话李喆:Martech在中国需要转化成以客户需求为驱动的模式

关于SaaS模式在中国的发展,网上出现多种声音。Marteker近期采访了一些行业专家,围绕SaaS模式以及Martech在中国的发展提出独特观点。赛诺贝斯副总裁李喆认为,SaaS可以分为场景化的SaaS、一体化的SaaS和功能化的SaaS,三者都有一定规…

【vue3学习之路(一)】

文章目录 前言一、vue3项目创建1.1环境准备1.1.1 基于 vue-cli 创建(脚手架创建)1.1.2 基于 vite 创建(推荐) 二、熟悉流程总结 前言 参考视频:https://www.bilibili.com/video/BV1Za4y1r7KE?p10&spm_id_frompag…

辅助功能IOU(交并比)_3.2

实现两个目标框的交并比候选框在多目标跟踪中的表达方式及相应转换方法 IOU(Intersection over Union),“交并比”,是计算机视觉和图像处理中常用的一个评价指标,尤其在目标检测任务中用来衡量模型预测的目标框与真实目标框的重合程度。 具体…

(附源码)基于Spring Boot + Vue的招聘平台设计与实现

前言 💗博主介绍:✌专注于Java、小程序技术领域和毕业项目实战✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 2024年Java精品实战案例《100套》 🍅文末获取源码联系🍅 &#x1f31…