从安全角度考虑,C#是这几中语言中最为安全的,它其中定义的相关安全机制很好的确保了系统的安全...

今天和同学们一起探讨下c++/java/c# 三大热门语言的运行效率情况,以及各自的用途。

估计有很多同学都对C++/JAVA/C#这三大热门语言的运行机制和执行效率有或多或少的困惑,自己也有,但是经过前期的学习,了解了三者在这两方面的区别,就废话不说了,进入主题吧。

 一、运行机制

1、JAVA-编译和解释型语言

一个JAVA文件,首先会由JAVA编译器(JAVAC)编译成class(字节码文件)文件,然后由Java虚拟机(JVM)去解释。不同的操作系统只要装有适合不同平台的JDK,JAVA文件都可以被解释运行。JAVA是一种编译和解释型语言。
       字节码文件(class)之所以能够被JAVA虚拟机(JVM)所解释,最主要的原因就是字节码文件(class)里面所包含的内容是可以被JAVA虚拟机(JVM)所解释的一种高度优化指令。
       而JAVA文件只需要编译一次就可以在不同的操作系统上解释运行,也就是说一次编译处处运行,这就是JAVA可以跨平台的原因。如果你想学习Java可以来这个群,首先是二二零,中间是一四二,最后是九零六,里面有大量的学习资料可以下载。

2、C++-编译型语言

C++没有虚拟机这种概念,也就是说C++一旦编译就可以运行,是一种编译型语言,速度上比JAVA快得多,C++编译完成后是机器码(二进制文件)可以直接在操作系统上运行。如果你想学习C/C++/C#可以来这个群,首先是三三零,中间是八五九,最后是七六六,里面有大量的学习资料可以下载。

3、C#-编译再编译型语言

C#与一样,同样有虚拟机,但是他的虚拟机是CLR(公共语言运行时)。一个C#文件,首先会由C#编译器编译成低级别的中间语言IL,然后由C#虚拟机也就是公共语言运行时(CLR)即时编译(JIT)编译成机器代码,再由CUP去执行它。所以说C#的执行必须通过二次编译。

二、执行效率

1、运行速度方面

从这个方面来说的话,C++是最快的。因为C++编译后成为机器码可以直接运行,但是JAVA编译完后需要JVM解释,C#编译后需要由CLR进行二次编译。

2、编译效率方面

从这个方面来说的话,C++编译后的机器码并不是每个操作系统通用的,如果换到其他操作系统上就需要再次编译。同样,C#通过二次编译后的机器代码也是如此。所以这个时候JAVA JVM的优势就体现出来了,JAVA的字节码文件一次编译处处运行,换个操作系统仍然无需再次编译。所以,从编译效率来说,JAVA是最高的。

3、安全角度考虑

从安全角度考虑,C#是这几中语言中最为安全的,它其中定义的相关安全机制很好的确保了系统的安全。

总结

c++并不保证一定效率高于java和c#,就像汇编语言也不保证效率高过c一样。 但他们都提供了一种效率更高的机会,首先要你水平够高,才能写出效率更高的程序,否则,即使你用了c++/c甚至汇编,也可能生成的是低效率程序。 其次,对于c++还要看你用的编译器写的水平高低,看你编译时用了什么样优化。 再说,开发时用什么语言,考虑得远不是执行效率高一个因素,大多数情况下,执行效率是排在很后面的一个不重要因素。

以上就是本次编程语言运行效率的总结了,感谢大家的阅读!

浅析c++/java/c#三大热门编程语言的运行效率的更多相关文章

  1. 机器人研发十大热门编程语言:不死 Java、不朽 C/C ++、新贵 Python

    流水的编程语言,铁打的 Java.C/C++. 进行人工智能机器人研发,应该选择哪种编程语言? 这是很多机器人专家在自身的职业生涯中都会存在的一个入门级思考.毕竟,在学习一门编程语言时,需要花费大量的 ...

  2. 夯实Java基础系列1:Java面向对象三大特性(基础篇)

    本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 [https://github.com/h2pl/Java-Tutorial](https: ...

  3. java提高篇(四)-----理解java的三大特性之多态

    面向对象编程有三大特性:封装.继承.多态. 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据.对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法. 继承 ...

  4. java提高篇(二)-----理解java的三大特性之继承

    在<Think in java>中有这样一句话:复用代码是Java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事情.在这句 ...

  5. Atitit.java c#这类编程语言的设计失败点attilax总结

    Atitit.java c#这类编程语言的设计失败点attilax总结 1. Npe1 2. Api粒度过小而又没有提供最常用模式1 3. checked exception(jeig n jyejy ...

  6. c++/java/c# 几种编程语言的指针、引用比较

    前一段时间,我在 cnblogs 别人的博客中,谈到: java 中的引用/指针,与 c++/C# 中的引用/指针不是一个概念. Java 引用,相当于 c++ 指针(fun3).Java 引用可以赋 ...

  7. java提高篇(三)-----理解java的三大特性之多态

    面向对象编程有三大特性:封装.继承.多态. 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据.对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法. 继承 ...

  8. java提高篇(二)-----理解java的三大特性之继承

    在<Think in java>中有这样一句话:复用代码是Java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事情.在这句 ...

  9. JAVA的三大特征 封装继承多态- 简单总结

    简单总结一下 封装-即从很多类的抽取相同的代码 写在一个类里. 好处是 代码的重用,安全. 继承-减少代码的书写. 其好处也是 代码的重用. 多态- 把不同的子类对象都当作父类来看,可以屏蔽不同子类对 ...

随机推荐

  1. WeMall微商城源码投票插件Vote的主要源码

    WeMall微信商城源码投票插件Vote,用于商城的签到系统,分享了部分比较重要的代码,供技术员学习参考 AdminController.class.php <?php namespace Ad ...

  2. Vue基本入门

    介绍 1.Vue.js是什么? Vue.js(读音:/vju:/,类似于view)是一套构建用户界面的渐进式框架,与其他重量级框架不同的是,Vue采用的是自底向上增量开发的设计. Vue的核心库只关注 ...

  3. PHP测试题讲解(20161027)

    注: 关联数组 关联数组,它的每个 ID 键都关联一个值.在存储有关具体命名的值的数据时,使用数值数组不是最好的做法.通过关联数组,我们可以把值作为键,并向它们赋值. 例子 1 在本例中,我们使用一个 ...

  4. ORM映射设计思想

    using System; using System.Collections.Generic; using System.Data.SqlClient; using System.Linq; usin ...

  5. 图解Javascript——变量对象和活动对象

    span { line-height: 1.5 } 这是由一段代码引发的思考: var laterDeclaredVar = 'I am a global variable ...'; (functi ...

  6. SQL注入相关的知识【Mysql为例子】

    以DVWA的sql注入初级为例,结合网上搜索的相关利用方式,总结成这一篇文章,内容会有点跳跃. 大纲: 1.初级手工注入 2.order by的使用 3.union查询注意点 4.Mysql相关的注释 ...

  7. 踩坑实录 使用 cardview 时报错 error: No resource identifier found for attribute 'cardCornerRadius' in package 'com.xxxxx.xxx'

    在项目中引用 cardview 卡片布局,编译时 Android Studio 报出下面图片中红框标记的错误: 出现这种情况的原因在于没有导入 cardview 卡片布局相应的依赖包,因此我们需要在 ...

  8. 【Egret】里使用iframe标签达到内嵌多个web界面

    目的:Egret里使用iframe标签达到内嵌多个web界面,模式相当于主swf调用N个子swf的效果: 目前在做项目过程中,在使用iframe的时候,碰到了一些功能需求,以及解决方法如下: 一..在 ...

  9. 快速找到Office应用程序安装路径

    p{ font-size: 15px; } .alexrootdiv>div{ background: #eeeeee; border: 1px solid #aaa; width: 99%; ...

  10. [笔记]GBDT理论知识总结

    一. GBDT的经典paper:<Greedy Function Approximation:A Gradient Boosting Machine> Abstract Function ...