前言
2011年7月28日,Oracle如约发布了Java 7正式版。从Java 6到Java 7,广大开发者经过了漫长的等待,新发布的Java 7基本满足了广大开发者的渴望:Java 7加入了不少新特性,这些新特性进一步增强了Java语言的功能。
为了向广大工作者、学习者介绍最新、最前沿的Java知识,在Java 7正式发布之前,笔者已经深入研究过Java 7绝大部分可能新增的功能;当Java 7正式发布之后,笔者在第一时间开始了《疯狂Java讲义》的升级:使用Java 7改写了全书所有程序,全面介绍了Java 7的各种新特性。
在以“疯狂Java体系”图书为教材的疯狂软件教育中心(www.fkjava.org)里,经常有学生询问:为什么叫疯狂Java这个名字?也有一些读者通过网络、邮件来询问这个问题。其实这个问题的答案可以在本书第1版的前言中找到。疯狂的本质是一种“享受编程”的状态。在一些不了解编程的人看来:编程的人总面对着电脑、在键盘上敲打,这种生活实在太枯燥了,但实际上是因为他们并未真正了解编程,并未真正走进编程。在外人眼中:程序员不过是在敲打键盘;但在程序员心中:程序员敲出的每个字符,都是程序的一部分。
程序是什么呢?程序是对现实世界的数字化模拟。开发一个程序,实际是创造一个或大或小的“模拟世界”。在这个过程中,程序员享受着“创造”的乐趣,程序员沉醉在他所创造的“模拟世界”里:疯狂地设计、疯狂地编码实现。实现过程不断地遇到问题,然后解决它;不断地发现程序的缺陷,然后重新设计、修复它——这个过程本身就是一种享受。一旦完全沉浸到编程世界里,程序员是“物我两忘”的,眼中看到的、心中想到的,只有他正在创造的“模拟世界”。
在学会享受编程之前,编程学习者都应该采用“案例驱动”的方式,学习者需要明白程序的作用是:解决问题——如果你的程序不能解决你自己的问题,如何期望你的程序去解决别人的问题呢?那你的程序的价值何在?——知道一个知识点能解决什么问题,才去学这个知识点,而不是盲目学习!因此本书强调编程实战,强调以项目激发编程兴趣。
仅仅是看完这本书,你不会成为高手!在编程领域里,没有所谓的“武林秘籍”,再好的书一定要配合大量练习,否则书里的知识依然属于作者,而读者则仿佛身入宝山而一无所获的笨汉。本书配合了大量高强度的练习,希望读者强迫自己去完成这些项目。这些习题的答案可以参考本书所附光盘中《疯狂Java实战演义》的配套代码。如果需要获得编程思路和交流,可以登录http://www.crazyit.org与广大读者和笔者交流。
本书第1版面市的近3年时间里,几万读者已经通过本书步入了Java编程世界,这些读者的肯定、赞誉让笔者感到十分欣慰。也有不少读者给予本书一些很好的建议,因此笔者在创作第2版时对部分章节进行了一些小调整,希望这种调整能让本书日臻完善。
笔者非常欢迎所有热爱编程、愿意推动中国软件业的学习者、工作者对本书提出宝贵的意见,非常乐意与大家交流。中国软件业还处于发展阶段,所有热爱编程、愿意推动中国软件业的人应该联合起来,共同为中国软件行业贡献自己的绵薄之力。
本书有什么特点
本书并不是一本简单的Java入门教材,也不是一门“闭门造车”式的Java读物。本书来自于笔者6年多的Java培训经历,凝结了笔者近6000小时的授课经验,总结了上千个Java学员学习过程中的典型错误。
因此,本书具有如下三个特点:
1.案例驱动,引爆编程激情
本书不再是知识点的铺陈,而是致力于将知识点融入实际项目的开发中,所以本书中涉及了大量Java案例:仿QQ的游戏大厅、MySQL企业管理器、仿EditPlus的文本编辑器、多线程、断点下载工具……希望读者通过编写这些程序找到编程的乐趣。
2.再现李刚老师课堂氛围
本书的内容是笔者6年多授课经历的总结,知识体系取自疯狂Java实战的课程体系。
本书力求再现笔者的课堂氛围:以浅显比喻代替乏味的讲解,以疯狂实战代替空洞的理论。
书中包含了大量“注意”、“学生提问”部分,这些正是上千个Java学员所犯错误的汇总。
3.注释详细,轻松上手
为了降低读者阅读的难度,书中代码的注释非常详细,几乎每两行代码就有一行注释。不仅如此,本书甚至还把一些简单理论作为注释穿插到代码中,力求让读者能轻松上手。
本书所有程序中关键代码以粗体字标出,也是为了帮助读者能迅速找到这些程序的关键点。
本书写给谁看
如果你仅仅想对Java有所涉猎,那么本书并不适合你;如果你想全面掌握Java语言,并使用Java来解决问题、开发项目,或者希望以Java编程作为你的职业,那么本书将非常适合你。希望本书能引爆你内心潜在的编程激情,如果本书能让你产生废寝忘食的感觉,那笔者就非常欣慰了。
2011-12-17