- 1、本文档共252页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
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
- 场地脚手架工程施工方案(3篇).docx
- 2024年浙江省丽水市松阳县玉岩镇招聘社区工作者真题及参考答案详解一套.docx
- 2024年河南省郑州市惠济区古荥镇招聘社区工作者真题及答案详解一套.docx
- 2024年浙江省杭州市淳安县文昌镇招聘社区工作者真题及完整答案详解1套.docx
- 2024年浙江省台州市三门县小雄镇招聘社区工作者真题带答案详解.docx
- 2024年浙江省宁波市余姚市河姆渡镇招聘社区工作者真题及完整答案详解1套.docx
- 2024年浙江省丽水市景宁畲族自治县雁溪乡招聘社区工作者真题及答案详解一套.docx
- 2024年浙江省杭州市临安市板桥乡招聘社区工作者真题及答案详解一套.docx
- 2024年湖北省宜昌市点军区土城乡招聘社区工作者真题及答案详解一套.docx
- 2024年浙江省台州市路桥区桐屿街道招聘社区工作者真题附答案详解.docx
最近下载
- 新人教版高中物理必修第一册学案:2.2匀变速直线运动的速度与时间的关系.doc VIP
- 新生儿低氧血症的常规管理PPT课件.pptx VIP
- 高考英语句子成分及句子基本结构(共32张PPT).pptx VIP
- 药物成瘾教案.ppt VIP
- 广东省广州市五校2022-2023学年高一下学期期末联考物理试卷及参考答案.pdf VIP
- 海砂混凝土工程施工方案(3篇).docx VIP
- 2024年湖北省执业药师继续教育处方审核—中西药联合用药(3)答案.docx VIP
- 冷热疗法的效应.ppt VIP
- 卫生院优质服务基层行创建资料(4.8.1 信息公开).docx VIP
- 呼吸衰竭病人护理查房.pptx VIP
文档评论(0)