天天看点

Java核心技术卷I基础知识1.5 关于Java的常见误解

<b>1.5 关于java的常见误解</b>

在结束本章之前,我们列出了一些关于java的常见误解,同时给出了解释。

1.?java是html的扩展

java是一种程序设计语言;html是一种描述网页结构的方式。除了用于在网页上放置java applet的html扩展之外,两者没有任何共同之处。

2.?使用xml,所以不需要java

java是一种程序设计语言;xml是一种描述数据的方式。可以使用任何一种程序设计语言处理xml数据,而java api对xml处理提供了很好的支持。此外,许多重要的第三方xml工具采用java编写。有关这方面更加详细的信息请参看卷Ⅱ。

3.?java是一种非常容易学习的程序设计语言

像java这种功能强大的语言大都不太容易学习。首先,必须将编写玩具式程序的轻松和开发实际项目的艰难区分开来。需要注意的是:本书只用了7章讨论java语言。在两卷中,其他的章节介绍如何使用java类库将java语言应用到实际中去。java类库包含了数千种类和接口以及数万个函数。幸运的是,并不需要知道它们中的每一个,然而,要想java解决实际问题,还是需要了解不少内容的。

4.?java将成为适用于所有平台的通用性编程语言

从理论上讲,这是完全有可能的。但在实际中,某些领域其他语言有更出色的表现,比如,objective c和后来的swift在ios设备上就有着无可取代的地位。浏览器中的处理几乎完全由javascript掌控。windows程序通常都用c++或c#编写。java在服务器端编程和跨平台客户端应用领域则很有优势。

5.?java只不过是另外一种程序设计语言

java是一种很好的程序设计语言,很多程序设计人员喜欢java胜过c、c++或c#。有上百种好的程序设计语言没有广泛地流行,而带有明显缺陷的语言,如:c++和visual basic却大行其道。

这是为什么呢?程序设计语言的成功更多地取决于其支撑系统的能力,而不是优美的语法。人们主要关注:是否提供了易于实现某些功能的易用、便捷和标准的库?是否有开发工具提供商能建立强大的编程和调试环境?语言和工具集是否能够与其他计算基础架构整合在一起?java的成功源于其类库能够让人们轻松地完成原本有一定难度的事情。例如:联网web应用和并发。java减少了指针错误,这是一个额外的好处,因此使用java编程的效率更高。但这些并不是java成功的全部原因。

6.?java是专用的,应该避免使用

最初创建java时,sun为销售者和最终用户提供了免费许可。尽管sun对java拥有最终的控制权,不过在语言版本的不断发展和新库的设计过程中还涉及很多其他公司。虚拟机和类库的源代码可以免费获得,不过仅限于查看,而不能修改和再发布。java是“闭源的,不过可以很好地使用”。

这种状况在2007年发生了戏剧性的变化,sun声称java未来的版本将在general public license(gpl)下提供。linux使用的是同一个开放源代码许可。oracle一直致力于保持java开源。只有一点美中不足——专利。根据gpl,任何人都可以得到专利许可,允许其使用和修改java,不过仅限于桌面和服务器平台。如果你想在嵌入式系统中使用java,就需要另外一个不同的许可,这很可能需要付费。不过,这些专利在未来十年就会到期,那时java就完全免费了。

7.?java是解释型的,因此对于关键的应用程序速度太慢了

早期的java是解释型的。现在java虚拟机使用了即时编译器,因此采用java编写的“热点”代码其运行速度与c++相差无几,有些情况下甚至更快。

对于java桌面应用速度慢,人们已经抱怨很多年了。但是,今天的计算机速度远比人们发出抱怨的时候快了很多。一个较慢的java程序与几年前相当快的c++程序相比还要快一些。

8.?所有的java程序都是在网页中运行的

所有的java applet都是在网页浏览器中运行的。这也恰恰是applet的定义,即一种在浏览器中运行的java程序。然而,大多数java程序是运行在web浏览器之外的独立应用程序。实际上,很多java程序都在web服务器上运行并生成用于网页的代码。

9.?java程序是主要的安全风险

对于早期的java,有过关于安全系统失效的报道,曾经一度引起公众哗然。研究人员将这视为一种挑战,即努力找出java的漏洞,对applet安全模型的强度和复杂度发起挑战。随后,人们很快就解决了引发问题的所有技术因素。后来又发现了更严重的漏洞,而sun以及后来的oracle反应却过于迟缓。浏览器制造商则有些反应过度,他们甚至默认禁用了java。客观地来讲,可以想想针对windows可执行文件和word宏有数百万种病毒攻击,并造成了巨大的损害,不过奇怪的是却很少有人批评被攻击平台的脆弱。

有些系统管理员甚至在公司浏览器中禁用了java,而同时却允许用户下载可执行文件和word文档,实际上,这些带来的风险远甚于使用java。尽管距离java诞生已经20年之久,与其他常用的执行平台相比,java还是安全得多。

10.?javascript是java的简易版

javascript是一种在网页中使用的脚本语言,它是由netscape发明的,原来的名字叫做livescript。javascript的语法类似java,除此之外,两者无任何关系。当然,名字有些相像。javascript的一个子集已经标准化为ecma-262。与java applet相比,javascript更紧密地与浏览器集成在一起。特别是javascript程序可以修改正在显示的文档,而applet只能在有限的区域内控制外观。

11.?使用java可以用廉价的internet设备取代桌面计算机

当java刚刚发布的时候,一些人打赌:肯定会有这样的好事情发生。一些公司已经生产出java网络计算机的原型,不过用户还不打算放弃功能强大而便利的桌面计算机,而去使用没有本地存储而且功能有限的网络设备。当然,如今世界已经发生改变,对于大多数最终用户,常用的平台往往是手机或平板电脑。这些设备大多使用安卓平台,这是java的衍生产物。学习java编程肯定也对android编程很有帮助。