首页 > 图书中心 >图书详情
Java JDK 8学习笔记
作者:林信良
定价:68元
印次:1-6
ISBN:9787302388982
出版日期:2015.03.01
印刷日期:2017.08.23
● 本书是作者多年来教学实践经验的总结,汇集了学员在学习课程或认证考试中遇到的概念、操作、应用等问题及解决方案 ● 针对Java SE 8新功能全面改版,无论是章节架构或范例程序代码,都做了重新编写与全面翻新 ● 详细介绍了JVM、JRE、Java SE API、JDK与IDE之间的对照关系 ● 从Java SE API的源代码分析,了解各种语法在Java SE API中的具体应用 ● 提供练习的Lab操作文档,方便读者掌握练习重点 ● 将IDE操作纳入教学内容使读者能与实践结合,提供视频教学能更清楚地帮助读者掌握操作步骤
more >序 你拿起了这本书,翻开这篇序,我有了机会问你一个问题:“为什么想翻开这本书?” “当然是想学Java啊!笨蛋(作者)!” 翻开一本书,无非是想从书中得到知识,只是为何你要得到书中的知识,才是我想知道的答案,而这个答案决定了你在取得知识的过程中是否快乐! 多数人在取得知识的过程中并不快乐,因而只能幻想着取得知识之后,就能拥有快乐,我们的社会也不断塑造着这样的幻想……学会××之后就可以“找到工作”“年薪百万”“进外企”……不少人在完成买书或报名课程的那一瞬间,就彷佛看到童话故事结尾幸福又快乐的日子,甚至取得知识时花费越高,就越成为一种支持这自我满足的依据。 取得知识的过程中快乐很重要,可惜的是,多数教育并不将取得知识过程中是否快乐这件事摆在优先,甚至强调为了能拥有幸福又快乐的结局,你必须忍耐学习过程中种种不快乐的事情,有的人可能从没了解到取得知识的过程中也能够快乐这件事,也许你也早就忘了…… “不就是学个Java,跟快乐有什么关系!” 如果你学的过程中不快乐,很快地,你就会对学习的对象感到厌烦,无法体验到逐步成长的喜悦,享受不到解决问题的成就感,失去探索更高级知识的动力,就算勉为其难地完成了学习过程,开始用着似懂非懂、半生不熟的知识闯荡江湖,紧接而来的是害怕着你当初不懂现在也不想搞懂的知识,也畏惧着别人带进来的新知识,只要有你参与的东西,多半掺杂了一团浆糊,造成了伙伴的困扰也伤害了自己,幸福与快乐的日子永远不会到来,你在学习的过程也没有过快乐,真的是亏大了! 只是想着学习的过程中是否快乐,结局难道不重要吗?网络上对程序设计这块有句名言“程序是照你写的跑,不是照你想的跑”,事实上确实是如此,不过“就人生来说的话,不会照你想的跑,也不会照你规划的进行”,万一结局不是我所想象的,至少学习过程我乐在其中,以后有没有用那就再说了! “就人生来说的话,不会照你想的跑,也不会照你规划的进行。”简而言之就是世事难料,现在当红的技术难保日后不会没落,想当预言家,幻想能够选对一项知识,在苦痛学习过程之后得到美满结局,这是很没有保障的,现在冷门的知识也有可能咸鱼翻身,到时是不是感觉赚很大是一回事,不过届时你也许只会想着“其实我当时只是觉得好玩”! 林信良 2015年1月 导 读 这份导读让你可以更了解如何使用本书。 新旧版差异 就目录上来说,你可以看出的差异是上一版为16个章节,新一版为18个章节,第12章Lambda无疑是新的章节,也是JDK8最重要的新增功能。第13章“时间与日期”,一开始先谈了对时间与日期应有的基本知识,然后将旧版中的Date与Calendar做了更详细介绍,因为有许多现存API仍在使用它们,紧接着该章介绍了JDK8新时间与日期API。 第14章“NIO与NIO2”一开始谈了NIO的基础,接着将旧版的NIO2也放进该章。第15章“通用API”为旧版本“通用API”,该章删除了Date与Calendar、NIO2,并将一些JDK8的新增功能放了进去。 当然,JDK8中还有不少新增的小功能,散落在各章节中适当的地方介绍,如果发现页侧有 图标,表示提及JDK8新功能,本书亦提供有JDK8新功能快速查询目录。 全书的程序代码都做了重新审视与修改,主要着重在增加可读性,每个方法片段尽量控制不超过15行,在9.1.6节简介过Lambda之后,在可能且有助于可读性的情况下,会使用Lambda相关语法或API来实作程序范例。 旧版中有个“窗口程序设计”章节,在新版中没有消失,只不过被移至附录B,这多半表示了Java在窗口程序这块的地位,当然,Java有JavaFX这项技术,能否扩展Java在窗口程序的市场仍有待观察。“窗口程序设计”章节移至附录,主要是保留给对窗口程序仍有兴趣的读者。 字型 本书正文中与程序代码相关的文字,都用固定字体来加以呈现,以与一般名词相区别。例如,JDK是一般名词,而String为程序代码相关文字,使用了固定字体以区分。 程序范例 你可以在以下网址下载本书的范例: ? http://www.tupwk.com.cn/downpage ? http://books.gotop.com.tw/download/Acl042200 本书许多的范例都使用完整程序操作来展现,当看到以下程序代码示范时: ClassObject Guess.java package cc.openhome; import java.util.Scanner; import static java.lang.System.out; public class Guess { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int number = (int) (Math.random() * 10); int guess; do { System.out.print("猜数字(0 ~ 9):"); guess = scanner.nextInt(); } while(guess != number); out.println("猜中了...XD"); } } 范例开始的左边名称为ClassObject,表示可以在范例文件的samples文件夹的各章节文件夹中找到对应的ClassObject项目;而右边名称为Guess.java,表示可以在项目中找到Guess.java文件。如果程序代码中出现标号与提示文字,表示后续的正文中,会有对应于标号及提示的更详细说明。 原则上,建议每个项目范例都亲手动作撰写,但如果由于教学时间或操作时间上的考虑,本书有建议进行的练习。如果在范例开始前有个 图标,例如: Game1 SwordsMan.java package cc.openhome; public class SwordsMan extends Role { public void fight() { System.out.println("挥剑攻击"); } } 表示建议范例动手操作,而且在范例文件的labs文件夹中会有练习项目的基础,可以打开项目后,完成项目中遗漏或必须补齐的程序代码或设定。 如果使用以下的程序代码呈现,表示它是一个完整的程序内容,但不是项目的一部分,主要用来展现一个完整文档如何撰写: public class Hello { public static void main(String[] args) { System.out.println("Hello!World!"); } } 如果使用以下的程序代码,则表示它是个代码段,主要展现程序撰写时需要特别注意的片段: SwordsMan swordsMan = new SwordsMan(); ... System.out.printf("剑士 (%s, %d, %d)%n", swordsMan.getName(), swordsMan.getLevel(), swordsMan.getBlood()); Magician magician = new Magician(); ... System.out.printf("魔法师 (%s, %d, %d)%n", magician.getName(), magician.getLevel(), magician.getBlood()); 操作步骤 本书将IDE进行设定的相关操作步骤也作为练习的一部分,你会看到如下的操作步骤说明: (1) 选择“文件”|“新建项目”命令,在弹出的“新建项目”对话框的“类别”列表中选择Java,在“项目”列表中选择“Java应用程序”,接着单击“下一步”按钮。 (2) 在“项目名称”文本框中输入项目名称Hello2,在“项目位置”文本框中输入C:\workspace。注意,“项目文件夹”会储存至C:\workspace\Hello2。 (3) 在“创建主类”文本框中输入cc.openhome.Main,这表示会有个Main类放在cc.openhome包,当中会自动建立main()程序进入点的方法,接着单击“完成”按钮建立项目。 如果操作步骤旁有个 图标,表示范例文件的videos文件夹中对应的章节文件夹有操作步骤的视频,可观看它以更了解实际操作过程。 提示框 在本书中会出现以下提示框: 针对课程中所提到的观点,提供一些额外的资源或思考方向,暂时忽略这些提示对课程进行并没有影响,但有时间的话,针对这些提示做阅读、思考或讨论是有帮助的。 针对课程中所提到的观点,以提示框方式特别呈现出必须注意的一些使用方式、陷阱或避开问题的方法,看到这个提示框时请集中精神阅读。 附录 范例文件包括本书中所有范例,提供NetBeans范例项目,附录A说明如何使用这些范例项目,附录B则收录了上一版的“窗口程序设计”一章的内容。 联系作者 若有本书堪误反馈等相关书籍问题,可通过网站与作者联系。网址如下: http://openhome.cc
more >