C/C++ 和 Java的编译运行机制比较 个人理解

news2024/11/23 21:32:58

        计算机程序语言按程序的执行方式可分为编译型语言和解释性语言。

        编译型语言是指使用专用的编译器,针对某操作系统将高级语言源代码一次性地翻译成可被该系统硬件执行的机器码(包括机器指令和操作数),并包装成该系统所能识别的可执行程序的格式。 可执行程序可脱离开发环境,在该系统上独立运行。

        解释型语言是指使用专门的解释器直接对源程序逐行解释成特定系统的机器码并可立即执行的语言。


C/C++是编译型语言。编译过程如下:

 

在windows上最终生成PE文件(.exe),在Linux上生成ELF文件。

可分别在各自系统直接执行,但不能跨系统执行。

而且同一份代码由于操作系统的不同,以及一些类库和规范不同,有可能无法跨平台编译。


Java是半编译型,半解释性语言。编译执行过程如下:

 

        Java 编译器(javac)先将java源程序编译成Java字节码(.class), JVM负责解释执行字节码文件。

字节码文件具有平台无关性,只面向JVM。

        JVM是Java程序跨平台的关键部分。 不同系统有不同的JVM, 相同的Java字节码通过不同的JVM解释成不同系统上可执行的指令,并执行。

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

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

相关文章

同事开源我的微服务深度实践笔记到 GitHub,短短 3 天竟吸粉 1W+

说Spring成就了Java,Spring是Java程序员必修课之一,应该没人反对吧?前几年面试最常问的且可以顺利拿到高薪的技能是Spring,随着Spring体系的壮大,除非你在简历上添加Spring Boot和Spring Cloud的技能,才可以…

Kubernetes——Debug Static Pod

1. 问题背景 注意,我这里的Static Pod并非Kubernetes的Static Pod,而是需要把想要Debug的程序放到Delve环境中重新打包一个镜像。因为还有另外一种场景,那就是我们需要不重启Running Pod,为了和这种方式区分,才以此为…

彻底卸载并重装Anaconda环境与Python的方法

本文介绍在Windows平台下,彻底删除Anaconda环境与其自带Python版本,并进行重新安装的方法。 最近,由于原有Anaconda环境中的部分第三方库出现了冲突的情况,且基于“Anaconda Prompt (anaconda3)”也无法升级Anaconda与相关库了&am…

《超新星纪元》

《超新星纪元》 关于作者 刘慈欣,髙级工程师,科普作家,被誉 为"中国当代科幻第一人"。自上世纪90年代开始,他一边在发电厂担任计算机工程师,一边利用业余时间出版了13本小说集,连续数年获得中国…

这是一篇讲解用户行为分析的推荐书单和总结

写在前面 技术文延迟了 本来计划参加活动的还有一篇,应该是一篇技术翻译文,但是那篇文章太难了,看我过我以往文章的同学,应该能理解,我的文章很少有3000字数以下的,而且如果不是来自谷歌(主要…

深蓝学院-多传感器融合定位课程-第9章-基于图优化的建图方法

专栏文章: 深蓝学院-多传感器融合定位课程-第1章-概述_goldqiu的博客-CSDN博客 深蓝学院-多传感器融合定位课程-第2章-3D激光里程计I_goldqiu的博客-CSDN博客 深蓝学院-多传感器融合定位课程-第3章-3D激光里程计II_goldqiu的博客-CSDN博客 深蓝学院-多传感器融合定位课程-第…

2022品牌出海:日本网红营销白皮书

日本作为世界第三大经济体,同时也是世界第四大电子商务市场,亚洲第二大消费市场,其经济水平和消费能力都非常出色。对出海企业来说,日本是一个非常有吸引力的市场。日本的网红营销市场也非常成熟,在疫情的影响下&#…

java设计模式之原型模式(prototype Pattern)

原型模式主要在于对象的克隆,所以也叫克隆模式 其实就是利用java中的Object对象中的clone方法实现一个对象的克隆。此方法需要注意的是,一个对象想要实现克隆,就必须实现一个标志性接口Cloneable 现在先来说一下浅克隆 这玩意也叫表皮克隆&…

【前端开发学习】1.前端引入和HTML标签

文章目录1.快速开发网站2. 浏览器能识别的标签2.1 编码(head)2.2 Title(head)2.3 标题(body)2.4 div 和 span(body)2.5 超链接(body)2.6 图片(bod…

基于微信小程序的居民疫情服务系统springboot框架-计算机毕业设计

项目介绍 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,居民疫情服务系统小程序被用户普遍使用,为…

一个基于.Net开发齐全的加密库

网络安全,对于我们项目日常开发,是非常重要的,比如密码加密存储、密码加密传输、SSL证书、端对端加密等等。 这些加密算法,每个知识点都包含了很多内容,自己实现都需要花费很多时间,所以今天就给大家推荐一…

Qt 模型视图编程之增删行列

背景 Qt 模型视图编程中模型定义了标准接口对数据进行访问,可根据需求继承对应的抽象模型类来实现自定义的数据模型。一个基本的数据模型至少要实现以下虚函数: ①.rowCount:行数,返回要显示多少行; ②&…

net基于asp.net的社区团购网站-计算机毕业设计

项目介绍 社区团购系统依托社区团购系统和社区门店,是现在的一个重大市场和发展方向,通过研究企业在社区团购系统环境下的营销模式创新,对于普通的零售业和传统社区团购系统的转型发展具有重要的理论意义。随着互联网行业的发展,人们的生活方式发生着重大变化,人们越来越倾向于…

[附源码]Python计算机毕业设计Django酒店客房管理系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

[附源码]Nodejs计算机毕业设计基于大学生兼职系统Express(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置: Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分…

前端基础(七)_表单的基本组成与使用

表单 表单:用于采集不同类型的用户输入数据,发送给服务器,实现用户和服务器之间的数据交互; 表单标签 form 用于声明表单,定义数据的采集范围 注意: 1、一个页面中可以有多个表单标签,但是标…

STM32F4 | 串行通信基本原理 | 串口通信实验

文章目录一、串行通信基本原理1.串行通信接口背景知识2.异步串口通信UART知识3.STM32串口数据格式和通信过程4.STM32串口框图5.波特率计算方法二、STM32F429 串口简介三、硬件设计四、软件设计五、实验现象六、STM32CubeMX 配置串口本章介绍如何使用 STM32F429 的串口来发送和…

手把手教你Spring Cloud Alibaba教程:nacos安装

我们在学习springCloud的时候用的注册中心是Eureka: springBoot集成springCloud(一)注册中心 但是由于houlai Eureka2.0后续不维护,国内就需要一个可靠的注册中心。但是换了一套后,有哪些不同呢 SpringCloud和SpringCloudAliba…

fl21怎么换主题flstudio皮肤怎么换?

FLstudio21如何更改皮肤主题?不光是背景,还有按键什么的? 请参考下面的步骤进行设置fl视图设置。 第1步,打开visualstudiofl视图设置。 第2步fl视图设置,打开“工具”--“选项” 第3步,在“环境”--“常…

基于SpringBoot+MySql的分页功能实现

分页功能是为了缓解数据库的压力而实现的功能,实际上是将数据库中的数据分段查询出来,避免一次性将所有的数据全部查出来,查出来的部分数据通过前端的页面中不同的页数来展现出来 实现基础 mysql数据库中的查询语句中提供的limit关键字 该关键字可以限制查询的记录数,例如 s…