• 对c++ Java go python js 的一些总结


    编译执行和解释执行

    1.编译执行:将源代码一次性转换为机器码文件,然后直接运行机器码文件。

    2.解释执行:将源代码一行一行的解释执行。

    根本区别是运行时:

    解释型需要一边解释,一边运行。

    而编译型在运行之前就已经将程序编译成机器码了。所以编译运行比解释运行

    面向过程和面向对象

    1、面向过程是一种以过程为中心的编程思想,它首先分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,在使用时依次调用即可。常见的面向过程的编程语言有 C语言

    2、面向对象是以对象为中心的编程思想,按人们认识客观世界的思维方式,采用基于对象的概念建立模型,以此模拟客观世界分析、设计、实现软件的一种编程思想,常见的面向对象的编程语言有 java,c++语言。

    各自特点:
    面向过程:
    面向过程性能比面向对象高。 因为类和对象的创建、调用、销毁都需要性能开销。

    面向对象:
    面向对象易维护、易复用、易扩展。 因为面向对象有封装、继承、多态等特点,所以可以设计出低耦合的系统,使系统更加灵活易于维护。

    函数式编程与命令式编程(面向对象和面向过程)最大的不同其实在于:

    函数式编程关心数据的映射,命令式编程关心解决问题的步骤

    动静态和强弱类型

    静态类型和动态类型说的是在编译期还是运行期去检查变量类型的问题
    强类型和弱类型说的是变量类型是否固定,是否能改变的问题

    静态语言和动态语言

    定义
    静态语言:在编译期间就确定了变量的类型,C/C++,C#、JAVA
    动态语言:在运行期间才确定变量的类型。Python、JavaScript

    对比
    静态语言的优势:
    1、编译时检查出错误的类型匹配,以提高程序的安全性;
    2、可以根据对象类型优化相应运算,以提高目标代码的质量;
    3、减少运行时刻的开销。
    所以适合实现复杂的业务逻辑、开发大型商业系统

    动态语言的优势:
    更加的灵活

    强类型和弱类型

    强类型是指变量类型一旦定义就不能再改变(当然可以做强制类型转换,但此时转换的是字面值,不是变量的类型)
    弱类型则允许改变变量类型

    强类型的速度可能略逊于弱类型语言,但是强类型定义语带来的严谨性又避免了不必要的错误。

    举例:
    java和c++都是强类型:

    在这里插入图片描述
    在这里插入图片描述

    js是弱类型:

    var A=5;
    A="dsfsv"//可以的
    var B=true
    A=B //可以的
    
    • 1
    • 2
    • 3
    • 4

    对c++ Java go python js 的一些总结

    C++:
    静态强类型语言,编译执行,速度很快。兼容c语言,所以支持面向对象和面向过程。
    允许程序员手动垃圾回收

    java:
    静态强类型语言
    面向对象
    先由java编译器将源程序编译成机器无关的字节码文件,所以可以一次编译,到处运行,与os无关
    然后由jvm通过解释+编译的方式将字节码文件编译成机器码
    自动垃圾回收

    Go:

    天然支持高并发,是go语言最大的亮点
    支持goroutine协程,可实现大并发处理,高效利用多核。
    利用管道通信机制,形成 Go 语言特有的管道 channel 通过管道 channel , 可以实现不同的 goroute 之间的相互通信。

    和c++一样编译执行,编译速度很快,内存开销小。

    自动垃圾回收,采用标记-清除算法
    没有像java那样使用虚拟机,编译器在编译代码的时候会插入相关的代码进源程序,去实现什么时候需要暂停,什么时候启动回收。

    没有类和继承的概念,所以严格来说不是面向对象的语言
    但是它又通过接口(interface)来实现多态性。支持面向对象的编程风格。
    因此可以说go是混合型的语言。

    静态强类型,但是Go 语言其实也有一些动态语言的特性(通过关键字 var)

    python:
    python是动态弱类型、面向对象的,解释执行(所以运行速度慢)、自动垃圾回收的脚本语言

    解释+编译:
    Python解释器由编译器和虚拟机构成,编译器将源代码编译成字节码,然后再通过Python虚拟机来逐行解释执行这些字节码。

    python解释器有很多种:

    CPython:C语言开发,相较JVM没有JIT及时编译,使用最广,官方解释器

    IPython:基于CPython之上的交互式解释器

    PyPy:采用JIT及时编译技术,对python代码进行动态编译,追求执行速度

    Jython:运行在Java平台上的解释器,可以直接编译成Java字节码由JVM运行。

    JavaScript
    解释执行的脚本语言,动态的弱类型语言。
    跨平台性脚本语言。
    JavaScript依赖于浏览器本身,与操作环境无关,只要有支持JavaScript的浏览器,就可正确执行

  • 相关阅读:
    openwrt (一):特殊的WiFi驱动移植方法
    leetCode 2578. 最小和分割 + 排序 + 贪心 + 奇偶分组(构造最优解)
    贪心算法——赶作业(C++)
    [go]HTTP之RestAPI请求
    Linux应用开发基础知识——网络通信编程(九)
    阿里云产品试用系列-Serverless 应用引擎 SAE
    html+css实现全局固定位置悬浮的菜单
    Ubuntu镜像下载地址
    【强化学习论文合集】九.2018AAAI人工智能大会论文(AAAI2018)
    图书管理系统的设计与实现/ssm的图书管理网站
  • 原文地址:https://blog.csdn.net/qq_40337086/article/details/126815286