大家好,今天小编关注到一个比较有意思的话题,就是关于java语言和c语言的速度的问题,于是小编就整理了3个相关介绍Java语言和c语言的速度的解答,让我们一起看看吧。
我学习的是j***a语言,现在想去学习c语言,会不会很难或者说要入门大概需要多长时间?
最大难度可能会来自学J***a会缺乏对更底层逻辑的抽象,而人往往因为定式会以J***a使用的上层抽象硬套C语言的逻辑。学C的话J***a的经验可以作为参考,上层的编程思路可以用,但是语言方面,***装自己没学过编程语言吧。
然后就是C语言因为异常古老所以某些设定相当扭曲,比如类型格式,函数指针。
再有就是语言设计出发点的问题,J***a的规则很严格,C语言追求性能所以在规则上留了很多余地。J***a只要能编译过的在语言层面一定是对的,C语言不是,比如i++ += i++ + ++i之类称为未定义行为的东西。
单说C语言的话,原则说C语言比J***a简单得多。但C语言更贴近底层,所以更反直觉(当然也有一些祖传设计Bug的问题)。C语言好不好学可能主要在于你是不是够理性。
不同的编程语言都打包成exe执行,速度是不是都一样?为什么?
不一样。
简单的解释一下,计算机只认识0和1。而j***a,php,c,python等等各种语言,都需要各自的编译器来将程序代码“翻译”成0和1。
这个翻译的过程比较复杂,各自的能力水平侧重点都不一样,导致这个翻译的时间长短也不一样啦。
不要说不同语言,同一种语言的不同版本的编译器效率都不同。比如icc编译优化过的程序跑在intel架构cpu上可能就比gcc编译的快一点。当然现在的主流是靠cpu性能硬上,编译上的优化差不多过得去就行。
答案当然是不一样,具体原因涉及到编译原理,下面详细解释一下。
就目前的编程语言来说,主要分两种模式。
一种是编译型的语言,典型代表就是C/C++,编译型语言会将程序代码直接转换为可在特定机器上运行的二进制(机器语言)程序,它的特点是运行速度快,但是编译需要较长时间,编译后的程序无法跨平台运行。
还有一种是解释型语言(可以细分,比如基于本地的解释器,如Basic,Python等,还有基于虚拟机的解释器,如J***a,C#等),这种语言不是把程序直接编译成机器代码,而是在运行时把代码逐条翻译成机器代码(基于虚拟机的语言会先将代码编译成中间语言代码,然后再在虚拟机上解释执行这些中间语言),解释器语言的特点是结果即时可见,可以跨平台运行,但是运行效率相比编译型语言要慢一些。
此外,即使对同一种语言编写的代码,不同的编译器编译后的程序,运行速度也会存在一定的差异,因为现代的编译器里面都加入了优化机制,然而优化策略、优化算法等实现细节却不尽相同,导致最终生成的exe也就有一些差异了。
都说学J***a比学C语言好,这两个有什么区别吗?
都是基础语言C是面向过程编程更接近底层,也就是更接近机器思维;j***a是面向对象编程,更接近人的思维。所以学起来肯定是越接近人的思维越好学,j***a比c好学。举个栗子:天黑了要开灯用c和j***a来实现:c是这样做的:进房间-找到开关-按一下-灯亮了;j***a是这样做的:如果天黑那么-房间-变亮,这就是本质区别;还有在应用方面c多用于工业[_a***_],人工智能这些技术含量比较高的领域,j***a多用于互联网架构,常见什么京东啊,天猫啊,美团之类的,还有就是企业级大项目开发,j***a代码可移植性强比较灵活,门槛低容易入门,而c就比较难咯,都是博士级别的人再搞,一般的c语言也就是搬搬砖。两者比起来,还是j***a比较实用,毕竟工作机会多,待遇也还可以。
一个面向过程编程,一个面向对象编程。
就比如,你玩C语言,就相当于,你为你对象做一件事,非得把整件事来龙去脉给她来一遍,才能博得***欢笑。
而j***a面向对象编程,汇报对象却是你的老板,不要扯中间过程,你咋玩儿,花了多久,解决了多少BUG才做成这事,就问你结果,你这厮结果怎么样,达不达标。
到此,以上就是小编对于j***a语言和c语言的速度的问题就介绍到这了,希望介绍关于j***a语言和c语言的速度的3点解答对大家有用。