<强> C和Java 强>
几十年之后,Java仍然是企业级软件开发的主要语言,一般开发的主要语言。大多数优秀的企业软件开发项目都是用Java写的,包括绝大多数Apache基金会项目,当开发企业级项目时,Java也仍然是一个可行性比较高的语言。
Java的语法大量地借鉴了C和c++。不过与C不同的是,Java不会默认编译成机器语言。相反地,Java运行时环境JVM会将Java代码即时编译到目标环境中运行。在良好地条件下,即时编译的Java代码可以达到甚至超过C的性能。
Java奉行的“一次编写,到处运行”的思想,可以让Java程序在相对较小的调整下,运行在不同的环境里面。相比之下,尽管C已经移植到许多体系结构中,但是任何给定的C程序可能仍然需要定制才能在Windows和Linux上正常运行。
这种可移植性和强大性能的结合,以及软件库和框架的庞大生态系统,使Java成为企业级项目语言的一员。
Java落后C的地方是Java从来没有竞争的领域:接近底层运行,或直接操作硬件C代码被转换成机器码,由进程直接执行. Java被编译成字节码,它是随后由JVM解释器转换为机器代码的中间代码。此外,尽管Java的自动内存管理在大多数情况下是一种好事,但是C更适合于对有限内存资源有优化要求的程序。
在某些地方,Java的性能可以接近C.JVM的JIT引擎可以在运行时根据程序的行为优化程序,可以进行许多种类的优化,对于预先编辑的C语言而言,这个是行不通的,例如,Apache火花使用自定义的内存管理代码绕过JVM进行了一定程度的内存内处理优化。
<强> C与c#与。净强>
在推出近20年之后,C和。网框架仍然是企业软件世界的主要组成部分。有人说,c#和。网络是微软对Java的一种回应(托管代码编译系统和通用的运行时),因此C和Java之间的许多比较也适用于C和c#/>弧?/p>