java JDK8 学习笔记

所需积分/C币:28 2018-12-04 12:01:28 92.74MB PDF

本书针对jdk8全新改版
内容简介 本书是作者多年来教学实践经验的总结,汇集了学生在学习Java或认证考试时遇到的概 念、操作、应用等问题及解决方案 本书针对 Java Se8新功能全面改版,无论是章节架构或范例程序代码,都做了重新编写与 全面翻新,并详细介绍了JVM、JRE、 Java SE API、JDK与IDE之间的对照关系。必要时可从 Java SE API的源代码分析,了解各种语法在 Java SE API中如何应用。对于建议练习的范例提 供了Lab文档,以突出练习重点。此外,本书还将IDE操作纳为教学内容之一,让读者能与实 践相结合,提供的教学视频可以让读者更清楚地掌握操作步骤。 本书适合Java的初、中级读者以及广大Java应用开发人员。 本书封面贴有清华大学出版社防伪标签,无标签者不得销售 版权所有,侵权必究。侵权举报电话:010-6278298913701121933 图书在版编目(C|P)数据 Java jdK8学习笔记/林信良著.一北京:清华大学出版社,2015 ISBN978-7-302-38898-2 I.①J…Ⅱ.①林…Ⅲ.①JAVA语言一程序设计ⅣV.①TP312 中国版本图书馆CP数据核字(2015)第004853号 责任编辑:王定 封面设计:牛艳敏 版式设计:思创景点 责任校对:邱晓玉 责任印制:沈露 出版发行:清华大学出版社 potie:http://www.tup.comcn,http://www.wabook.com 地址:北京清华大学学研大厦A座 邮编:100084 社总机:010-62770175 邮购:010-62786544 投稿与读者服务:010-62776969,C-service@tup.tsinghua,edu.cn 质量反馈:010-62772015,zhiliang@tup.tsinghua.edu.cn 印刷者:清华大学印刷厂 装订者:三河市金元印装有限公司 经销:全国新华书店 开本:185mm×260mm 印张:40.25 字数:980千字 版次:2015年3月第1版 印次:2015年3月第1次印刷 印数:;1~5000 定价:68.00元 产品编号:061643-01 序 你拿起了这本书,翻开这篇序,我有了机会问你一个问题:“为什么想翻 开这本书?” “当然是想学Java啊!笨蛋(作者)!” 翻开一本书,无非是想从书中得到知识,只是为何你要得到书中的知识 才是我想知道的答案,而这个答案决定了你在取得知识的过程中是否快乐! 多数人在取得知识的过程中并不快乐,因而只能幻想着取得知识之后,就 能拥有快乐,我们的社会也不断塑造着这样的幻想……学会××之后就可以 “找到工作”“年薪百万”“进外企”……不少人在完成买书或报名课程的那 瞬间,就彷佛看到童话故事结尾幸福又快乐的日子,甚至取得知识时花费越高 就越成为一种支持这自我满足的依据 取得知识的过程中快乐很重要,可惜的是,多数教育并不将取得知识过程 中是否快乐这件事摆在优先,甚至强调为了能拥有幸福又快乐的结局,你必须 忍耐学习过程中种种不快乐的事情,有的人可能从没了解到取得知识的过程中 也能够快乐这件事,也许你也早就忘了 “不就是学个Java,跟快乐有什么关系!” 如果你学的过程中不快乐,很快地,你就会对学习的对象感到厌烦,无法 体验到逐步成长的喜悦,享受不到解决问题的成就感,失去探索更高级知识的 动力,就算勉为其难地完成了学习过程,开始用着似懂非懂、半生不熟的知识 闯荡江湖,紧接而来的是害怕着你当初不懂现在也不想搞懂的知识,也畏惧着 别人带进来的新知识,只要有你参与的东西,多半掺杂了一团浆糊,造成了伙 伴的困扰也伤害了自己,幸福与快乐的日子永远不会到来,你在学习的过程也 没有过快乐,真的是亏大了! 只是想着学习的过程中是否快乐,结局难道不重要吗?网络上对程序设计 这块有句名言“程序是照你写的跑,不是照你想的跑”,事实上确实是如此, 不过“就人生来说的话,不会照你想的跑,也不会照你规划的进行”,万一结 局不是我所想象的,至少学习过程我乐在其中,以后有没有用那就再说了! 良格」aVa 学习笔记∠ “就人生来说的话,不会照你想的跑,也不会照你规划的进行。”简而言 之就是世事难料,现在当红的技术难保日后不会没落,想当预言家,幻想能够 选对一项知识,在苦痛学习过程之后得到美满结局,这是很没有保障的,现在 冷门的知识也有可能咸鱼翻身,到时是不是感觉赚很大是一回事,不过届时你 也许只会想着“其实我当时只是觉得好玩”! 林信良 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 uhttp://books.gotop.comtw/download/acl042200 本书许多的范例都使用完整程序操作来展现,当看到以下程序代码示范时: Classobject Guess java package cc. openhome: import java. util. Scanner; ①告诉编译程序接下来想偷懒 import static java. lang System. outi public class Guess t public static void main(String[] args)[ Scanner scanner new Scanner(System. in)i e建立 Scanner实例 int number =(int)(Math. random()* 10); int guess; System,out, print("猜数字(0~9):"); guess scanner. nextInt ()i 6取得下一个整数 I while(guess != number)i out, print1n("猜中了,,XD") 范例开始的左边名称为 Classobject,表示可以在范例文件的 samples文件夹的各章 节文件夹中找到对应的 ClassObject项目;而右边名称为 Guess. java,表示可以在项目 中找到 Guess. java文件。如果程序代码中出现标号与提示文字,表示后续的正文中,会 有对应于标号及提示的更详细说明。 原则上,建议每个项目范例都亲手动作撰写,但如果由于教学时间或操作时 间上的考虑,本书有建议进行的练习。如果在范例开始前有个二图标,例如: Game1 SwordsMan. java package cc. openhome; public class SwordsMan extends Role I public void fight()t System,out, print1n("挥剑攻击"); 表示建议范例动手操作,而且在范例文件的labs文件夹中会有练习项目的基 础,可以打开项目后,完成项目中遗漏或必须补齐的程序代码或设定。 如果使用以下的程序代码呈现,表示它是一个完整的程序内容,但不是项目 的一部分,主要用来展现一个完整文档如何撰写: 导读 public class Hello i public static void main(String [] args)[ System. out. println("Hello! World! ")i 如果使用以下的程序代码,则表示它是个代码段,主要展现程序撰写时需要 特别注意的片段: SwordsManswordsMan new SwordsMan (); System. out. printf("9+ (s, 8d, 8d)%n", swordsMan. getName( swordsMan. getLevel(), swordsMan. getBlood()i Magician magician= new Magician()i System.out, printf("魔法师(告s,8d,8d);n", magIcan. getName(), magician. getLevel(), magician. getBloodo))i 操作步骤 本书将IDE进行设定的相关操作步骤也作为练习的一部分,你会看到如下的 操作步骤说明 (1)选择“文件”|“新建项目”命令,在弹出的“新建项目”对话框的“类别” 列表中选择Java,在“项目”列表中选择“Java应用程序”,接着单击“下一步” 按钮。 (2)在“项目名称”文本框中输入项目名称Hell02,在“项目位置”文本框中 输入C: workspace。注意,“项目文件夹”会储存至C: workspace\Hello2 (3)在“创建主类”文本框中输入 cc. openhome Main,这表示会有个Main类 放在 cc. openhome包,当中会自动建立main0程序进入点的方法,接着单击“完成” 按钮建立项目。 如果操作步骤旁有个〓图标,表示范例文件的 videos文件夹中对应的章节文 件夹有操作步骤的视频,可观看它以更了解实际操作过程。 提示框 在本书中会出现以下提示框: 提示》》针对课程中所提到的观点,提供一些额外的资源或思考方向,暂时忽略这些提示对课 程进行并没有影响,但有时间的话,针对这些提示做阅读、思考或讨论是有帮助的。 注意》)针对课程中所提到的观点,以提示框方式特别呈现出必须注意的一些使用方式、陷阱 或避开问题的方法,看到这个提示框时请集中精神阅读 附录 范例文件包括本书中所有范例,提供 NetBeans范例项目,附录A说明如何使 用这些范例项目,附录B则收录了上一版的“窗口程序设计”一章的内容。 联系作者 若有本书堪误反馈等相关书籍问题,可通过网站与作者联系。网址如下: tp openhole cc 目录 Chapter1Java平台概论 3.1.1类型……54 1.1Java不只是语言 3.1.2变量………57 1.1.1前世今生……… 1.12三大平台 在在 2256 3.1.3运算符…………………60 3.14类型转换… …….66 3.2流程控制 Q 1.13JCP与JsR 114 Oracle JDK与 OpenJDK…7 3.211f.e1se条件式…69 1.1.5建议的学习路径……9 3.22 switch条件式…… 72 12JVM/JRE/JDK………12 3.23fox循环…… 12.1什么是JVM……………13 3.24 while循环… 1.22区分JRE与JDK 15 3.2.5 break、 continue……77 123下载、安装JDK………16 33重点复习… 78 124认识JDK安装内容……19 34课后练习 79 1.3重点复习 20 3.4.1选择题…………79 1.4课后练习…………………21 342操作题 ……81 Chapter2从JDK到IDE……………22 Chapter4认识对象 82 2.1从 Hello World开始…………23 4.1类与对象……………83 2.1.1撰写Java原始码………23 4.1.1定义类…………83 212PATH是什么………25 41.2使用标准类………86 213JVM(ava)与 4.1.3对象指定与相等性……89 CLASSPATH……………28 4.2基本类型打包器 …90 214编译程序 Gavac)与 421打包基本类型………90 CLASSPATH………………31 42.2自动装箱、拆箱………91 22管理原始码与位码文档……33 42.3自动装箱、拆箱的内幕……92 4.3数组对象 和,C 22.1编译程序 gavac)与 SOURCEPATH……………….33 4.3.1数组基础… …95 22.2使用 管理类…35 4.3.2操作数组对象… 98 pac kage 223使用 import偷懒……37 43.3数组复制……………104 23使用DDE……39 44字符串对象 107 23.1IDE项目管理基础………40 44.1字符串基础……………107 2.3.2使用了哪个JRE 44 44.2字符串特性………110 23.3类文档版本……………45 44.3字符串编码…………113 24重点复习…………48 45查询 Java API文件………115 2.5课后练习………49 46重点复习……118 4.7课后练习…… 119 Chapter3基础语法 53 4.7.1选择题…………119 3.1类型、变量与运算符……54 47.2操作题 121

...展开详情
img
monkeycai

关注 私信 TA的资源

上传资源赚积分,得勋章
最新资源