华人澳洲中文论坛

热图推荐

    C言语和Java的区分

    [复制链接]

    2022-8-13 06:48:28 22 0

    有得多初学编程的同窗,在选择编程言语上对比困惑,本文重点胪陈C言语和Java言语的区分。



    发源不同
    C言语的前身是B言语,B言语由美国 AT&T 贝尔试验室研发,使用该言语编写的顺序能够在过后小型的计算机上运转,贝尔试验室的钻研员丹尼斯·里奇于1969年~1973年在B言语的根底上又开发了C言语,起初C言语逐步取代了B言语,成为世界上通用的初级言语之一。
    1991年,在SUN公司的詹姆斯高斯林和一群技术人员创立了一个名为Oak的名目,旨在开发运转于虚构机的编程言语。跟着互联网技术的开展,在1994年詹姆斯高斯林等人抉择将该技术运用于互联网,1995年将Okay更名为Java。
    运用不同
    C 言语是一门工程实用性极强的言语,提供了对操作零碎和内存的精准管制,编译后的顺序运转效力比拟Java、Python等言语要高效的多,对理工迷信生来讲它也是一门必修课。C言语多用于计算机底层零碎编程,计算机操作零碎个别都由C言语编写而成,如Windows操作零碎、Linux操作零碎等。
    Java言语多用于企业运用开发,特别是互联网运用,由于Java易学、平安性,可移植、跨平台等特征,大少数互联网企业及传统企业都采取了Java言语开发零碎,特别是在电信、金融、保险、证券、银行、交通、动力、航天等这些行业,少数用Java开发零碎。
    开发办法不同
    C言语是一种构造化言语,采取的是构造化开发办法。在构造化开发办法中。首先要考察并辨认零碎需要,而后使用数据流图建设功用需要模型,再采取自顶向下的顺序设计,把繁杂的顺序合成为多个顺序模块,每个顺序模块只要一个入口和一个出口,在模块外部外部采取程序、选择、反复三种根本管制构造。
    Java言语是面向对象的开发言语,采取的是面向对象的开发办法。面向对象开发办法尽量摹拟人类习气的思惟形式来剖析软件名目,并根据理想世界的问题域来构建解决理想问题的零碎。面向对象开发办法中的对象是构造化开发办法中的实体、数据和顺序模块的组合体,它拥有属性和行动,同时能够对零碎收回的动静进行响应。
    编译形式和运转环境不同
    C言语的次要指标是计算机底层零碎开发,因此经过C言语编译的顺序与计算机硬件环境和操作零碎相干性较强,C言语代码会间接编译为可在计算机上间接运转的机器代码,运转效力十分高效,缺陷是顺序在不同操作零碎间的兼容性差。C言语的编译进程如下图所示:



    编写实现的C言语源代码,首先通过编译预处置器标准代码和预编译,而后经过编译器转换为汇编代码,再由汇编器转换为机器代码,最初由链接器将无关的机器代码文件进行互相链接,构建可履行的C顺序。
    Java言语的指标次要是运用零碎开发,要求可运转于不同的操作零碎。因此Java的源代码首先被编译成字节代码,而后依赖各种不同平台上的虚构机来解释履行字节码,由于Java顺序需求解释器来解释履行,因此相对于于C言语来讲运转效力对比低,优点是顺序能够兼容不同的操作零碎。Java言语的编译、解释、履行进程如下图所示:



    Java编译将Java源代码文件编译为class文件(字节码文件),JVM(Java虚构机)的类装载器加载class文件,由解释器解释履行,解释器会将字节码解释为合用于操作零碎运转的机器代码。

    发表回复

    您需要登录后才可以回帖 登录 | 立即注册

    返回列表 本版积分规则

    :
    注册会员
    :
    论坛短信
    :
    未填写
    :
    未填写
    :
    未填写

    主题35

    帖子43

    积分195

    图文推荐