疯狂Java讲义
基本信息
编辑推荐
畅销书《Struts 2权威指南》作者李刚又一力作,来自作者3年的Java培训经历,凝结了作者近3000个小时的授课经验,总结了几百个Java学员学习过程中的典型错误。.
1.案例驱动,引爆编程激情..
2.再现李刚老师课堂氛围
3.注释详细,轻松上手...
推荐阅读
内容简介回到顶部↑
从2000年至今,java语言一直是应用最广的开发语言,并拥有最广泛的开发人群。如今,java已经不再简单地是一门语言,它更像一个完整的体系,一个系统的开发平台。更甚至,它被延伸成一种开源精神。
本书深入介绍了java编程的相关方面,全书内容覆盖了java的基本语法结构、java的面向对象特征、java集合框架体系、java泛型、异常处理、java gui编程、jdbc数据库编程、java注释、java的io流体系、java多线程编程、java网络通信编程和java反射机制。共覆盖了java.awt、java.lang、java.io和java.nio、java.sql、java.text、java.util、javax.swing包下绝大部分类和接口。
本书并不单纯从知识角度来讲解java,而是从解决问题的角度来介绍java语言,所以本书中介绍了大量实用案例开发:五子棋游戏、梭哈游戏、仿qq的游戏大厅、mysql企业管理器、仿editplus的文本编辑器、多线程、断点下载工具、spring框架的ioc容器……这些案例既能让读者巩固每章的知识,又可以让读者学以致用、激发编程自豪感,进而引爆内心的编程激情。本书光盘里包含书中所有示例的代码,如果读者希望获得课后练习的程序代码。
本书为所有打算深入掌握java编程的读者而编写,适合各种层次的java学习者和工作者阅读,也适合作为大学教育、培训机构的java教材。但如果只是想简单涉猎java,则本书过于庞大,不适合阅读。
本书深入介绍了java编程的相关方面,全书内容覆盖了java的基本语法结构、java的面向对象特征、java集合框架体系、java泛型、异常处理、java gui编程、jdbc数据库编程、java注释、java的io流体系、java多线程编程、java网络通信编程和java反射机制。共覆盖了java.awt、java.lang、java.io和java.nio、java.sql、java.text、java.util、javax.swing包下绝大部分类和接口。
本书并不单纯从知识角度来讲解java,而是从解决问题的角度来介绍java语言,所以本书中介绍了大量实用案例开发:五子棋游戏、梭哈游戏、仿qq的游戏大厅、mysql企业管理器、仿editplus的文本编辑器、多线程、断点下载工具、spring框架的ioc容器……这些案例既能让读者巩固每章的知识,又可以让读者学以致用、激发编程自豪感,进而引爆内心的编程激情。本书光盘里包含书中所有示例的代码,如果读者希望获得课后练习的程序代码。
本书为所有打算深入掌握java编程的读者而编写,适合各种层次的java学习者和工作者阅读,也适合作为大学教育、培训机构的java教材。但如果只是想简单涉猎java,则本书过于庞大,不适合阅读。
作译者回到顶部↑
目录回到顶部↑
第1章 java概述
1.1 java语言的发展简史
1.2 java的竞争对手及各自优势
1.2.1 c#简介和优势
1.2.2 ruby简介和优势
1.2.3 python的简介和优势
1.3 java程序运行机制
1.3.1 高级语言的运行机制
1.3.2 java程序的运行机制和jvm
1.4 开发java的准备
1.4.1 安装jdk
学生提问:不是说jvm是运行java程序的虚拟机吗?那jre和jvm的关系是怎样的呢?
学生提问:为什么不安装公共jre系统呢?
1.4.2 设置path环境变量
学生提问:为什么选择设置用户变量,用户变量和系统变量有什么区别呢?
1.5 第一个java程序
1.5.1 编辑java源代码
1.5.2 编译java程序
学生提问:当我们使用编译c程序时,不仅需要指定存放目标文件的位置,也需要指定目标文件的文件名,这里使用javac编译java程序时怎么不需要指定目标文件的文件名呢?
1.5.3 运行java程序
1.1 java语言的发展简史
1.2 java的竞争对手及各自优势
1.2.1 c#简介和优势
1.2.2 ruby简介和优势
1.2.3 python的简介和优势
1.3 java程序运行机制
1.3.1 高级语言的运行机制
1.3.2 java程序的运行机制和jvm
1.4 开发java的准备
1.4.1 安装jdk
学生提问:不是说jvm是运行java程序的虚拟机吗?那jre和jvm的关系是怎样的呢?
学生提问:为什么不安装公共jre系统呢?
1.4.2 设置path环境变量
学生提问:为什么选择设置用户变量,用户变量和系统变量有什么区别呢?
1.5 第一个java程序
1.5.1 编辑java源代码
1.5.2 编译java程序
学生提问:当我们使用编译c程序时,不仅需要指定存放目标文件的位置,也需要指定目标文件的文件名,这里使用javac编译java程序时怎么不需要指定目标文件的文件名呢?
1.5.3 运行java程序
前言回到顶部↑
Java语言赢得了前所未有的成功:从2001年到2007年,Java语言一直是世界上应用最广泛的编程语言,因此现在有越来越多的工作者、学习者正努力进入Java领域或将要努力进入Java领域。.
为了帮助广大工作者、学习者能真正掌握Java编程,感受到Java语言的魅力,领会到Java编程的快乐,笔者根据近3年来的Java授课经验,精心编写了本书。
当笔者开始写作本书之前,已经接触了非常多刚刚毕业的大学生,他们告诉笔者:之所以选择编程,仅仅是想找一份工作。笔者问他们,不喜欢编程吗?他们回答: 编程有什么乐趣?还不就是写1 + 2 + 3 + … + 100=?……这样的程序。于是笔者知道了:他们误解了程序。于是笔者告诉他们:如果我来上C语言,至少讲到可以编写出一个简单的游戏外挂,如果再深入一点,可以结合操作系统理论,编写一个操作系统的雏形——这才叫写程序。
程序的作用是:解决问题——如果你的程序不能解决你自己的问题,如何期望你的程序去解决别人的问题呢?那你的程序的价值何在?所以笔者认为:最好的学习方法就是“案例驱动”——知道为什么要用这个知识点,才去学这个知识点,而不是盲目学习!因此本书强调编程实战,强调以项目激发编程兴趣。
在笔者的授课过程中,几乎所有学习好的学生都有过通宵的经历,没有人逼迫、要求他们,只因为他们无法抗拒编程的诱惑——这也是笔者后来创立疯狂Java实训营实战的直接缘由。其实每个能在编程领域里小有所得的人,都曾有过通宵达旦的经历,否则很难成为一个优秀的程序员。有人可能会觉得,通宵达旦太辛苦了——但烈日下挥汗如雨地打球苦不苦?废寝忘食地玩游戏的人苦不苦?他们自然乐在其中!同理,对于疯狂的程序员而言,通宵达旦地编程、调试并不是苦,而是一种享受。如果读者早一天经历这种境界,那就会早一天打开编程的心窍。
笔者不想告诉你:看完这本书你会成为高手!在编程领域里,没有所谓的“武林秘笈”,再好的书一定要配合大量练习,否则书里的知识依然属于作者,而读者则仿佛身入宝山而一无所获的笨汉。所以本书配合了大量高强度的练习,希望读者强迫自己去完成这些项目。这些习题的答案可以登录http://www.crazyit.org/站点下载。
本书将一如既往地保持笔者既有的风格:简单。有一封读者来信让笔者记忆很深刻,他告诉笔者:相对有些人喜欢“深奥”的图书相比,他更喜欢“简单”的IT图书,“简单”的东西很清晰,明确,下一步该怎么做,为什么这样做,一切都清清楚楚,无须任何猜测、想象——正好符合计算机哲学:0就是0,1就是1,中间没有任何回旋的余地。他的来信非常符合笔者的观点:IT图书应该是简单的、易懂的,学完之后可以带来提高,能产生效益的图书。本书正是如此,读者阅读本书时会感觉很浅显,但读完后能开发的程序又非常实用。
本书有什么特点
本书并不是一本简单的Java入门教材,也不是一门“闭门造车”式的Java读物。本书来自于笔者近3年的Java培训经历,凝结了笔者近3000个小时的授课经验,总结了几百个Java学员学习过程中的典型错误。
因此,本书具有如下三个特点:
1.案例驱动,引爆编程激情
本书不再是知识点的铺陈,而是致力于将知识点融入实际项目的开发,所以本书中涉及了大量Java案例:仿QQ的游戏大厅、MySQL企业管理器、仿EditPlus的文本编辑器、多线程、断点下载工具……希望读者通过编写这些程序找到编程的乐趣。
2.再现李刚老师课堂氛围
本书的内容是笔者近3年授课经历的总结,知识体系取自李刚疯狂Java实战课程体系。
本书力求再现笔者的课堂氛围:以浅显比喻代替乏味的讲解,以疯狂实战代替空洞的理论。
书中包含了大量“注意”、“学生提问”部分,这些正是几百个Java学员所犯错误的汇总。
3.注释详细,轻松上手
为了降低读者阅读的难度,书中代码的注释非常详细,几乎每两行代码就有一行注释。不仅如此,本书甚至还把一些简单理论作为注释穿插到代码中,力求让读者能轻松上手。
本书所有程序中关键代码以粗体字标出,也是为了帮助读者能迅速找到这些程序的关键点。
衷心感谢
为了帮助广大工作者、学习者能真正掌握Java编程,感受到Java语言的魅力,领会到Java编程的快乐,笔者根据近3年来的Java授课经验,精心编写了本书。
当笔者开始写作本书之前,已经接触了非常多刚刚毕业的大学生,他们告诉笔者:之所以选择编程,仅仅是想找一份工作。笔者问他们,不喜欢编程吗?他们回答: 编程有什么乐趣?还不就是写1 + 2 + 3 + … + 100=?……这样的程序。于是笔者知道了:他们误解了程序。于是笔者告诉他们:如果我来上C语言,至少讲到可以编写出一个简单的游戏外挂,如果再深入一点,可以结合操作系统理论,编写一个操作系统的雏形——这才叫写程序。
程序的作用是:解决问题——如果你的程序不能解决你自己的问题,如何期望你的程序去解决别人的问题呢?那你的程序的价值何在?所以笔者认为:最好的学习方法就是“案例驱动”——知道为什么要用这个知识点,才去学这个知识点,而不是盲目学习!因此本书强调编程实战,强调以项目激发编程兴趣。
在笔者的授课过程中,几乎所有学习好的学生都有过通宵的经历,没有人逼迫、要求他们,只因为他们无法抗拒编程的诱惑——这也是笔者后来创立疯狂Java实训营实战的直接缘由。其实每个能在编程领域里小有所得的人,都曾有过通宵达旦的经历,否则很难成为一个优秀的程序员。有人可能会觉得,通宵达旦太辛苦了——但烈日下挥汗如雨地打球苦不苦?废寝忘食地玩游戏的人苦不苦?他们自然乐在其中!同理,对于疯狂的程序员而言,通宵达旦地编程、调试并不是苦,而是一种享受。如果读者早一天经历这种境界,那就会早一天打开编程的心窍。
笔者不想告诉你:看完这本书你会成为高手!在编程领域里,没有所谓的“武林秘笈”,再好的书一定要配合大量练习,否则书里的知识依然属于作者,而读者则仿佛身入宝山而一无所获的笨汉。所以本书配合了大量高强度的练习,希望读者强迫自己去完成这些项目。这些习题的答案可以登录http://www.crazyit.org/站点下载。
本书将一如既往地保持笔者既有的风格:简单。有一封读者来信让笔者记忆很深刻,他告诉笔者:相对有些人喜欢“深奥”的图书相比,他更喜欢“简单”的IT图书,“简单”的东西很清晰,明确,下一步该怎么做,为什么这样做,一切都清清楚楚,无须任何猜测、想象——正好符合计算机哲学:0就是0,1就是1,中间没有任何回旋的余地。他的来信非常符合笔者的观点:IT图书应该是简单的、易懂的,学完之后可以带来提高,能产生效益的图书。本书正是如此,读者阅读本书时会感觉很浅显,但读完后能开发的程序又非常实用。
本书有什么特点
本书并不是一本简单的Java入门教材,也不是一门“闭门造车”式的Java读物。本书来自于笔者近3年的Java培训经历,凝结了笔者近3000个小时的授课经验,总结了几百个Java学员学习过程中的典型错误。
因此,本书具有如下三个特点:
1.案例驱动,引爆编程激情
本书不再是知识点的铺陈,而是致力于将知识点融入实际项目的开发,所以本书中涉及了大量Java案例:仿QQ的游戏大厅、MySQL企业管理器、仿EditPlus的文本编辑器、多线程、断点下载工具……希望读者通过编写这些程序找到编程的乐趣。
2.再现李刚老师课堂氛围
本书的内容是笔者近3年授课经历的总结,知识体系取自李刚疯狂Java实战课程体系。
本书力求再现笔者的课堂氛围:以浅显比喻代替乏味的讲解,以疯狂实战代替空洞的理论。
书中包含了大量“注意”、“学生提问”部分,这些正是几百个Java学员所犯错误的汇总。
3.注释详细,轻松上手
为了降低读者阅读的难度,书中代码的注释非常详细,几乎每两行代码就有一行注释。不仅如此,本书甚至还把一些简单理论作为注释穿插到代码中,力求让读者能轻松上手。
本书所有程序中关键代码以粗体字标出,也是为了帮助读者能迅速找到这些程序的关键点。
衷心感谢
书摘回到顶部↑
第1章 Java概述
1.1Java语言的发展简史
Java语言的诞生具有一定的戏剧性,它并不是经过精心策划、制作,最后产生的划时代产品,从某个角度来看,Java语言的诞生完全是一种误会。
1990年末,Sun公司预料嵌入式系统将在未来家用电器领域大显身手。于是Sun公司成立了一个由James Goslin9领导的“Green计划”,准备为下一代智能家电(如电视机、微波炉、电话)编写一个通用控制系统。
该团队最初考虑使用C++语言,但是很多成员包括Sun的首席科学家Bill Joy,发现C++和可用的API在某些方面存在很大问题。而且工作小组使用的是嵌入式平台,可用的系统资源极其有限。并且很多成员都发现C++太复杂,以致很多开发者经常错误使用。而且C++缺少垃圾回收系统、可移植性、分布式和多线程等功能。
根据可用的资金,Bill Joy决定开发一种新语言,他提议在C++的基础上,开发一种面向对象的环境。于是,Gosling试图通过修改和扩展C++的功能来满足这个要求,但是后来他放弃了。他决定创造一种全新的语言:Oak。
到了1992年的夏天,Green计划已经完成了新平台的部分功能,包括Green操作系统、Oak的程序设计语言、类库等。同年11月,Green计划被转化成了“FirstPerson有限公司”,一个Sun公司的全资子公司。
FirstPerson团队致力于创建一种高度互动的设备。当时代华纳发布了一个关于电视机顶盒的征求提议书时,FirstPerson改变了他们的目标,作为对征求意见书的响应,提出了一个机顶盒平台的提议。但有线电视业界觉得FirstPerson的平台给予用户过多的控制权,因此FirstPerson的投标败给了SGI。同时,与3D0公司的另外一笔关于机顶盒的交易也没有成功。此时,可怜的Green项目几乎接近夭折,甚至Green项目组的一半成员也被调到了其他项目组。
正如中国古代的寓言所言:塞翁失马,焉知非福?如果Green项目在机顶盒平台投标成功,也许就不会诞生Java这门伟大的语言了。
1994年夏天,互联网和浏览器的出现不仅给广大互联网的用户带来了福音,也给Oak语言带来了新的生机。Goslin9立即意识到,这是一个机会,于是对Oak进行了小规模的改造,到了1994年秋,小组中的Naughton和Jonathan Payne完成了第一个Java语言的网页浏览器:WebRunner。Sun公司实验室主任Bert Sutherland和技术总监Eric Schmidt观看了该浏览器的演示,对该浏览器的效果给予了高度评价。当时Oak这个商标已被别人注册,于是只得将Oak更名为Java。
……
1.1Java语言的发展简史
Java语言的诞生具有一定的戏剧性,它并不是经过精心策划、制作,最后产生的划时代产品,从某个角度来看,Java语言的诞生完全是一种误会。
1990年末,Sun公司预料嵌入式系统将在未来家用电器领域大显身手。于是Sun公司成立了一个由James Goslin9领导的“Green计划”,准备为下一代智能家电(如电视机、微波炉、电话)编写一个通用控制系统。
该团队最初考虑使用C++语言,但是很多成员包括Sun的首席科学家Bill Joy,发现C++和可用的API在某些方面存在很大问题。而且工作小组使用的是嵌入式平台,可用的系统资源极其有限。并且很多成员都发现C++太复杂,以致很多开发者经常错误使用。而且C++缺少垃圾回收系统、可移植性、分布式和多线程等功能。
根据可用的资金,Bill Joy决定开发一种新语言,他提议在C++的基础上,开发一种面向对象的环境。于是,Gosling试图通过修改和扩展C++的功能来满足这个要求,但是后来他放弃了。他决定创造一种全新的语言:Oak。
到了1992年的夏天,Green计划已经完成了新平台的部分功能,包括Green操作系统、Oak的程序设计语言、类库等。同年11月,Green计划被转化成了“FirstPerson有限公司”,一个Sun公司的全资子公司。
FirstPerson团队致力于创建一种高度互动的设备。当时代华纳发布了一个关于电视机顶盒的征求提议书时,FirstPerson改变了他们的目标,作为对征求意见书的响应,提出了一个机顶盒平台的提议。但有线电视业界觉得FirstPerson的平台给予用户过多的控制权,因此FirstPerson的投标败给了SGI。同时,与3D0公司的另外一笔关于机顶盒的交易也没有成功。此时,可怜的Green项目几乎接近夭折,甚至Green项目组的一半成员也被调到了其他项目组。
正如中国古代的寓言所言:塞翁失马,焉知非福?如果Green项目在机顶盒平台投标成功,也许就不会诞生Java这门伟大的语言了。
1994年夏天,互联网和浏览器的出现不仅给广大互联网的用户带来了福音,也给Oak语言带来了新的生机。Goslin9立即意识到,这是一个机会,于是对Oak进行了小规模的改造,到了1994年秋,小组中的Naughton和Jonathan Payne完成了第一个Java语言的网页浏览器:WebRunner。Sun公司实验室主任Bert Sutherland和技术总监Eric Schmidt观看了该浏览器的演示,对该浏览器的效果给予了高度评价。当时Oak这个商标已被别人注册,于是只得将Oak更名为Java。
……
评论交流
共有206人开贴评论 351人参与评论 140人参与打分 查看
评价等级:







发表于:2009-3-24 21:43:00
我看了大家的讨论,也自己买了这本书当作一本入门书来看。总的来说,分析了Java中涉及到的方方面面,对于细节的讨论让人的印象最为深刻。比如说引用的内存模型,equals方法该如何重写,作为一本参考书完成了自己的任务。难能可贵的是,作者的语言功底很好,把作者当作一个对Java有所了解又不甚了解的对象来对待,分析问题逐步深入,探究细节。比如说,ClassPath到底该不该设置,为什么现在不用设置了。遗憾的是,AWT和Swing部分篇幅稍多,而最后一章内容偏少。不过瑕不掩瑜,我给4星。
评价等级:







发表于:2008-11-7 11:00:00
很明显,书中所附的各中项目是真实的,而且确实是有一定难度的。
看了一下试读部分内容,特别是第四章,确实很容易读懂,能把作者的想法传达给作者。
就我一个2年Java工作经验的人来看, 这些项目,这种表达方式,对需要系统学习java的人来说,绝对是一本好书。
其实一本书只要满足如下几点,基本就可以断定是不错的图书了:
1.书中知识体系足够全面。
2.各知识点讲解足够透彻,语言、表述足够流畅。
3.各种知识点的介绍确实渗透到实际开发了,对项目开发有帮助。
4.最重要一点:书中的案例一定要是对的。如果书中项目运行不通,千万不要购买——以前买过飞思的一本书,就有这种问题。
5.如果阅读过程中遇到问题时能直接与作者沟通,那将会有更好的保障。
暂时就想到这么多了,欢迎大家讨论。无理谩骂的人请注意自己素质,别恶心自己,恶心别人。
看了一下试读部分内容,特别是第四章,确实很容易读懂,能把作者的想法传达给作者。
就我一个2年Java工作经验的人来看, 这些项目,这种表达方式,对需要系统学习java的人来说,绝对是一本好书。
其实一本书只要满足如下几点,基本就可以断定是不错的图书了:
1.书中知识体系足够全面。
2.各知识点讲解足够透彻,语言、表述足够流畅。
3.各种知识点的介绍确实渗透到实际开发了,对项目开发有帮助。
4.最重要一点:书中的案例一定要是对的。如果书中项目运行不通,千万不要购买——以前买过飞思的一本书,就有这种问题。
5.如果阅读过程中遇到问题时能直接与作者沟通,那将会有更好的保障。
暂时就想到这么多了,欢迎大家讨论。无理谩骂的人请注意自己素质,别恶心自己,恶心别人。
| 我要写评论 |
| 查看所有评论交流(共206条) |


点击看大图






加载中...