谢邀。

首先说明一个问题:在说“低级语言”时,我们并不是指“这个语言好沙雕/没有有用的功能”,毕竟大多数语言都做到了图灵完备,在表达能力方面是彼此等价的。一般来说低级语言是指面向机器设计的二进制机器码和汇编语言这种基本没有可读性的玩意。考虑到C语言非常贴近机器的一些设计(甚至还支持内嵌汇编代码),可能在非常非常广义的角度上来讲,C也勉强是一种低级语言,但一般来说,我们还是叫它高级语言的。

同时有趣的是,C语言刚好是题主所提问题的反例。C作为高级语言,在编译和优化以后生成的汇编代码基本和专业人员(虽然这种人越来越少了)手写的汇编速度相近,甚至快于一些新手写的代码(优势主要在使用机器特殊的优化指令和进行一些比较难手动完成的优化)。所以说低级语言效率比高级语言高并不一定成立。事实上,只要经过完美的设计和(超级烧脑烧时间)的debug,大多数高级语言编译器应该都能生成接近手写效率的汇编代码。

另外,从题主给的例子来看,题主想问的问题应该是为什么编译型语言比解释性快。我们先打个比方:想象你有一只机械臂,靠给一堆电线通电断电来控制各个关节的运动(实在不懂机械臂原理,就这样瞎BB了,见谅)。现在你要设计一块电路接在外面的电线上,让这个机械臂拿起一只杯子。

其实你有两个选择:

1.仔细研究一下拿起杯子需要哪些操作,然后做一块依次给那些电线通电断电完成“拿杯子”操作的电路。

2.干脆做一块能把人话转化成对应信号的AI电路(比如贾维斯),然后对它吼:“把杯子拿起来!”

方案一对应着编译:把拿杯子的指令先转化(编译)成产生电信号的电路,再把它接在机械臂上(运行)。注意这一方案在拿杯子时工作的只有产生电信号的电路,而转化人话转电信号是事先完成了的。

方案二对应着解释:直接接一块能把人话转化(解释)成电信号的复杂电路,再说出指令(运行)。注意这一方案拿杯子时转化人话的电路是在运行的,而且命令是运行时下的。

所以编译器把一部分工作提前完成了,不像解释器要现场翻译,自然快一些。

但是解释器的优点在于你可以临时变卦,喊“把杯子摔在地上!”,但如果是编译器,那么对不起,请重新做一块新电路。

java和c哪个效率高_可以通俗详细地解释一下为什么C的效率比Java高?相关推荐

  1. svchost占用内存过高_「电脑常用技巧」电脑卡的原因(占用过高怎么办)?

    大部分人在使用电脑时候,对于卡的定义都没什么概念.因为所谓的电脑卡实际上是有很多种原因导致的 关于常见的数据占用过高导致电脑卡顿的原因和解决技巧. 检测电脑数据使用的管理器(任务管理器)打开方式:ct ...

  2. java做一个客房管理系统定制_管理皮孩子很难?来,教你一个java设计简单的学生管理系统...

    前言: 孩子不听话,那就系统的管理起来,啊哈哈哈哈 学生成绩管理系统 要求: 完善Student类,Student类包含学号.姓名.年级.专业.三门功课的成绩(英语.高数.计算机)的成员变量,完善成绩 ...

  3. java工单系统源码_基于jsp的工单管理系统-JavaEE实现工单管理系统 - java项目源码...

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的工单管理系统, 该项目可用各类java课程设计大作业中, 工单管理系统的系统架构分为前后台两部分, 最终实现在线上 ...

  4. java网上报名系统源码_基于jsp的网上报名系统-JavaEE实现网上报名系统 - java项目源码...

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的网上报名系统, 该项目可用各类java课程设计大作业中, 网上报名系统的系统架构分为前后台两部分, 最终实现在线上 ...

  5. Java共享充电宝地图应用_基于jsp的共享充电宝-JavaEE实现共享充电宝 - java项目源码...

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的共享充电宝, 该项目可用各类java课程设计大作业中, 共享充电宝的系统架构分为前后台两部分, 最终实现在线上进行 ...

  6. java实现贴吧源码_基于jsp的贴吧系统-JavaEE实现贴吧系统 - java项目源码

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的贴吧系统, 该项目可用各类java课程设计大作业中, 贴吧系统的系统架构分为前后台两部分, 最终实现在线上进行贴吧 ...

  7. 前端和后端哪个工资高_新媒体运营和网络运维哪个好,哪个工资待遇高,门槛低?...

    文/水流云在草青青 通常情况下,门槛高低和待遇高低成反比.工资待遇和工作本领成正比.除非你有人脉或贵人,除非你踩狗屎运.门槛低,待遇高的工作对绝大多数人而言是梦话. 不知题主朋友的特长是什么?有哪些工 ...

  8. python在哪个城市工资高_专硕好还是学硕好?哪个更好就业工资高?

    最近有备考的小伙伴咨询关于学硕和专硕的问题,一篇旧文分享下.昨天的文章专硕学费贵那么多会比学硕学的东西多吗?九大美院研究生学费对比(点击查看)受到了不少小伙伴的关注,大家就专硕和学硕的问题提出了不少疑 ...

  9. java腾讯字符串面试题_面试百度、阿里、腾讯,这134道Java面试题你会多少?

    这里一共是134道Java面试题,看看你能对几道吧! 1. Java 语言有哪些特点 2. 面向对象和面向过程的区别 3. 关于 JVM JDK 和 JRE 最详细通俗的解答 4. Oracle JD ...

最新文章

  1. 郁闷的Alexa破10万。
  2. openpyxl模块介绍
  3. 对于高并发短连接造成Cannot assign requested address解决方法
  4. Linux多线程矩阵,操作系统实验——多线程计算矩阵相乘
  5. PostgreSQL学习手册(系统表)
  6. count/distinct/group by的用法总结
  7. 如何修改webbrowser里的JS函数
  8. 移动pc常用Meta标签
  9. 一位女博士五年的艰难毕业历程
  10. Java Springboot+VUE前后端分离网上手机商城平台系统设计和实现以及论文报告
  11. TypeScript:语句
  12. 基于STM32的(NB-IOT(BC26))温湿度监测系统
  13. 隧道管廊UWB定位系统解决方案
  14. linux点击桌面图标无反应,电脑点击图标没反应怎么回事
  15. 文献阅读——金属伪影减少MAR问题
  16. ENGLISH资料收集(3)-英语日期的正确表达
  17. C/C++ Linux 后台服务器开发高级架构师学习知识路线总结
  18. 改变生物学研究进程:AI模型打开生命信息密码
  19. bi软件用来做什么?
  20. Python如何查询版本号

热门文章

  1. oracle表如何创建序列,Oracle中如何创建序列
  2. “独角兽”京东工业品,生于“豪门”,也要活在“豪门”影子里?
  3. 如何判断oracle是否启动及启动oracle数据库
  4. 关于Bean标签的一些属性以及getBean()方法
  5. 【JavaScript转义字符对照表】
  6. 12.10日刷知乎,看到有关传销的一个触动心灵 感慨悲伤无奈的故事 2021.12.10日上午10点半
  7. SOA为什么在中国的电信行业受到冷遇(希望与大家探讨)
  8. 数据库之关系数据库的关系运算
  9. Ubuntu安装redis教程
  10. 数据仓库系列(19):数据安全