发表于2024-12-28
Java 学习笔记(第8版) pdf epub mobi txt 电子书 下载
● 《JAVA 学习笔记(第8版)》是作者多年来教学实践经验的总结,汇集了学员在学习课程或认证考试中遇到的概念、操作、应用等问题及解决方案
● 针对JavaSE8新功能全面改版,无论是章节架构或范例程序代码,都做了重新编写与全面翻新
● 详细介绍了JVM、JRE、JavaSEAPI、JDK与IDE之间的对照关系
● 从JavaSEAPI的源代码分析,了解各种语法在JavaSEAPI中的具体应用
● 提供练习的Lab操作文档,方便读者掌握练习重点
● 将IDE操作纳入教学内容使读者能与实践结合,提供视频教学能更清楚地帮助读者掌握操作步骤
超值赠送:
各章NetBeans范例项目
Lab的NetBeans项目
教学操作视频
《JAVA 学习笔记(第8版)》是作者多年来教学实践经验的总结,汇集了学生在学习Java或认证考试时遇到的概念、操作、应用等问题及解决方案。
《JAVA 学习笔记(第8版)》针对Java SE 8新功能全面改版,无论是章节架构或范例程序代码,都做了重新编写与全面翻新,并详细介绍了JVM、JRE、Java SE API、JDK与IDE之间的对照关系。必要时可从Java SE API的源代码分析,了解各种语法在Java SE API中如何应用。对于建议练习的范例提供了Lab文档,以突出练习重点。此外,本书还将IDE操作纳为教学内容之一,让读者能与实践相结合,提供的教学视频可以让读者更清楚地掌握操作步骤。
《JAVA 学习笔记(第8版)》适合Java的初、中级读者以及广大Java应用开发人员。
林信良(网名:良葛格),
学历:台湾大学电机工程学系
经历:台湾升阳教育训练技术顾问、专业讲师,Oracle授权训练中心讲师
著作:《JavaJDK5.0学习笔记》《JavaSE6技术手册》《JavaJDK6.0学习笔记》《JSP&Servlet;学习笔记》《Spring技术手册》《JavaJDK7学习笔记》等
译作:《Ajax实战手册》《jQuery实战手册(第2版)》
Chapter 1 Java平台概论 1
1.1 Java不只是语言 2
1.1.1 前世今生 2
1.1.2 三大平台 5
1.1.3 JCP与JSR 6
1.1.4 Oracle JDK与OpenJDK 7
1.1.5 建议的学习路径 9
1.2 JVM/JRE/JDK 12
1.2.1 什么是JVM 13
1.2.2 区分JRE与JDK 15
1.2.3 下载、安装JDK 16
1.2.4 认识JDK安装内容 19
1.3 重点复习 20
1.4 课后练习 21
Chapter 2 从JDK到IDE 22
2.1 从Hello World开始 23
2.1.1 撰写Java原始码 23
2.1.2 PATH是什么 25
2.1.3 JVM(java)与
CLASSPATH 28
2.1.4 编译程序(javac)与
CLASSPATH 31
2.2 管理原始码与位码文档 33
2.2.1 编译程序(javac)与SOURCEPATH 33
2.2.2 使用package管理类 35
2.2.3 使用import偷懒 37
2.3 使用IDE 39
2.3.1 IDE项目管理基础 40
2.3.2 使用了哪个JRE 44
2.3.3 类文档版本 45
2.4 重点复习 48
2.5 课后练习 49
Chapter 3 基础语法 53
3.1 类型、变量与运算符 54
3.1.1 类型 54
3.1.2 变量 57
3.1.3 运算符 60
3.1.4 类型转换 66
3.2 流程控制 69
3.2.1 if...else条件式 69
3.2.2 switch条件式 72
3.2.3 for循环 74
3.2.4 while循环 75
3.2.5 break、continue 77
3.3 重点复习 78
3.4 课后练习 79
3.4.1 选择题 79
3.4.2 操作题 81
Chapter 4 认识对象 82
4.1 类与对象 83
4.1.1 定义类 83
4.1.2 使用标准类 86
4.1.3 对象指定与相等性 89
4.2 基本类型打包器 90
4.2.1 打包基本类型 90
4.2.2 自动装箱、拆箱 91
4.2.3 自动装箱、拆箱的内幕 92
4.3 数组对象 95
4.3.1 数组基础 95
4.3.2 操作数组对象 98
4.3.3 数组复制 104
4.4 字符串对象 107
4.4.1 字符串基础 107
4.4.2 字符串特性 110
4.4.3 字符串编码 113
4.5 查询Java API文件 115
4.6 重点复习 118
4.7 课后练习 119
4.7.1 选择题 119
4.7.2 操作题 121
Chapter 5 对象封装 122
5.1 何谓封装 123
5.1.1 封装对象初始流程 123
5.1.2 封装对象操作流程 125
5.1.3 封装对象内部数据 128
5.2 类语法细节 131
5.2.1 public权限修饰 131
5.2.2 关于构造函数 133
5.2.3 构造函数与方法重载 134
5.2.4 使用this 136
5.2.5 static类成员 139
5.2.6 不定长度自变量 145
5.2.7 内部类 146
5.2.8 传值调用 148
5.3 重点复习 151
5.4 课后练习 152
5.4.1 选择题 152
5.4.2 操作题 155
Chapter 6 继承与多态 157
6.1 何谓继承 158
6.1.1 继承共同行为 158
6.1.2 多态与is-a 162
6.1.3 重新定义行为 166
6.1.4 抽象方法、抽象类 169
6.2 继承语法细节 170
6.2.1 protected成员 170
6.2.2 重新定义的细节 172
6.2.3 再看构造函数 174
6.2.4 再看final关键字 176
6.2.5 java.lang.Object 178
6.2.6 关于垃圾收集 182
6.2.7 再看抽象类 185
6.3 重点复习 188
6.4 课后练习 189
6.4.1 选择题 189
6.4.2 操作题 193
Chapter 7 接口与多态 194
7.1 何谓接口 195
7.1.1 接口定义行为 195
7.1.2 行为的多态 199
7.1.3 解决需求变化 202
7.2 接口语法细节 208
7.2.1 接口的默认 208
7.2.2 匿名内部类 212
7.2.3 使用enum枚举常数 217
7.3 重点复习 219
7.4 课后练习 220
7.4.1 选择题 220
7.4.2 操作题 224
Chapter 8 异常处理 226
8.1 语法与继承架构 227
8.1.1 使用try、catch 227
8.1.2 异常继承架构 230
8.1.3 要抓还是要抛 235
8.1.4 贴心还是造成麻烦 238
8.1.5 认识堆栈追踪 240
8.1.6 关于assert 244
8.2 异常与资源管理 247
8.2.1 使用finally 247
8.2.2 自动尝试关闭资源 249
8.2.3 java.lang.AutoCloseable接口 251
8.3 重点复习 256
8.4 课后练习 257
8.4.1 选择题 257
8.4.2 操作题 261
Chapter 9 Collection与Map 262
9.1 使用Collection收集对象 263
9.1.1 认识Collection架构 263
9.1.2 具有索引的List 264
9.1.3 内容不重复的Set 268
9.1.4 支持队列操作的Queue 272
9.1.5 使用泛型 275
9.1.6 简介Lambda表达式 279
9.1.7 Interable与Iterator 281
9.1.8 Comparable与Comparator 284
9.2 键值对应的Map 290
9.2.1 常用Map操作类 291
9.2.2 访问Map键值 295
9.3 重点复习 298
9.4 课后练习 299
9.4.1 选择题 299
9.4.2 操作题 303
Chapter 10 输入/输出 304
11.4.1 选择题 380
11.4.2 操作题 381
Chapter 12 Lambda 382
12.1 认识Lambda语法 383
12.1.1 Lambda语法概览 383
12.1.2 Lambda表达式与函数接口 386
12.1.3 Lambda遇上this与final 388
12.1.4 方法与构造函数参考 391
12.1.5 接口默认方法 394
12.2 Functional与Stream API 399
12.2.1 使用Optional取代null 399
12.2.2 标准API的函数接口 401
12.2.3 使用Stream进行管道操作 404
12.2.4 进行Stream的reduce与collect 408
12.2.5 关于flatMap()方法 413
12.3 Lambda与并行处理 416
12.3.1 Stream与平行化 416
12.3.2 使用Completable-Future 420
12.4 重点复习 423
12.5 课后练习 424
1.1 Java不只是语言
从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手持设备,这个设备具备无线网络连接、5inLCD彩色屏幕、PCMCIA接口等功能,而Oak在绿色项目中的目的,是用来撰写Star7上应用程序的程序语言。
Oak名称的由来,是因为James Gosling的办公室窗外有一棵橡树(Oak),就顺手取了这个名称。但后来发现Oak名称已经被注册了,工程师们边喝咖啡边讨论着新名称,最后灵机一动而改名为Java。
Java本身会见到许多为了节省资源而作的设计,像是动态加载类别文档、字符串池(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所示。
1995年5月23日(这一天被公认为Java的诞生日),正式将Oak改名为Java,Java Development Kits(当时JDK全名)1.0a2版本正式对外发表,而在1996年Netscape Navigator 2.0也正式支持Java,Microsoft Internet Explorer也开始支持Java,从此Java在因特网的世界中逐渐风行起来。虽然Star7产品并不被当时消费性市场接受,绿色项目面临被裁撤的命运,然而全球信息网的兴起却给了Java新的生命与舞台。
图1.1 JDK所附的Java Applet范例(JDK文件夹demoappletsMoleculeViewerexample1.html)
2. 版本演进
随着Java越来越受到瞩目,Sun在1998年12月4日发布Java 2 Platform,简称J2SE 1.2,Java开发者版本一开始是以Java Development Kit名称发表,简称JDK,而J2SE则是平台名称,包含了JDK与Java程序语言。
Java平台标准版约以两年为周期推出重大版本更新,1998年12月4日发表J2SE 1.2,2000年5月8日发表J2SE 1.3,2002年2月13日发表J2SE 1.4, Java 2这个名称也从J2SE 1.2一直沿用至之后各个版本。
2004年9月29日发表的Java平台标准版的版号不是1.5,而直接跳到5.0,称为J2SE 5.0,这是为了彰显这个版本与之前版本有极大不同,如语法上的简化、增加泛型(Generics)、枚举(Enum)、注释(Annotation)等重大功能。
2006年12月11日发表的Java平台标准版,除了版本号之外,名称也有了变化,称为Java Platform, Standard Edition 6,简称Java SE 6,JDK6全名则称为Java SE Development Kit 6,也就是不再像以前Java 2带有2这个号码,版本号6或1.6.0都使用,6是产品版本(Product Version),而1.6.0是开发者版本(Developer Version)。
大部分的Java标准版平台都会取个代码名称(Code Name),例如J2SE 5.0的代码名称为Tiger(老虎),为了引人注目,在发表会上还真的抱了一只小白老虎出来作为噱头,而许多书的封面也相应地放上老虎的图片。有关JDK代码名称与发布日期,可以参考表1.1所示。
……
你拿起了这本书,翻开这篇序,我有了机会问你一个问题:“为什么想翻开这本书?”
“当然是想学Java啊!笨蛋(作者)!”
翻开一本书,无非是想从书中得到知识,只是为何你要得到书中的知识,才是我想知道的答案,而这个答案决定了你在取得知识的过程中是否快乐!
多数人在取得知识的过程中并不快乐,因而只能幻想着取得知识之后,就能拥有快乐,我们的社会也不断塑造着这样的幻想……学会××之后就可以“找到工作”“年薪百万”“进外企”……不少人在完成买书或报名课程的那一瞬间,就彷佛看到童话故事结尾幸福又快乐的日子,甚至取得知识时花费越高,就越成为一种支持这自我满足的依据。
取得知识的过程中快乐很重要,可惜的是,多数教育并不将取得知识过程中是否快乐这件事摆在优先,甚至强调为了能拥有幸福又快乐的结局,你必须忍耐学习过程中种种不快乐的事情,有的人可能从没了解到取得知识的过程中也能够快乐这件事,也许你也早就忘了……
“不就是学个Java,跟快乐有什么关系!”
如果你学的过程中不快乐,很快地,你就会对学习的对象感到厌烦,无法体验到逐步成长的喜悦,享受不到解决问题的成就感,失去探索更高级知识的动力,就算勉为其难地完成了学习过程,开始用着似懂非懂、半生不熟的知识闯荡江湖,紧接而来的是害怕着你当初不懂现在也不想搞懂的知识,也畏惧着别人带进来的新知识,只要有你参与的东西,多半掺杂了一团浆糊,造成了伙伴的困扰也伤害了自己,幸福与快乐的日子永远不会到来,你在学习的过程也没有过快乐,真的是亏大了!
只是想着学习的过程中是否快乐,结局难道不重要吗?网络上对程序设计这块有句名言“程序是照你写的跑,不是照你想的跑”,事实上确实是如此,不过“就人生来说的话,不会照你想的跑,也不会照你规划的进行”,万一结局不是我所想象的,至少学习过程我乐在其中,以
Java 学习笔记(第8版) 电子书 下载 mobi epub pdf txt
书很好。。。
评分还可以。。。。。。。。。
评分还不错
评分林信良出的几本书都很好,讲的很透彻,推荐
评分真的可以,虽然有些贵,但是值得学习
评分好,很好
评分WZRYCWDMQ8不错吧嘿嘿,还可以,嗯嗯可以
评分很好
评分华为狗劝退35岁员工就是渣。
Java 学习笔记(第8版) pdf epub mobi txt 电子书 下载