《Java JDK 9学习笔记》_林信良

所需积分/C币:27 2019-04-24 13:24:26 325.28MB PDF

《Java JDK 9学习笔记》是作者多年来教学实践经验的总结,汇集了学员在学习Java 或认证考试时遇到的概念、操作、应用等问题及解决方案。《Java JDK 9学习笔记》针对Java SE 9 新功能全面改版,无论是章节架构或范例程序代码,都做了重新编写与全面翻新,并详细介绍了Java 9 的模块化,JVM、JRE、Java SE API、JDK 与IDE 之间的对照关系。必要时可从Java SE API 的源代码分析,了解各种语法在Java SE API 中如何应用。对于建议练习的范例提供了Lab 文档,以突出练习重点。此外,《Java JDK 9学习笔记》还将IDE 操作纳为教学内容之
良」22 4.3.1数组基础 91 6.2.5 java. lang Object …160 43.2操作数组对象 62.6关于垃圾收集 165 4.3.3数组复制…………98 627再看抽象类………………167 4.4字符串对象…………………100 63重点复习…… 169 4.4.1字符串基础……101 64课后练习……………………170 44.2字符串特性…… 103 Chapter7接口与多态… 171 4.4.3字符串编码… 107 7.1何谓接口………………172 4.5查询 Java API文件……108 7.1.1接口定义行为……172 4.6重点复习………………113 71.2行为的多态………175 4.7课后练习… …114 7.1.3解决需求变化………178 Chapter5对象封装………116 7.2接口语法细节 183 5.1何谓封装………………117 7.2.1接口的默认………183 5.1.1封装对象初始流程 117 7.22匿名内部类………187 5.1.2封装对象操作流程 119 72.3使用enum枚举常数……190 5.1.3封装对象内部数据……121 73重点复习… 192 5.2类语法细节…………123 74课后练习 193 521pub1ic权限修饰………123 Chapter8异常处理 194 52,2关于构造函数… 125 8.1语法与继承架构 ……195 523构造函数与方法重载……126 81.1使用try、 catch………195 524使用this…………128 8.1.2异常继承架构…197 525 static类成员……………130 8.1.3要抓还是要抛…………202 52.6不定长度自变量…………135 8.14贴心还是造成麻烦………205 5.2.7内部类… ……136 8.1.5认识堆栈追踪…… 206 528传值调用…………138 81.6关于 assert… ……210 53重点复习 ……140 8.2异常与资源管理…… …213 54课后练习…………………………141 8.2.1使用fina1ly… 213 Chapter6继承与多态………142 822自动尝试关闭资源………215 6.1何谓继承 143 8.2.3 java. lang. AutoCloseable 61.1继承共同行为 143 接口……………217 6.1.2多态与is-a…… 147 83重点复习 ………221 6.1.3重新定义行为……150 84课后练习 ………222 6.14抽象方法、抽象类……153 Chapter9co1 lection与Map…223 62继承语法细节…………154 91使用 Collection收集对象…224 6.21 protected成员……154 9.1.1认识co11 ection架构…224 6.22重新定义的细节……156 91.2具有索引的List…225 623再看构造函数…………157 91.3内容不重复的set……228 624再看 final关键字………159 严禁网络传播本PDF,违者责任自负! chapte 目录 914支持队列操作的 Queue…232 114关于 ThreadGroup…290 9.1.5使用泛型… 234 1.1.5 synchronized与 9.1.6简介 Lambda表达式……238 volatile 292 9.1.7 Interab1e与 111.6等待与通知…………301 Iterat 240 112并行API 9.1.8 Comparable与 11.2.1ock、 Readwritelock与 Comparato ……243 9.2键值对应的Map……248 Condition…………305 11.2.2使用 Executor……313 92.1常用Map操作类………249 11.2.3并行co1 lection简介…323 922访问Map键值………252 113重点复习 326 93不可变的co1 ection 与 114课后练习…………327 Map ,,,,,,.,,, 255 9.3.1浅谈不可变特性………255 Chapter12 Lambda………328 932co11 ections的 121认识 Lambda语法…329 unmodifiableXXX( 12.1.1 Lambda语法概览……329 方法 …………256 121.2 Lambda表达式与函数 9.3.3List、set、Map的of() 接口 332 方法 …258 121.3 Lambda遇上this与 94重点复习 ,,.,,,,,,,,,,,..,, 260 fina1……………334 9.5课后练习…………………262 1214方法与构造函数参考…336 Chapter10输入/输出 263 12.1.5接口默认方法………338 10.1 Inputstream与 122 Functional与 Stream API…343 Outputstream……264 122.1使用 Optiona1取代 10.1.1串流设计的概念………264 nul1………… ……343 10.1.2串流继承架构…………266 122.2标准API的函数接口…345 10.1.3串流处理装饰器 269 122.3使用 Stream进行管道 10.2字符处理类………………273 操作……………348 10.21 Reader与 Writer继承 1224进行 stream的 reduce 架构 274 与co1lect 351 10.2.2字符处理装饰器………275 1225关于f1 atAp()方法…356 10.3重点复习………………277 12.2.6 Stream相关AP1………359 104课后练习… 78 12.2.7JDK9 Optiona1与 Chapter11线程与并行AP………279 stream增强 360 111线程 280 123 Lambda、平行化与异步 111.1线程简介………280 处理………………………362 111.2 Thread与 Runnable……282 12.3.1 Stream与平行化……362 111.3线程生命周期…………284 123.2 Arrays与平行化……366 Ⅸ< 良格 eava 学习笔记 12.3.3 CompletableFuture 143重点复习… 412 非同步处理……………367 144课后练习…………413 12.3.4 JDK9 CompletableFuture Chapter15通用APl 414 增强……………369 15.1日志……………………………415 12.4重点复习… 370 15.1.1日志API简介… 415 12.5课后练习… 371 15.1.2指定日志层级 417 Chapter13时间与日期… 372 15.1.3使用 Handler与 13.1认识时间与日期… 373 Formatter…… 419 13.1.1时间的度量…… 373 15.1.4自定义 Handler、 Formatter 13.1.2年历简介………374 与 …………420 13.1.3认识时区 ……375 15.1.5使用1 ogging 132认识pate与 Calendar…376 properties …422 13.2.1时间轴上瞬间的Date…376 15.2国际化基础………………423 13.22格式化时间日期的 152.1使用 ResourceBundle…423 Dateformat……377 152.2使用 Locale 424 13.2.3处理时间日期的 15.3规则表示式……………426 ca1 ender………379 15.3.1规则表示式简介……426 1324设定 TimeZone………382 15.32 Pattern与 Matcher……433 133新时间日期API …383 15.4处理数字………… 435 13.3.1机器时间观点的API…383 15.4.1使用 BigInteger………435 13.32人类时间观点的API…385 154.2使用 BigDecima1…437 13.3.3对时间的运算 …387 1543数字的格式化…………439 13.34年历系统设计…………389 15.5再谈堆栈追踪……………441 134重点复习 …390 15.5.1获取 13.5课后练习 StackTraceElement………441 Chapter14N|O与NO2…………393 15.52JDK9的 Stack 14.1认识NIO… 394 Walking API… 443 14.1.1NO概述………………394 15.6重点复习………………447 14.1.2 Channel架构与操作……395 15.7课后练习 ………448 143 Buffer架构与操作……396 Chapter16整合数据库 …449 142NIO2文件系统………………398 16.1JDBC入门…………450 142.1NIO2架构 ,,· 来,,来 398 16.1.1JDBC简介………450 14.2.2操作路径 399 16.1.2连接数据库 …454 14.2.3属性读取与设定……401 16.1.3使用 Statement、 142.4操作文档与目录……404 Resu1set…………459 14.2.5读取、访问目录………406 16.1.4使用 Preparedstatement 14.2.6过滤、搜索文档………410 Callablestatement.. 464 chapt 目录 162JDBC进阶… 468 18.1.2使用 super与? ……525 1621使用 Datasource取得 18.2自定义枚举 528 联机…… …468 18.2.1了解java.1ang. 162.2使用 Resultset卷动、 Enum类… 528 更新数据…………………471 1822enum高级运用 531 1623批次更新 473 18.3关于注释… …………536 1624B1ob与C1ob…… 474 183.1常用标准注释…………536 162.5交易简介 474 18.32自定义注释类型 540 16.2.6 metadata简介 …481 18.33执行时期读取注释信息…545 1627 RowSet简介…………484 184重点复习 ………548 163重点复习 ,,,,, 486 18.5课后练习……………………549 164课后练习………………487 Chapter19深入模块化… …550 Chapter17反射与类加载器………489 19.1运用模块 551 17.1运用反射……………490 19.1.1模块的种类……………551 171.1c1ass与 class文档……490 19.1.2 equines、 exports 与 17.1.2使用c1ass opens细节………554 forName()…… …492 19.1.3修补模块………………557 17.1.3从c1ass获得信息………494 19.1.4放宽模块封装与依赖……558 17.1.4从c1ass建立对象……496 19.2模块API…………560 171.5操作对象方法与成员…499 192.1使用 Module …560 17.1.6动态代理……………501 1922使用 17.1.7当反射遇上模块………505 ModuleDescriptor.562 171.8使用 Serviceloader…51l 19.2.3浅谈 Modulelayer…562 17.2了解类加载器 …513 193打包模块 …564 1721JDK9类加载器层级……513 19.31使用jax打包……564 1722建立c1 assloader 19.32使用jmod打包…………566 实例………… 516 193.3使用j1ink建立执行时期 173重点复习…………517 映像……………………568 174课后练习 …519 194重点复习 …569 Chapter18自定义泛型、枚举与 195课后练习 ……570 注释……………520 Appendix… 571 18.1自定义泛型………………521 A.1项目环境配置…… …572 181.1使用 extends与? 521 A.2打开案例 572 XIs Java se9新功能索引 Java se9后的特性版本时间轴变动 15 JDK9文档实体布局变动… 18 初探模块平台系统…… ………………36 javac新增 -re⊥ease 参数… ……………………50 支持 Unicode80 5 内建 shell ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 56 Java API文件支持搜索功能 112 StackTraceElement新增方法 ……………………………207 Try-with- resources语法改进…………………… ………………217 定义匿名类别时的泛型语法改进 239 List、set、Map新增of()方法 ……258 接口支持定义 private方法 ……………340 Collectors新增 filtering()方法 ………………………………………356 co1 ectors新增 flatMapping()方法 ……………359 optiona1与 Stream增强… 360 CompletableFuture增强 ……………369 支持UTF-8编码的 properities文件……………………………………425 Stack- Walking api……… 443 反射与类加载器机制… ……………………490 @Deprecated增强 ,,,,,,,,,,来,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, …537 ElementType新增 MODULE………………… 545 深入模块化 ,,,,,,,,,,,,,,,,,,,,,,,,,,, 51 良感略JYa Java平台概论 学习目标 日Java版本迁移简介 认识 Java SE、 Java ee、 Java ME 认识JDK规范与操作 了解JVM、JRE与JDK 下载与安装JDK 1.1Jaa不只是语言 从1995年至今,Java已经过了20多个年头,经过这些年的改进,正如本节标题所示,Java 已不仅是个程序语言,也代表了解决问题的平台( Platform),更代表了原厂、各个厂商、社群、 开发者与用户沟通的成果。若仅以程序语言的角度来看待Java,正如冰山一角,你仅看到Java 身为程序语言的一部分,而没看到Java身为程序语言之外,更可贵也更为庞大的资源。 1.1.1前世今生 一个语言的诞生有其目的,因为这个目的而成就了该语言的主要特性。探索Java的历史演 变,对于掌握Java特性与各种可用资源,有很大帮助。 1.Java诞生 Java最早是Sun公司绿色项目( Green Project中撰写Star7应用程序的程序语言,当时的名 称并不是Java,而是Oak。 绿色项目始于1990年12月,由 Patrick Naughton、 Mike Sheridan与 James gosling( James Gosling被尊称为Java之父)主持,目的是希望构筑出下一波计算机应用趋势并加以掌握,他们 认为下一波计算机应用趋势会集中在消费性数字产品(就像现在的PDA、手机等消费性电子商 品)的使用上。1992年9月3日, Green Team项目小组展示了Star7手持设备,这个设备具备无 线网络连接、5寸LCD彩色屏幕、 PCMCIA接口等功能,而Oak在绿色项目中的目的,是用来 撰写Star7上应用程序的程序语言。 Oak名称的由来,是因为 James Gosling的办公室窗外有一棵橡树(Oak),就取了这个名称 但后来发现Oak已经被注册了,工程师们边喝咖啡边讨论着新名称,最后灵机一动而改名为 Java ava本身有许多为了节省资源而作的设计,如动态加载类别文档、字符串池( String Pool 等特性,这是因为Java一开始就是为了消费性数字产品而设计,而这类小型装置通常有着有限 内存与运算资源。 全球信息网( World wide Web)兴起, Java Applet成为网页互动技术的代表。 1993年第一个全球信息网浏览器 Mosaic诞生, James Gosling认为互联网与Java的一些特 性不谋而合,利用 Java applet在浏览器上展现互动性媒体,在当时而言,对视觉感官是一种 革命性的颠覆。 Green Team仿照 Mosaic开发出以Java技术为基础的浏览器 Webrunner(原名 为 Bladerunner,后来改名为 Hotjava虽然 Hotjava只是一个展示性产品,但它使用 Java applet 展现的多媒体效果立即吸引了许多人的注意,图1.1所示即为JDK所附的 Java applet范例。 1995年5月23日(这一天被公认为Java的诞生日),正式将Oak改名为Java,Java Development Kits(当时JDK的全名)1.0a2版本正式对外发表。到1996年, Netscape Navigator2.0 也正式支持Java, Microsoft Internet Explorer也开始支持Java。从此,Java在互联网的世界中逐 渐风行起来。虽然Star7产品并不被当时消费性市场接受,绿色项目面临被裁撤的命运,然而 全球信息网的兴起却给了Java新的生命与舞台。 2 haot Java平台概论 交件①者看心收露)工具() MoleculeViewer (example 1) 小用序Htw 我的电糙 图1.1JDK所附的 Java Applet范例(JDK文件夹 demo\applets Molecule Viewer \examplel htm) 2.版本演进 随着Java越来越受到瞩目,Sun在1998年12月4日发布Java2 Platform,简称J2SE1.2。 Java开发者版本一开始是以 Java Development Kit名称发表,简称JDK,而J2SE则是平台名 称,包含了JDK与Java程序语言。 Java平台标准版约以两年为周期推出重大版本更新,1998年12月4日发表J2SE1.2, 2000年5月8日发表J2SE1.3,2002年2月13日发表J2SE1.4,JaVa2这个名称也从J2SE12 开始沿用至各个版本。 2004年9月29日发表的Java平台标准版的版号不是1.5,而直接跳到50,称为J2SE50, 这是为了彰显这个版本与之前版本有极大不同,如语法上的简化、增加泛型( Generics)、枚举 (Enum)、注释( Annotation)等重大功能。 2006年12月11日发表的Java平台标准版,除了版本号之外,名称也有了变化,称为Java Platfor, Standard edition6,简称 Java Se6。JDK6全名则称为 Java se Development Kit 6,也就是不再像以前Java2带有2这个号码,版本号6或1.60都使用,6是产品版本( Product Version),而1.6.0是开发者版本( Developer Version)。 大部分的Java标准版平台都会取个代码名称( Code name),例如J2SE5.0的代码名称为 Tiger(老虎),为了引人注目,在发表会上还真的抱了一只小白老虎出来作为噱头,而许多书的 封面也相应地放上老虎的图片。有关JDK代码名称与发布日期,如表1.1所示。 表1.1Java版本、代码名称与发布日期 版本 代码名称 发布日期 JDK1.1.4 Sparkler(烟火) 1997/9/12 JDK1.1.5 Pumpkin(南瓜 1997/12/3 JDK1.1.6 abigail(圣经故事人物名称) 1998/424 JDK1.1.7 Brutus(罗马政治家名称) 1998/9/28 JDK1.1.8 Chelsea(足球俱乐部名称) 1999/4/8 J2SE 1.2 Playground(游乐场) 1998/12/4 J2SE1.2.1 无 1999/3/30 J2SE1.2.2 Cricket(蟋蟀 1999/7/8 J2SE 1.3 Kestrel(红隼) 2000/5/8 <

...展开详情

评论 下载该资源后可以进行评论 3

超级大超越 正是我追寻的资源
2020-02-19
回复
smallipis 单一张图片形式不太方便阅读...
2020-01-15
回复
zx569598587 前面几章有点啰嗦
2019-06-24
回复
img
votal30
  • GitHub

    绑定GitHub第三方账户获取
  • 分享王者

    成功上传51个资源即可获取

关注 私信 TA的资源

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