在做WEB服务器的时候,就一直在抱怨,我们的WEB服务器怎么就是那么慢,TPS总是上不去。一般谈及高性能的网络服务,总是不由自主的想到用C语言去开发服务应用,以确保性能。
难道Java语言的性能,就真的是远远不如C吗?
其实,大家都知道,JDK 5.0 6.0的绝对性能和C相比差距并不大,在很多评测里面,两者的差距不到一倍。而从语言特性上来说,Java语言,在抽象机制、安全机制、内存管理、并发控制和基础库上,和C语言相比,就像火枪和弓箭。
但是,就是这样,装备了大量堪称完美的高级特性的Java语言,却在基础应用领域内较少应用,明显落后于C语言。尤其在数据库、高性能网络服务、图形图形处理等领域。这其中的根本原因是什么??
我想到了一些原因:
1、人的问题。
能够用C语言写出优秀基础软件的人固然不多,能用Java写出来的人恐怕更少。Java有好几百万开发者,但是他们在干什么?大部分是去搞企业级开发、Web开发了,像这种bt下载网站 www.bt285.cn 很简单就可以实现了。但是有多少人真的理解Java的内存模型?有多少人能够熟练使用java.util.concurrent包中提供的那些工具?很多使用Java多年的人没有写过socket程序,不了解Java多线程的开销,不清楚如何进行性能诊断和调优,而这些在写基础软件的时候是必备的技能。大部分Java程序员在刚刚学会Java之后就转向Web开发,把主要精力花费在掌握一个又一个大型的、复杂的、具有厚厚的抽象层和华丽结构的frameworks上,不但对真实计算机体系结构不清楚,对于Java虚拟出来的那个计算环境也不清楚。因此,要把Java开发者编程转变成能够担负起下一代基础软件开发工作的尖兵,不但难度很大,而且必须花费足够的时间。
2、风格的问题。
这个问题我认为是最严重的。基础软件开发崇尚的是自由、直接、透明、简单、高效,反对繁琐华丽的设计,反对架床迭屋的层层抽象,反对复杂的结构和不必要的灵活性。而Java开发者多年来形成的设计风格与此格格不入,甚至可以说是对立的。Java在意识形态上是要面向企业应用软件的开发,所以特别强调架构,强调设计模式,强调标准,强调规规矩矩,强调高姿态,强调一种华贵的宫廷气质。在C中,你需要什么就做什么。而在Java中,你经常为了要干某件事,先new一个对象,然后以这个对象为参数new另一个对象,如此这般重复n遍,得到真正需要的对象,最后就是为了调用那个对象的一个方法。 这套繁琐的东西,对于基础软件开发来说,既不必要,也很难习惯。需要说明的是,这不是Java语言的问题,其实Java本身不必如此复杂、如此巴洛克。从语言本身来看,Java也可以是轻快直接的,也可是酣畅淋漓的。只不过十多年来几乎没有人这样用过,所以大家已经不知道,该怎么用Java写简洁程序?
读过此文之后,自己感触很深,一直以来的困惑终于有别人总结说出来,但是对于我来说,怎么面对这个问题,我应该好好想想。
来源:http://www.blogjava.net/zhongli/archive/2009/02/18/255245.html
分享到:
相关推荐
文章详细阐述了JAVA语言的特点、基本数据类型、对象以及其广泛应用领域。随着互联网(INTERNET)的普及和万维网(WORLD WIDE WEB)的广泛应用,JAVA编程语言因其独特的优势逐渐受到了国际计算机界的广泛关注。 ####...
Java凭借这些优势,在大数据技术的浪潮中占据了一席之地,并且随着大数据技术的不断演进,Java语言的应用范围将会继续扩大,为大数据时代的发展提供强大动力。因此,对Java在大数据开发中应用的研究有着重要的意义,...
游戏软件开发是Java语言应用的另一个热门领域。Java语言在游戏场景优化、游戏人物设计、网络图片和代码快速移植等方面,都有显著的应用价值。Java语言能够优化游戏效果,提升用户体验,让游戏更具吸引力。例如,中国...
Java编程语言在计算机软件开发领域具有重要的地位和广泛的应用,其特点和优势对于提高软件的开发效率、安全性和灵活性方面起到了关键作用。 首先,Java编程语言具有编写结构简单的特点,与C++相比,Java的代码结构...
Java语言的设计目标是简洁、高效和可移植,这使得它在诸多编程语言中脱颖而出,成为开发者的首选。 1. **简单易操作** Java编程语言的一个显著优势是其语言结构清晰,易于理解和使用。与C++等其他语言相比,Java...
4. **大数据处理**:Hadoop、Spark等大数据处理框架大量使用Java,使得Java在数据处理和分析领域发挥着重要作用。 5. **云计算**:许多云平台如OpenShift、Google App Engine等都支持Java,开发者可以利用Java构建...
* 简单性:Java语言和C++语言相比,两者的差异在于Java不支持自动强制、多级继承以及运算符重载等等作用,这是因为Java编程语言在应用时不怎么使用这些作用,而且这些作用使用过程中也会出现相互混淆的情况。...
此外,Java语言的易学易用性是其受到广泛欢迎的另一个原因。Java摒弃了C++语言中一些复杂和难以理解的特性,如多继承和指针,使得学习曲线相对平缓。对于有C++基础的学习者而言,掌握Java会更加容易,且能够快速上手...
此外,JAVA还支持多线程,这意味着可以在一个程序中同时执行多个任务,这对于现代并发处理和大数据应用来说是至关重要的。 在网络编程方面,JAVA提供了强大的支持,可以方便地处理TCP/IP协议,如HTTP、FTP等。这...
总结来说,Java在嵌入式开发中的应用广泛且优势明显,其跨平台性、面向对象特性、丰富的类库和API以及高效的内存管理机制,为开发者提供了强大支持。随着物联网、智能家居等领域的快速发展,Java在嵌入式开发领域的...
描述部分进一步强调了Java语言在软件开发中的重要性,并指出了其显著的优势,包括操作简单、平台独立、灵敏度高、针对性强等特点,同时指出了本文将详细探讨Java语言在软件开发中的具体化应用。标签“Java 程序 ...
本文将深入探讨JAVA在计算机软件开发中的核心价值、特点、应用领域及未来发展趋势。 一、JAVA编程语言的核心特性 1. **跨平台性**:JAVA以其“一次编写,到处运行”的特性闻名,通过Java虚拟机(JVM)实现了不同...
本文将详细阐述Java语言的特点、优势以及在软件开发中的关键技术。 首先,Java语言作为一种面向对象的编程语言,继承了C++的优点,但简化了语法,去除了如多继承和指针等复杂概念,降低了学习和使用的难度。通过...
Java编程语言自1995年发布以来,已经成为全球软件开发领域的主流选择,尤其在企业级应用、云计算、大数据处理、移动应用开发等多个领域占据重要地位。本资料"Java编程语言在计算机软件开发应用中的探究"深入探讨了...
Java语言不仅在传统的桌面应用软件开发中发挥着重要作用,更在互联网、移动应用以及企业级应用等方面展现出了极强的适应性和扩展性。 Java的基本概述 Java语言是一种高级的、面向对象的编程语言,它具有抽象性、...
### Java在网站开发上的优势详解 #### 一、概述 Java作为一款被广泛采用的网络编程语言,在互联网技术不断发展的背景下,其应用范围日益扩大。...随着技术的不断发展,Java将继续在网站开发领域发挥着重要作用。
Java编程语言自20世纪90年代问世以来,迅速成为了软件开发领域不可或缺的工具。它的广泛应用得益于其丰富的类库,目前已有近一千个类库,这极大地...随着技术的不断进步,Java将继续在计算机软件开发领域发挥关键作用。
J2SE提供了一个全面的开发基础,为Java语言的应用程序开发提供了标准的API和技术支持。 J2EE编程技术的关键技术领域包括相关协议、应用程序接口(API技术)、服务(service)。这些关键技术为J2EE编程技术提供了Web...
本篇将深入探讨Java在软件开发中的核心优势、关键特性、应用领域及未来发展。 一、Java的核心优势 1. 平台无关性:Java采用“一次编写,到处运行”的理念,通过Java虚拟机(JVM)实现跨平台兼容,使得开发者无需为...
JAVA编程语言,自1995年发布以来,已经成为全球软件开发领域不可或缺的重要工具,尤其在企业级应用、网络服务、移动应用等方面有着广泛的应用。本文将深入探讨JAVA在计算机软件开发中的核心价值、特点以及它如何推动...