大家好,今天小编关注到一个比较有意思的话题,就是关于c语言 java 性能的问题,于是小编就整理了3个相关介绍c语言 Java 性能的解答,让我们一起看看吧。
j***a编程有甚么优点?
首先,J***a是在进化的
当年J***a刚出来的时候被吐槽性能烂,然后1.4出来了性能提升,至少可以接受。
被吐槽功能简单,1.5出来增加泛型,线程池,注解1.6性能提升
后来1.7又加了Try with Resource,switch String等小功能,多线程方面也有改进,性能提升,g1的gc策略。
然后1.8加入lambda, stream等功能。功能上有了很大的升级。
说明
1. J***a虽然进化慢,但是的确是在进化。
2. J***a进化的慢,我个人觉得是有原因的。比方说,lambda表达式真的很适合在大项目中用吗?尤其是码农水平参差不齐的时候。我个人是很喜欢lambda的,以前就用Gu***a来操作集合,但是也不得不承认lambda还是没有命令式的那种代码直观。对于大型项目来说这是很烦的问题,就是某些高手写的代码没有特别多的参考价值,一旦这人走人,接手的必须要懂lambda。J***a是一门很工程的语言,甚至有“over-engineering”的说法。但是也正是这样,使得开发难度降低了。所以,语言的好坏,有时候还是要结合场景来看。
j***a语言怎么样?
语言无好坏之分,看你对什么感兴趣,或者所处的行业和应用需要什么语言可以最快速和高效的满足你的需求!淘宝最开始的架构是用Php写的,到后来无法满足系统的需要,就改用J***a,据说还因此找到过Jdk的Bug提交给Sun公司。很多牛逼的大咖都是从Sun公司直接挖人过来写架构和代码的!
j***a是一门语法严谨,性能高效,功能强大,安全性高的编程语言。在很多年来,j***a在大型web应用程序方面,一直都是行业老大,可见,j***a这门语言是非常值得在项目中应用或者学习的。
为什么说J***a比C / c++ 慢?
的确,不可否认,J***a运行效率上比C/C++是要慢一些,但随着JVM / JIT的不断升级优化,这种速度上的差异会越来越小。
那为什么说J***a比C/C++运行效率上要慢呢?且听我说:
C++可以理解为是C语言的升级扩展版本,C/C++的程序编译出来的是机器码,可以被CPU直接加载执行的;而J***a编译出来的是字节码,然后要通过JIT编译器“翻译”为机器码,然后再被JVM加载执行。J***a中间多了个翻译过程。
两种语言的执行过程大概如下:
J***a:
程序 》编译 》字节码 》JVM 加载处理 》机器码 》执行
C/C++:
程序 》 静态编译器 》 机器码 》执行
2、J***a其实是运行在JVM(虚拟机)上的:
J***a的跨平台其实靠的就是与系统无关的字节码与JVM来实现的,JVM可以理解为是一个虚拟机系统,J***a程序是跑在JVM上面的(JVM底层是用C实现的)。所以J***a的性能还受JVM的配置影响。
而C/C++编译的程序是不需要跑在虚拟机上的。
j***a程序和c程序都需要CPU来运行。
区别是c和c++程序编译后的可执行文件是机器码,cpu认识它们,可以直接加载并运行:
c程序--(编译器)-->机器码-->运行
j***a程序编译出来的则不是机器码而是字节码,需要由j***a虚拟机先把字节码转化为机器码,然后才能在CPU上运行:
j***a程序--(编译器)->字节码--(虚拟机)->机器码-->运行
j***a比c多了一个从字节码转化为机器码的过程,所以j***a运行慢。
所以说j***a是一种解释性语言,c是一种编译性语言。
到此,以上就是小编对于c语言 j***a 性能的问题就介绍到这了,希望介绍关于c语言 j***a 性能的3点解答对大家有用。