APP下载

浅论Java语言应用研究

2011-12-31田亮

中国新技术新产品 2011年23期
关键词:C语言开发者内存

田亮

(杭州师范大学钱江学院,浙江 杭州 310012)

1 Java语言的特点与优势

1.1 平台无关

平台无关是指Java能运行于不同的平台。Java引进虚拟机原理,并运行于虚拟机,实现不同平台的Java接口之间。使用Java编写的程序能在世界范围内共享。Java的数据类型与机器无关,Java虚拟机(Java Virtual Machine)是建立在硬件和操作系统之上,实现Java二进制代码的解释执行功能,提供于不同平台的接口的。

1.2 安全

Java的编程类似C++,学习过C++的读者将很快掌握Java的精髓。Java舍弃了C++的指针对存储器地址的直接操作,程序运行时,内存由操作系统分配,这样可以避免病毒通过指针侵入系统。Java对程序提供了安全管理器,防止程序的非法访问。

1.3 面向对象

Java吸取了C++面向对象的概念,将数据封装于类中,利用类的优点,实现了程序的简洁性和便于维护性。类的封装性、继承性等有关对象的特性,使程序代码只需一次编译,然后通过上述特性反复利用。

1.4 分布式

Java建立在扩展TCP/IP网络平台上。库函数提供了用HTTP和FTP协议传送和接受信息的方法。这使得程序员使用网络上的文件和使用本机文件一样容易。

1.5 应变能力

Java致力于检查程序在编译和运行时的错误。类型检查帮助检查出许多开发出现的错误。Java自己操纵内存减少了内存出错的可能性。Java还实现了真数组,避免了覆盖数据的可能,这些功能特征大大提高了开发Java应用程序的周期。并且Java还提供了Null指针检测、数组边界检测、异常出口、Byte code校验等功能。

2 Java语言的四大应用领域

Java技术自1995年问世以来,在我国的应用和开发也得到了迅速普及,总体来看,这些应用主要集中于企业应用开发。据有关单位调查显示,从开发领域的分布情况上看Web开发占了一半以上,为57.9%,JavaME移动或嵌入式应用占15%,C/S应用占11.7%,系统编程占15.4%。近30%的开发者用Java从事C/S应用或系统级应用的开发。在桌面应用上,尽管Java在桌面GUI方面尚有不尽如人意之处,但仍然有很多开发者用来开发运行在多种操作系统平台上的桌面应用。具体应用在如下几个领域。

2.1 行业和企业信息化

由于 Sun、IBM、Oracle、BEA 等国际厂商相继推出各种基于Java技术的应用服务器以及各种应用软件,带动了Java在金融、电信、制造等领域日益广泛的应用。如清华大学计算机系利用Java、XML和Web技术研制开发了多个软件平台,东方科技的Tong Web、金碟的Apusic、中创的Inforweb等J2EE应用服务器及和佳ERP和宝信ERP等ERP产品,已在许多企业得到应用。

2.2 电子政务及办公自动化

东方科技、金碟、中创等开发的J2EE应用服务器在电子政务及办公自动化中也得到应用:如金碟的Apusic在民政部、广东省市工商局应用;东软电子政务架构EAP平台在社会保险、公检法、税务系统得到应用;中创的Inforweb等Infor系列中间件产品在国家海事局、政府机关、银行等金融系统应用;基于Java平台开发的国产化集成办公软件"Office"也已在一些省市政府部门得到应用。

2.3 嵌入式设备及消费类电子产品

无线设备、通信终端、医疗设备、信息家电(如数字电视、机顶盒、电冰箱)、汽车电子设备等是今年以来比较热门的Java应用领域。在这方面的应用有中国联通CDMA 1X网络中基于Java技术的无线数据增值服务。

2.4 辅助教学

在辅助教学方面,东南大学与中兴通讯公司开发了远程教学系统,用于本地网上教学、课后学习和异地远程教育,清华大学用Java进行了"计算机软件基础课"教学改革,分析研究Java教学软件的汉化方案,电子科技大学应用Java RMI技术进行远程教育,西安电力高等专科学校采用Java技术,开发了交互式电站仿真系统,实现电站锅炉仿真、锅炉膛火焰仿真,为实现网上仿真进行有益探索。

3 Java开发注意事项

3.1 政府主管部门要把Java技术及应用作为落实“十二五”软件及信息产业发展规划的重要环节,继续支持开发有自主版权的软件产品,支持建立Java技术产品评测中心,加强对相关产品的质量监管。

3.2 各行业主管部门及行业协会应积极组织软件企业开发基于Java的行业应用软件,有条件的可以建立行业软件组件库,这是防止低水平重复开发,加快国产软件商品化、产业化的有效办法。

3.3 通过学会、协会与有关企业合作,继续组织各种类型的Java技术合作及科普活动。

3.4 建立Java社区及Java网站,采用多种途径加强Java的宣传教育培训与人才培养。

4 JAVA与C语言对比

4.1 速度。JAVA的执行速度在JDK1.4的时候达到了这样一个水平,就是对于一个一般水平的开发者来说,C++程序已经不再比对等的JAVA程序跑得更快了。随后的JDK 5.0和6.0进一步提高了执行性能,由不同的组织举行的多项评测结果表明,JAVA与C语言的整体执行效率差距在一倍以内,也就是说,素以速度著称、并且为了速度放弃了很多东西的C语言,现在比装备齐全的JAVA只快不到一倍了。这还不算,如果考虑到新的计算环境,C语言的速度优势有可能仅仅是一个错觉。因为,世界上只有很少的人有能力在多CPU计算平台上用C语言写出又快又正确的大程序,在这些人中间,又只有很少的人有能力用C语言写出一个在大型的、异构的网络环境下能够充分发挥各节点计算能力的大规模并行程序。

4.2 功能。C语言调试错误时间很长,特别是内存方面的错误。大部分用C写的上规模的软件都存在一些内存方面的错误,需要花费大量的时间把产品稳定下来。这还没有把安全方面的缺陷考虑在内,现在大部分的开发者在代码安全方面的知识都很薄弱,安全漏洞在代码中相当普遍,而在C语言中,这一不足格外明显。最大的挑战或许得说是并发问题了,并发是一个很复杂的问题,需要在相当高的抽象层面上解决,而C语言的抽象机制过于简单,提供不了高层的抽象,因此在开发者只能从一些"并发原语"出发去构造并发程序,这跟用铅笔刀锯大树没什么分别,直截了当地说,大部分C程序员根本没有能力编写高效无缺陷的并发程序。用C语言写单机、单线程的,不会遭到外界攻击的,在时间预算上没有什么压力,而且用户能够忍受一个很长的产品稳定期的应用程序方面非常有经验。但是,市场环境和计算环境已经完全变化。面对更复杂的计算环境,用C语言来编写高质量的大规模软件,是只有真正的专家团队才能完成的工作。相比之下,JAVA在抽象机制、基础设施、安全和并发方面,与C语言对比,有优势。

[1]林胜利,路宗强,王坤茹等.Java智能卡开发关键技术与实例[M].北京.中国铁道出版社.2006.

[2]李卓玲.Java程序设计实用教程[M].大连:大连理工大学出版社,2003.

猜你喜欢

C语言开发者内存
外部高速缓存与非易失内存结合的混合内存体系结构特性评测
基于Visual Studio Code的C语言程序设计实践教学探索
“春夏秋冬”的内存
基于C语言的计算机软件编程
高职高专院校C语言程序设计教学改革探索
iOS开发者调查
iOS开发者调查
论子函数在C语言数据格式输出中的应用
栝楼产业开发者谢献忠
基于内存的地理信息访问技术