大家好,今天小编关注到一个比较有意思的话题,就是关于java与c语言最大不同的问题,于是小编就整理了3个相关介绍Java与c语言最大不同的解答,让我们一起看看吧。
为什么说JAVA比C / c++ 慢?
1.C++是编译型语言,java是解释型语言,普遍来讲,编译型语言要比解释型语言速度快。
2.C++是在C语言的基础上增加了新的语法和面向对象的机制,更加接近C语言,也就意味着更加接近底层硬件,越接近于硬件,运行速度越快。
3.java是纯面向对象的语言,实现了大量类的封装,体系比较庞大,对于java程序员来说,底层硬件可以说是透明的,所以想要优化效率是不容易的。
4.java慢于C++的一个重要原因就是java是运行在java虚拟机上,虚拟机的也需要时间开销。
5.总的来说,C++的效率大概是java的3到4倍,但是现在CPU的速度已经很快了,这种几倍的效率问题CPU已经可以完全屏蔽了。
java程序和c程序都需要CPU来运行。
区别是c和c++程序编译后的可执行文件是机器码,cpu认识它们,可以直接加载并运行:
java程序编译出来的则不是机器码而是字节码,需要由java虚拟机先把字节码转化为机器码,然后才能在CPU上运行:
java程序--(编译器)->字节码--(虚拟机)->机器码-->运行
java比c多了一个从字节码转化为机器码的过程,所以java运行慢。
所以说java是一种解释性语言,c是一种编译性语言。
的确,不可否认,Java运行效率上比C/C++是要慢一些,但随着JVM / JIT的不断升级优化,这种速度上的差异会越来越小。
那为什么说Java比C/C++运行效率上要慢呢?且听我说:
1、Java是解释型语言、C/C++是编译型语言:
C++可以理解为是C语言的升级扩展版本,C/C++的程序编译出来的是机器码,可以被CPU直接加载执行的;而Java编译出来的是字节码,然后要通过JIT编译器“翻译”为机器码,然后再被JVM加载执行。Java中间多了个翻译过程。
两种语言的执行过程大概如下:
Java:
程序 》编译 》字节码 》JVM 加载处理 》机器码 》执行
C/C++:
程序 》 静态编译器 》 机器码 》执行
2、Java其实是运行在JVM(虚拟机)上的:
Java的跨平台其实靠的就是与系统无关的字节码与JVM来实现的,JVM可以理解为是一个虚拟机系统,Java程序是跑在JVM上面的(JVM底层是用C实现的)。所以Java的性能还受JVM的配置影响。
而C/C++编译的程序是不需要跑在虚拟机上的。
为什么现在很多人都去学JAVA,而不学C语言了呢?
我举个简单例子,不对请指正
这个和人类语言发展一样的
甲骨文和象形文字是人类沟通最基础的语言和人类最直接理解层面的
但是我们不需要再学,就是因为现代语言更加模块化,功能话,通用话,这样就可以辅助人类更高效实现沟通和创造
毕竟语言的终极目标是辅助
百战程序员IT问题专业解答
1.这两种语言的应用场景不同。
Java普遍应用于在网站后台开发、中间件开发等场景中,相对来说这一类的开发需求较大。例如电商常用的微信系列(公众号、小程序)的后台,基本用Java开发的话很方便,成本也低好维护。而c语言普遍应用于嵌入式开发、硬件开发场景中。例如plc编程、机器人等,这一类开发需求量也大,但是门槛高,且程序不多变,对一套硬件系统写好软件以后基本就不做大改动了。而且软件相对硬件来说需求量大,因为软件是虚拟产品,多变,硬件是看得见摸得着的,物理结构基本不变。
2.Java生态圈大,c语言受众面小。
学会Java以后,再学点前端知识,基本可以全栈开发了,而只学c语言,想要做真正的开发还要学c++,比如做win窗体开发还要学qt、做游戏开发要学c++等。
1.这两种语言的应用场景不同。
Java普遍应用于在网站后台开发、中间件开发等场景中,相对来说这一类的开发需求较大。例如电商常用的微信系列(公众号、小程序)的后台,基本用Java开发的话很方便,成本也低好维护。而c语言普遍应用于嵌入式开发、硬件开发场景中。例如plc编程、机器人等,这一类开发需求量也大,但是门槛高,且程序不多变,对一套硬件系统写好软件以后基本就不做大改动了。而且软件相对硬件来说需求量大,因为软件是虚拟产品,多变,硬件是看得见摸得着的,物理结构基本不变。
2.Java生态圈大,c语言受众面小。
学会Java以后,再学点前端知识,基本可以全栈开发了,而只学c语言,想要做真正的开发还要学c++,比如做win窗体开发还要学qt、做游戏开发要学c++等。
我个人理解,主要是如下几个原因
C语言主要是三个应用方向
java的应用方向
嵌入式开发是目前C语言需求的主要方向,但这个方向,除了需要C语言编程本身的知识,还需要一部分硬件知识,或者linux相关知识,所以需要掌握的知识点多,对于很多人学习而言,跨度较大。
Java开发出来的东西,可以很好的在linux上运行,而linux是免费的,互联网时代,Java在后台服务端开发上面基本上就是一统天下的。而且有十分成熟的技术让java的程序在廉价的x86服务器上分布式的部署,而代码几乎完全不用修改。
编程语言中,c#、python、javascript哪一个更接近c语言?
谢谢邀请
C#可以说是基于C的面向对象的编程语言,C+C#可以完成C++的功能了,大学里很多专业不是学C++就是学C和C#,不过,如果比较相似性的话,C语言比C#语言要简单很多,更加基础一些,或者可以说C是这些编程语言里最基础的一种语言,学编程都会从C学起。
如果只谈相似性,Python是这三门语言里最接近C的,python同C语言一样简单容易入门,你学了C语言之后希望再学习C#,可能还是觉得有一些吃力,但是如果你有了C语言的基础,再去看Python就会觉得,python很容易上手,很多地方都和C语言相似。
c语言是过程语言,其他三种都不像,c语言的重点指针,其他三种语言都是没有的,要说像,c#面向对象语言,还有一点点一样的地方,python脚本语言比较c语言简单很多,JavaScript是前端脚本语言可以说完全不同。不过语法都是相通的,if for等基本结构原理都是一样。
谢谢邀请,
不要尝试比较几种编程语言的优劣,任何一种编程语言都有其存在的价值,适合的就是最好的,现在编程领域Python,JAVA等等发展势头非常迅猛,但并不意味着所有的企业都要向这个方向发展,毕竟任何企业都要从自身发展状态出发,生存是第一位的,然后才是跟上发展,说到底编程语言只是一种工具而已,为软件框架和思想服务的基石。
现在很多初学者在学习编程之前,总会有个习惯先比较出一种所谓最牛的编程语言,然后选择这种编程语言来学习,学习了一段时间觉得这门编程语言很难学,然后打听到别的编程语言比较好学就开始了新的编程语言的学习,来来***反反复复最后选择了放弃,编程语言说到底就是一种工具,先做好一门后面的都容易触类旁通,其实做一种决定就是选择一个自己认可的方向,选择一个适合这个方向的编程语言,其实这就做出决定了,没必要追求一个最好,适合的就是最好的。
现在把c#,Python,JavaScript三种编程语言以自己实际编程中的经验分享给大家,在编程的发展历史中JAVA是先于c#的,是面向对象编程语言的刚开始被大众所推崇的阶段,c#在桌面版上位机软件或者桌面软件开发方面非常有优势,同时在服务端开发也有独特的优势,现在基本上想在桌面上做一个软件首先想到这种编程语言,还能支持控件的拖拽非常方便。
Python现在应该是风头最强劲的编程语言,大有取代JAVA的趋势,但从整个行业体量方面还是欠缺很多,应用领域非常广泛,被称之为胶水语言也称万能编程语言,几乎没有做不了的事情,在爬虫,后台网站开发,科学数据统计,人工智能,游戏开发等等方面都有不同程度的涉及,现在中学课本都要把这门语言列为基本编程语言,后续不排除在高考中涉及,全民普及编程Python是一个非常好的切入点,Python正好迎合这个时代高级语言进一步集成化得阶段,简单的几句话就可以实战很复杂的功能,大部分都是由类库来完成的,这也得益于硬件的快速发展,在软件发展初期为了节省效率都不舍得用c++来取代C语言就是为了提升那只有百分之几的效率,这种制约在当前时代完全不是问题,所以高级语言越来越来盛行。
很多人都对前端有一定意见,觉得设计网页而已没有什么大不了,对于html,css而言其实真不是什么难事,但对JavaScript而言入门容易成为高手还是需要多年的积累,而且不一定做了很多年就一定能成为高手,可以随便打开一个网页看看密密麻麻的脚本语言,不同的人设计的页面体验差异也会非常大,现在社会大家对于用户体验有着非常高的要求,这也是前端最近非常流行的原因。
综上的三种编程语言都有自身的优缺点,都属于主流的编程语言,在不同的场景发挥着非常巨大的作用。C语言和他们三个最大的区别是面向过程的编程语言,执行效率高在底层语言中有着举足轻重的意义,很多主流的编程语言都是C语言来实现,很多人觉得过时的言论都会显得非常渺小。其在编程语言的历史地位不是靠说出来的,编程语言的祖师爷。
希望能帮到你
到此,以上就是小编对于java与c语言最大不同的问题就介绍到这了,希望介绍关于java与c语言最大不同的3点解答对大家有用。