- 1、本文档共252页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
JNI书稿统稿JNI书稿统稿
绪论:用Java还是C
Java语言作为优秀面向对象的语言近几年大放异彩,研究和应用Java语言成为当前国内外一大热门。
Java语言是一个从一出生就受到举世瞩目的编程语言。它的诞生是互联网上和编程世界里意义深刻的一件大事,以至于每一本介绍Java技术的书开始的第一句通常,是“1996年,互联网上发生了一件重要的事情――Java语言诞生了……”或者“Java,20世纪末最重要编程语言……”。从它一出生就被人们寄与巨大的期望,期望它在各种工作中担当重责。事实上五年来,Java也正像人们预期的那样,在网络,多平台应用,多媒体处理甚至无线网,个人电子消费品等领域得到了巨大的应用。可以预见,将来,Java语言一定能够在更大的范围中得到更广范应用。或许,Java将成为21世纪应用最广泛的编程语言。
Java的光明前途勿须质疑,但是它的缺点也不能回避。
一直以来,执行速度缓慢是Java一个最深的痛处。在Java1.1时代,曾有数据表明使用Java编写的程序比使用C语言编写的相同程序慢约30倍。虽然近两年,在Sun,IBM等大公司的努力下,JIT以及Hotspot等虚拟机技术发展很快,这一差距已不是如此大。但是Java的执行速度远不及C这一情况还没有实质性的改变。
因此,很多程序员在一个优秀、先进的语言——Java和一个传统的C语言之间徘徊,不能选择一个真正适合自己,适合应用的开发语言。这种情况已持续了不只一两年。实际上,要在Java和C之间做一个选择太难了。不相信吗?请看一下这个比较。
Java和C的一个比较
互联网上有很多热门问题,比如说Java和C语言到底谁更优秀?几乎每一个Java论坛上都有成叠的有关贴子。这是一个经典的,也是一个不没有答案的问题。历来它为人们争论着,并且仁者见仁,智者见智。有人认为面向底层的C语言有其重要而不可替代的地位,有人认为面向对象的Java有先进而灵活的编程体系,应当成为主流。并且这两派各持一辞,互不相让。
凭心而论,C语言有其过人之处,并且这是不可替代的。它的最优点是速度快,可以进行最低层的操作,而从Java在这方面就表现的差一点。不过从另一个角度来说这也是C的的缺点,要获得高速和对低层的硬件进行操作必须与机器结合的很紧,甚至需要为一些硬件设计特定的C语言实现。这样C及C++的可移植性就变很差,而这正是Java的强项。Java的口号是“一次编写,处处运行”。这意谓着Java程序可以以二进制的形式跨平台移植,这对于C或C++程序来说简直就是天方夜谈。在Java出现以前,C语言的程序是以源代码形式移植,即使这样还是要改写很多的代码。而Java程序可以在Unix平台或者很流行的Linux上编译,然后拿到Windows下执行。有人说,这简直太好了。
但“一次编写,处处运行”并不是Java最大的优点,虽然这是比较明显的一点。Java最大的优点在于它提出的编程结构,即面向对象,可以重入结构,内置多线程。说到底这种编程结构,或者说是编程理念是由Java语言本身的特点和Java运行库共同作用的结果。
只谈这些抽象的概念难以使人信服,下面还是具体了解一下C语言和Java语言它们主要有哪些优点和缺点。
速度
C语言及它的继承者C++语言,都是强类型的,预编译,早编联的编程语言。这类语言很多的运算在编译中完成了,并且生成的是二进制的机器语言文件,可以被处理器直接调用执行。这使C/C++代码生成的程序运行起来非常的快,仅次于直接用二进制机器语言如ASM写成的程序。
/* c语言代码 */
/* File : ch01\test01.c */
/* Object: 演示C语言的编译 */
void invoke(int);
int main(){
int I = 3 ;
int c = I + 5;
invoke(c);
}
void invoke(int n){ n++ }
以上代码编译后可能(不同的编译器可能有不同的解释)等价于:
/* c语言代码 */
/* File : ch01\test02.c */
/* Object: 演示C语言的编译 */
int main(){
int I = 3 ;
int c = 8;
c++;
}
很显然test02.c中代码的执行速度要比test01.c的代码快的多:少了一次加法计算和一次函数调用。当然,在例子test01,test02这样小的程序中,可能还看不出来速度的变化。事实上,在当前的计算机上这种速度的变化小于能够测量的最小值。但是如果在一个很大的程序中,而类似test01和test02的情况很多时,速度变化会很明显。
而Java是面向对象编程语言,它有很多的代码要到执行时才能确定。注意下面代码中粗体字。变量me的值要在运行时才
您可能关注的文档
- java复习1java复习1.doc
- JAVA基础练习题JAVA基础练习题.doc
- java基础面试题答案java基础面试题答案.doc
- JAVA复习题+答案JAVA复习题+答案.doc
- Java复习资料一Java复习资料一.doc
- java实现文件上传java实现文件上传.doc
- JAVA实习生管理系统JAVA实习生管理系统.doc
- java基础测试题(二)java基础测试题(二).doc
- JAVA实习库管理JAVA实习库管理.doc
- java实验二学生java实验二学生.doc
- 甘肃省临夏市2024《一级注册建筑师之建筑物理与建筑设备》考试必背100题完整题库及答案(名师系列).docx
- 冀教版四年级上册数学第七单元 垂线和平行线 测试卷【含答案】.docx
- 甘肃省临夏市2024《一级注册建筑师之建筑物理与建筑设备》考试必背100题完整题库及答案(名师系列).docx
- 甘肃省临夏县整理《一级注册建筑师之建筑物理与建筑设备》考试必刷100题题库带答案(必威体育精装版).docx
- 甘肃省临夏市2024《一级注册建筑师之建筑物理与建筑设备》考试必背100题完整题库及答案(名师系列).docx
- 甘肃省临夏市2024年《一级注册建筑师之建筑物理与建筑设备》资格考试必刷100题真题题库精编答案.docx
- 甘肃省临夏市2024年《一级注册建筑师之建筑物理与建筑设备》资格考试大全及完整答案.docx
- 甘肃省临夏市2024年《一级注册建筑师之建筑物理与建筑设备》资格考试必刷100题完整题库带答案下载.docx
- 甘肃省临夏市2024年《一级注册建筑师之建筑物理与建筑设备》考试题库大全(名校卷).docx
- 甘肃省临夏市2024年《一级注册建筑师之建筑物理与建筑设备》资格考试必背100题及参考答案(突破训练.docx
文档评论(0)