内容简介
《JavaJDK9学习笔记》是作者多年来教学实践经验的总结,汇集了学员在学习Java或认证考试时遇到的概念、操
作、应用等问题及解决方案。
《JavaJDK9学习笔记》针对JavaSE9新功能全面改版,无论是章节架构或范例程序代码,都做了重新编写与全面
翻新,并详细介绍了Java9的模块化,JVM、JRE、JavaSEAPI、JDK与IDE之间的对照关系。必
要时可从JavaSEAPI的源代码分析,了解各种语法在JavaSEAPI中如何应用。对于建议练习的范
例提供了Lab文档,以突出练习重点。此外,《JavaJDK9学习笔记》还将IDE操作纳为教学内容之一,让读者能与实
践相结合,轻松快速掌握Java编程技巧。
《JavaJDK9学习笔记》适合Java的初、中级读者以及广大Java应用开发人员阅读。
《JavaJDK9学习笔记》资料可通过http://www.tupwk.com.cn/downpage免费下载。作者简介
林信良(网名:良葛格),毕业于台湾大学电机工程学系。擅长技术写作、翻译与教育培训。喜好研究程序语言、框架、社群,从中学习设计、典范及文化,并利用闲暇之余记录所学技术,涵盖C/C++、Java、Ruby/Rails、Python、JavaScript、Haskell、OpenSCAD等领域。目前出版的著作有《JSP&Servlet学习笔记(第2版)》《Spring技术手册》《JavaJDK8学习笔记》等,译作有《Ajax实战手册》《jQuery实战手册(第2版)》。目录
Chapter1Java平台概论
1.1Java不只是语言
1.1.1前世今生
1.1.2三大平台
1.1.3JCP与
1.1.4OracleJDK与OpenJDK
1.1.5建议的学习路径
1.2JVM/JRE/JDK
1.2.1什么是JVM
1.2.2区分JRE与JDK
1.2.3下载、安装JDK
1.2.4认识JDK安装内容
1.3重点复习
Chapter2从JDK到IDE
2.1从HelloWorld开始
2.1.1撰写Java原始码
2.1.2PATH是什么
2.1.3JVM(java)与CLASSPATH
2.1.4编译程序(javac)与CLASSPATH
2.2管理原始码与位码文档
2.2.1编译程序(javac)与SOURCEPATH
2.2.2使用package管理类
2.2.3使用import偷懒
2.3初识模块平台系统
2.3.1JVM(java)与module-path
2.3.2编译程序(javac)与module-path
2.3.3编译程序(javac)与module-source-path
2.4使用IDE
2.4.1IDE项目管理基础
2.4.2使用了哪个JRE
2.4.3类文档版本
2.5重点复习
Chapter3基础语法
3.1类型、变量与运算符
3.1.1类型
3.1.2变量
3.1.3运算符
3.1.4类型转换
3.2流程控制
3.2.1if...else条件式
3.2.2switch条件式
3.2.3for循环
3.2.4while循环
3.2.5break、continue
3.3重点复习
3.4课后练习
Chapter4认识对象
4.1类与对象
4.1.1定义类
4.1.2使用标准类
4.1.3对象指定与相等性
4.2基本类型打包器
4.2.1打包基本类型
4.2.2自动装箱、拆箱
4.2.3自动装箱、拆箱的内幕
4.3数组对象
……
Chapter5对象封装
Chapter6继承与多态
Chapter7接口与多态
Chapter8异常处理
Chapter9Collection与Map
Chapter10输入/输出
Chapter11线程与并行API
Chapter12Lambda
Chapter13时间与日期
Chapter14NIO与NIO2
Chapter15通用API
Chapter16整合数据库
Chapter17反射与类加载器
Chapter18自定义泛型、枚举与注释
Chapter19深入模块化
Appendix前言/序言
导读
这份导读让你可以更了解如何使用《JavaJDK9学习笔记》。
新旧版差异
就目录上来说,你可以看出的差异是,上一版为18个章节,新版为19个章节,第19章“深入模块化”是新的章节,也是JDK9最重要的新增功能。然而,认识模块化最好的方式是从实际的例子着手,因此第1~18章,全部的范例都是采用模块项目构建。而在各章说明时若有需要,也适时地带入了常用的模块化概念。第19章一开始则是整理前18个章节遇到过的模块化介绍,然后紧接着深入探讨模块化。
当然,照例要谈一些JDK9的其他新增功能,散落在各章节中适当的地方介绍。如果发现页侧有图标,表示提及JDK9新功能,《JavaJDK9学习笔记》还提供了JDK9新功能快速查询目录。
虽然程序常用来处理计算,然而许多开发者对数字处理其实认识不多,因而第15章通用API增加了数字处理的内容;为了认识JDK9Stack-WalkingAPI,读者有必要先认识如何取得并运用StackTraceElement来进行堆栈追踪,因而在第15章还增加了一个小节来介绍堆栈追踪,对于读者了解应用程序行为,或者是处理Bug,应该会有所帮助。
在第2章介绍了模块化之后,范例项目便基于模块化设计了,并使用了JDK9的语法增强或改进部分程序代码;在9.1.6节介绍Lambda之后,为了提高可读性,使用Lambda相关语法或API来操作程序范例。
旧版有个附录B“窗口程序设计”,在新版中删掉了,这表示了Java在窗口程序这块的地位。当然,Java有JavaFX这项技术,如果仍希望使用Java进行窗口程序设计,可以寻找JavaFX的专书。附录B虽然不在了,不过范例项目的程序代码留着作为第19章的练习,读者可以自行研读原始码,并试着将之模块化。如果一定需要点说明,可以参考旧版《JavaSE6技术手册》第19章说明:
ngithub.com/JustinSDK/JavaSE6Tutorial/blob/master/docs/CH19.md
字型
《JavaJDK9学习笔记》正文中与程序代码相关的文字,都用固定字体来加以呈现,以与一般名词相区别。例如,JDK是一般名词,而String则是程序代码相关文字,所以使用了固定字体以区分。
程序范例
读者可以在以下网址下载《JavaJDK9学习笔记》的范例:
nhttp://www.tupwk.com.cn/downpage
nhttp://books.gotop.com.tw/v_ACL052100
《JavaJDK9学习笔记》许多范例都使用完整程序操作来展现,如看到以下程序代码示范时:
ClassObjectGuess.java
packagecc.openhome;
importjava.util.Scanner;
importstaticjava.lang.System.out;
publicclassGuess{
publicstaticvoidmain(String[]args){
Scannerscanner=newScanner(System.in);
intnumber=(int)(Math.random()*10);
intguess;
do{
System.out.print("猜数字(0~9):");
guess=scanner.nextInt();
}while(guess!=number);
out.println("猜中了...XD");
}
}
范例开始的左边名称为ClassObject表示可以在范例文件的samples文件夹的各章节文件夹中找到对应的ClassObject项目;而右边名称为Guess.java表示可以在项目中找到Guess.java文件。如果程序代码中出现标号与提示文字,表示在后续的正文中,会有对应于标号及提示的更详细说明。
原则上,建议读者每个项目范例都能亲手动作撰写,但出于教学时间或操作时间上的考虑,《JavaJDK9学习笔记》有建议进行的练习。如果在范例开始前有个图标,例如:
Game1SwordsMan.java
packagecc.openhome;
publicclassSwordsManextendsRole{
publicvoidfight(){
System.out.println("挥剑攻击");
}
}
表示建议范例动手操作,而且在范例文件的labs文件夹中提供了练习项目的基础,打开项目后,完成项目中遗漏或必须补齐的程序代码或设定即可。
如果使用以下程序代码呈现,则表示它是一个完整的程序内容,而不是项目的一部分,这主要用来展现一个完整文档的撰写方法。
publicclassHello{
publicstaticvoidmain(String[]args){
System.out.println("Hello!World!");
}
}
如果使用以下程序代码,则表示它是个代码段,主要展现程序撰写时需要特别注意的片段:
SwordsManswordsMan=newSwordsMan();
...
System.out.printf("剑士(%s,%d,%d)%n",swordsMan.getName(),
swordsMan.getLevel(),swordsMan.getBlood());
Magicianmagician=newMagician();
...
System.out.printf("魔法师(%s,%d,%d)%n",magician.getName(),
magician.getLevel(),magician.getBlood());
提示框
在《JavaJDK9学习笔记》中会出现以下提示框:
针对课程中所提到的观点,提供了一些额外的资源或思考方向,暂时忽略这些提示对课程的影响,但有时间的话,针对这些提示做阅读、思考或讨论是有帮助的。
针对课程中所提到的观点,以提示框方式特别呈现出必须注意的一些使用方式、陷阱或避开问题的方法,看到这个提示框时请读者集中精神阅读。
附录
范例文件包括《JavaJDK9学习笔记》中的所有范例,提供NetBeans范例项目,附录A用于说明如何使用这些范例项目。
联系作者
若有《JavaJDK9学习笔记》勘误反馈等相关书籍问题,可通过网站与作者联系。网址如下:
http://openhome.cc