1.免费!
Sun(虽然现在已被甲骨文收购但我还是喜欢说Sun)免费提供用来开发Java应用程序的一切,你不必付任何的版税。或许你会将信将疑:资本家搞共产了?实际上,Sun在Java上的收益确实不大,远远比不过垄断Java应用服务器技术的IBM和BEA公司,似乎有替别人做嫁衣之嫌。对此,Sun董事长、总裁兼首席执行官Scott McNealy是这样解释的:“Sun并没有用Java赚钱,这就像使用英语不用上税一样,Sun并不通过Java本身来盈利,而是把Java应用到了业务中。”原来是放长线钓大鱼!
与Java本身相比,Java API更是可贵的免费财富。想使用Socket操作网络?API中有;想连接到SQL数据库?API中有;想给应用程序一个漂亮的用户界面?API中有;想要处理数字图形、播放音乐、解析字符串或者创建数字签名?API中全都有。
最后,Java发展了那么多年,优秀的Java教程、技术网站数不胜数。Bruce Eckel大师的名作Java编程思想(Thinking in java)更是不可不读的佳作,许多狂热爱好者甚至把它当做圣经一样一页一页仔细揣摩。
或许你会问,有了那么多优秀的教程,还要你这个Java咖啡馆干什么呢?虽然那些教程和技术文章是如此优秀,但并不适合初学者。Java咖啡馆目的就在于帮助你打好Java技术的基础,掌握Java技术的主要脉络,帮助你迈出进入Java世界的第一步!
2.跨平台
“一次编写,随处运行”,Java系统可以运行在不同的操作系统和硬件上。随着Linux的持续增长以及Mac OSX完全支持Java技术,跨平台的特性变得越来越有分量。
由于Java跨平台,Java API自然也是平台统一的。对程序员而言,没有比统一的API函数能够让他们更欣慰的了——已经有了圆形的轮子,何必再从头发明轮子呢?我们拿Java API与C++的类库相比便可以知道它的可贵之处。有Windows编程经验的C++程序员肯定经历过被MFC(Microsoft Foundation Classes,微软基类库)折磨的日子,学习曲线陡峭,没有若干个月根本无法开始生产,一段时间不接触遗忘率又高。据说,即使在微软公司内部,除了 MFC开发小组,谁都不乐意用它。即便你熟悉了MFC,能够顺利开发Windows应用程序,如果你要编写一个Linux应用程序,MFC又派不上用场了,你必须学习Linux下C++开发的一套库函数。还有UNIX、FreeBSD、Mac OS……你学得过来吗?反观Java API,操作系统,你爱谁是谁,只要编写一次便可随处运行!
3.移动应用
这是Java技术目前最活跃的另一个领域,旨在提供更多、更方便的个性化服务的Java手机应用。未来几年内,势必将出现移动通讯运营商和移动设备应用软件的巨大商机和激烈竞争,并且该趋势很可能与电子政务、电子商务等其他发展相互影响。Java在手机市场的专有性和Java本身的开放性和标准性,使得越来越多的企业加入了Java阵营。
中国也不例外。2003年James Gosling博士首次来到中国,其中重要的一项工作便是与中国联通结盟。
黄糖故事
Java之父——James Gosling博士
James Gosling博士以“Java技术之父”闻名于世。他是Java技术的创始人,作为Sun研究院院士,亲手设计了Java语言,完成了Java技术的原始编译器和虚拟机。在他的带领下,Java现已成为互联网的标准编程模式以及分布式企业级应用的事实标准,其跨平台的技术优势为网络计算带来了划时代的变革。目前,Gosling博士积极致力于软件开发工具的研究,以使软件开发工具的功能更强大,更容易为开发人员所使用,确保应用、服务开发的迅速完成。
4.开源组织或者非盈利机构的支持
开源组织是无政府主义的梦想——没有政体,没有所属权,言论与行动自由,仅仅依靠渴望共享与交流的信仰及无私奉献来维系。Java世界中,开源组织与非盈利机构发挥到了极致,许多出色的工具都出自它们之手。比如JUnit、Cactus、Tomcat、Struts、JBoss、 Eclipse、ANT、Xerces、Hibernate、Axis、AspectJ等等,许多工具还会出现在我们的咖啡馆中,扮演重要的角色。
Java世界中,便宜无好货绝对不成立,这些工具拥有足以和商业软件媲美的质量,很多商业IDE还集成了这些工具。对Java程序员而言,生活不单单会变得轻松,更重要的,你能够看到希望,有为大家贡献自己力量的机会!
5.简单易学
与C++等语言相比较,语法上Java是简单的。
谢天谢地,Java提供了垃圾回收机制。以往C++的开发中,最容易出错误的地方便是内存管理,申请的内存用完以后必须释放,否则可使用的内存资源越来越少,直至耗尽系统资源而造成死机。而Java系统中,你可以任意申请内存,Java系统会在适当的时候自动释放无用的内存资源。这个神奇的机制叫做“垃圾回收”,节约了许多调试错误的时间。
在Java中,要写出低劣的代码也不是一件容易的事情。一方面,垃圾回收机制堵住了内存泄漏的可能性,另一方面就是异常捕捉机制,它强迫你做最坏的打算。编写程序时,难免会遇到一些意外,比如文件无法打开、网络读取失败等特殊情况。在C++等语言中是依靠返回值来判断的,如果