编辑推荐
畅销全球的Java入门经典教程,中文版累计销量超40000册
经典Java学习教程全新升级,涵盖Java 8和Android开发等内容
本书源码、JDK 8和NetBeans 8.0.2可供下载
只需21天的时间,读者便可具备使用Java开发两种程序的知识和技能:运行在计算机中的应用程序以及运行在Android手机和平板电脑中的应用。通过阅读本书,读者将快速掌握Java基础知识,以及更高级的Java功能和概念。
本书针对Java 8进行了全面更新,旨在为读者讲解Java相关的知识,以及如何使用Java创建能在任何计算环境中运行的程序和Android app。学完本书之后,读者将全面掌握Java和Java类库。
真正零基础——通过遵循每章课程,任何人都可以掌握Java编程的基础。
自主安排学习计划——可逐章顺序学习,确保彻底理解所有概念和方法,也可以关注具体章节,学习感兴趣的技术。
检测对知识的掌握程度——每章末尾包含的问答题和练习可以帮助你验证知识的掌握情况。
本书讲解了如下主题:
使用NetBeans和Google的新Android Studio开发Java程序和Android app;
涵盖了Java 8的新特性,比如多年来大家梦寐以求的闭包;
通过易于理解的实例,清晰阐述Java编程的基本原理;
使用Swing快速开发图形用户界面程序;
使用Derby数据库进行JDBC 4.2编程以及使用开源类库XOM分析XML;
使用流来编写通过网络进行通信的程序,包括套接字编程、缓冲区、通道和URL处理。
内容简介
《21天学通Java(第7版)》是初学者学习Java编程语言的畅销经典教程,循序渐进地介绍了Java编程语言知识,并提供了丰富的实例和练习;同时全面涵盖了Java 8这一新标准以及与Android开发相关的Java编程知识。通过本书的学习,读者将逐步了解、熟悉并精通Java编程语言。
《21天学通Java(第7版)》包括3周的课程,通过学习,读者将具备使用Java开发应用程序和Android应用的知识和技能。第1周介绍Java语言的基本知识,包括数据类型、变量、表达式、对象、数组、条件语句、循环、类、接口、包、异常、线程等;第2周介绍Java类库,包括链表、栈、散列映射和位组等数据结构以及Swing组件、布局管理器和Java Web Start等;第3周介绍高级主题,包括输入和输出、内部类和闭包、通过Internet进行通信、使用数据库、XML、Web服务、Android编程等内容。
《21天学通Java(第7版)》可作为初学者学习Java编程技术的教程,也可供已掌握其他语言的程序员学习Java时参考。
作者简介
Rogers Cadenhead是程序员兼作者,出版了30多部编程和Web发布方面的著作,其中包括Sams Teach Yourself Java 2 i24 Hours和Absolute Beginner’s Guide to Minecraft Mods Programming。他还是Drudge Retort等网站的发布人,这些网站每年的访问量超过2000万。
目录
- 第1章 Java基础t2
- 1.1 Java语言t2
- 1.1.1 Java的历史t2
- 1.1.2 Java概述t3
- 1.1.3 选择开发工具t3
- 1.2 面向对象编程t4
- 1.3 对象和类t5
- 1.4 属性和行为t6
- 1.4.1 属性t6
- 1.4.2 行为t6
- 1.4.3 创建类t7
- 1.4.4 运行程序t9
- 1.5 组织类和类行为t11
- 1.5.1 继承t11
- 1.5.2 创建类层次结构t12
- 1.5.3 使用继承t13
- 1.5.4 接口t14
- 1.5.5 包t14
- 1.6 总结t15
- 1.7 问与答t15
- 1.8 小测验t15
- 1.8.1 问题t15
- 1.8.2 答案t16
- 1.9 认证练习t16
- 1.10 练习t16
- 第2章 Java编程基础t17
- 2.1 语句和表达式t17
- 2.2 变量和数据类型t18
- 2.2.1 创建变量t18
- 2.2.2 给变量命名t19
- 2.2.3 变量类型t19
- 2.2.4 给变量赋值t20
- 2.2.5 常量t21
- 2.3 注释t22
- 2.4 字面量t23
- 2.4.1 数字字面量t23
- 2.4.2 布尔字面量t24
- 2.4.3 字符字面量t24
- 2.4.4 字符串字面量t25
- 2.5 表达式和运算符t26
- 2.5.1 算术运算符t26
- 2.5.2 再谈赋值t27
- 2.5.3 递增和递减运算符t28
- 2.5.4 比较运算符t29
- 2.5.5 逻辑运算符t29
- 2.5.6 运算符优先级t30
- 2.6 字符串运算t31
- 2.7 总结t33
- 2.8 问与答t33
- 2.9 小测验t33
- 2.9.1 问题t34
- 2.9.2 答案t34
- 2.10 认证练习t34
- 2.11 练习t34
- 第3章 对象t35
- 3.1 创建新对象t35
- 3.1.1 使用newt35
- 3.1.2 对象是如何创建的t37
- 3.1.3 内存管理t37
- 3.2 使用类变量和实例变量t38
- 3.2.1 获取值t38
- 3.2.2 设置值t38
- 3.2.3 类变量t39
- 3.3 调用方法t40
- 3.3.1 设置字符串的格式t41
- 3.3.2 嵌套方法调用t42
- 3.3.3 类方法t43
- 3.4 对象的引用t43
- 3.5 对象和基本数据类型的强制类型转换t44
- 3.5.1 强制转换基本类型t45
- 3.5.2 强制转换对象t46
- 3.5.3 基本类型和对象之间的转换t47
- 3.6 比较对象值和类t48
- 3.6.1 比较对象t48
- 3.6.2 判断对象所属的类t49
- 3.7 总结t49
- 3.8 问与答t50
- 3.9 小测验t50
- 3.9.1 问题t50
- 3.9.2 答案t51
- 3.10 认证练习t51
- 3.11 练习t51
- 第4章 数组、逻辑和循环t52
- 4.1 数组t52
- 4.1.1 声明数组变量t52
- 4.1.2 创建数组对象t53
- 4.1.3 访问数组元素t54
- 4.1.4 修改数组元素t54
- 4.1.5 多维数组t56
- 4.2 块语句t57
- 4.3 if条件语句t57
- 4.4 switch条件语句t58
- 4.5 三目运算符t63
- 4.6 for循环t63
- 4.7 while和do循环t65
- 4.7.1 while循环t65
- 4.7.2 do...while循环t67
- 4.8 跳出循环t67
- 4.9 总结t68
- 4.10 问与答t68
- 4.11 小测验t69
- 4.11.1 问题t69
- 4.11.2 答案t69
- 4.12 认证练习t69
- 4.13 练习t70
- 第5章 创建类和方法t71
- 5.1 定义类t71
- 5.2 创建实例变量和类变量t71
- 5.2.1 定义实例变量t72
- 5.2.2 类变量t72
- 5.3 创建方法t72
- 5.3.1 定义方法t72
- 5.3.2 关键字thist74
- 5.3.3 变量作用域和方法定义t74
- 5.3.4 将参数传递给方法t75
- 5.3.5 类方法t76
- 5.4 创建Java应用程序t77
- 5.5 Java应用程序和参数t78
- 5.5.1 将参数传递给Java应用程序t78
- 5.5.2 在Java程序中处理参数t79
- 5.6 创建同名方法t80
- 5.7 构造函数t83
- 5.7.1 基本的构造函数t83
- 5.7.2 调用另一个构造函数t84
- 5.7.3 重载构造函数t84
- 5.8 覆盖方法t85
- 5.8.1 创建覆盖现有方法的方法t85
- 5.8.2 调用原来的方法t87
- 5.8.3 覆盖构造函数t87
- 5.9 总结t88
- 5.10 问与答t89
- 5.11 小测验t89
- 5.11.1 问题t89
- 5.11.2 答案t90
- 5.12 认证练习t90
- 5.13 练习t90
- 第6章 包、接口和其他类特性t91
- 6.1 限定符t91
- 6.2 静态变量和方法t95
- 6.3 final类、方法和变量t97
- 6.3.1 变量t97
- 6.3.2 方法t97
- 6.3.3 类t98
- 6.4 抽象类和方法t98
- 6.5 包t98
- 6.5.1 import声明t99
- 6.5.2 类名冲突t100
- 6.6 创建自己的包t101
- 6.6.1 选择包名t101
- 6.6.2 创建文件夹结构t101
- 6.6.3 将类加入到包中t102
- 6.6.4 包和类访问控制t102
- 6.7 接口t102
- 6.7.1 单继承存在的问题t102
- 6.7.2 接口和类t103
- 6.7.3 实现和使用接口t103
- 6.7.4 实现多个接口t103
- 6.7.5 接口的其他用途t104
- 6.8 创建和扩展接口t104
- 6.8.1 新接口t104
- 6.8.2 接口中的方法t105
- 6.8.3 扩展接口t105
- 6.8.4 创建网上商店t106
- 6.9 总结t110
- 6.10 问与答t110
- 6.11 小测验t110
- 6.11.1 问题t110
- 6.11.2 答案t111
- 6.12 认证练习t111
- 6.13 练习t112
- 第7章 异常和线程t113
- 7.1 异常t113
- 7.2 管理异常t115
- 7.2.1 异常一致性检测t115
- 7.2.2 保护代码和捕获异常t116
- 7.2.3 finally子句t118
- 7.3 声明可能引发异常的方法t120
- 7.3.1 throws子句t120
- 7.3.2 应引发哪些异常t121
- 7.3.3 传递异常t121
- 7.3.4 throws和继承t122
- 7.4 创建并引发自己的异常t122
- 7.4.1 引发异常t123
- 7.4.2 创建自己的异常t123
- 7.4.3 结合使用throws、try和throwt123
- 7.5 在什么情况下不使用异常t124
- 7.6 线程t125
- 7.6.1 编写线程化程序t125
- 7.6.2 线程化应用程序t126
- 7.6.3 终止线程t129
- 7.7 总结t130
- 7.8 问与答t130
- 7.9 小测验t131
- 7.9.1 问题t131
- 7.9.2 答案t131
- 7.10 认证练习t131
- 7.11 练习t132
- 第8章 数据结构t134
- 8.1 超越数组t134
- 8.2 Java数据结构t134
- 8.2.1 Iteratort135
- 8.2.2 位组t136
- 8.2.3 链表t138
- 8.2.4 遍历数据结构t140
- 8.2.5 堆栈t142
- 8.2.6 Mapt143
- 8.2.7 散列映射t144
- 8.3 泛型t147
- 8.4 枚举t150
- 8.5 总结t151
- 8.6 问与答t151
- 8.7 小测验t151
- 8.7.1 问题t151
- 8.7.2 答案t152
- 8.8 认证练习t152
- 8.9 练习t153
- 第9章 使用Swingt154
- 9.1 创建应用程序t154
- 9.1.1 创建界面t155
- 9.1.2 开发框架t156
- 9.1.3 创建组件t157
- 9.1.4 将组件加入到容器中t158
- 9.2 使用组件t159
- 9.2.1 图标t160
- 9.2.2 标签t161
- 9.2.3 文本框t162
- 9.2.4 文本区域t162
- 9.2.5 可滚动窗格t164
- 9.2.6 复选框和单选按钮t164
- 9.2.7 组合框t166
- 9.2.8 列表t167
- 9.3 Java类库t169
- 9.4 总结t170
- 9.5 问与答t170
- 9.6 小测验t171
- 9.6.1 问题t171
- 9.6.2 答案t171
- 9.7 认证练习t171
- 9.8 练习t172
- 第10章 创建Swing界面t173
- 10.1 Swing的特性t173
- 10.1.1 标准对话框t173
- 10.1.2 使用对话框t176
- 10.1.3 滑块t178
- 10.1.4 滚动窗格t179
- 10.1.5 工具栏t180
- 10.1.6 进度条t182
- 10.1.7 菜单t184
- 10.1.8 选项卡式窗格t187
- 10.2 总结t188
- 10.3 问与答t188
- 10.4 小测验t189
- 10.4.1 问题t189
- 10.4.2 答案t189
- 10.5 认证练习t190
- 10.6 练习t190
- 第11章 在用户界面上排列组件t191
- 11.1 基本的界面布局t191
- 11.1.1 布置界面t191
- 11.1.2 顺序布局t192
- 11.1.3 方框布局t193
- 11.1.4 网格布局t195
- 11.1.5 边框布局t197
- 11.2 使用多个布局管理器t198
- 11.3 卡片布局t199
- 11.3.1 在应用程序中使用卡片布局t200
- 11.3.2 单元格内边距和面板内边距t204
- 11.4 总结t204
- 11.5 问与答t205
- 11.6 小测验t205
- 11.6.1 问题t205
- 11.6.2 答案t206
- 11.7 认证练习t206
- 11.8 练习t207
- 第12章 响应用户输入t208
- 12.1 事件监听器t208
- 12.1.1 设置组件t209
- 12.1.2 事件处理方法t209
- 12.2 使用方法t211
- 12.2.1 行为事件t211
- 12.2.2 焦点事件t212
- 12.2.3 选项事件t214
- 12.2.4 键盘事件t216
- 12.2.5 鼠标事件t216
- 12.2.6 鼠标移动事件t217
- 12.2.7 窗口事件t220
- 12.2.8 使用适配器类t220
- 12.2.9 使用内部类t222
- 12.3 总结t223
- 12.4 问与答t223
- 12.5 小测验t224
- 12.5.1 问题t224
- 12.5.2 答案t224
- 12.6 认证练习t224
- 12.7 练习t225
- 第13章 创建Java2D图形t226
- 13.1 Graphics2D类t226
- 13.2 绘制文本t227
- 13.2.1 使用防锯齿改善字体和图形的
- 质量t229
- 13.2.2 获取字体的信息t229
- 13.3 颜色t231
- 13.3.1 使用Color对象t231
- 13.3.2 检测和设置当前颜色t231
- 13.4 绘制直线和多边形t232
- 13.4.1 用户坐标空间和设备坐标空间t232
- 13.4.2 指定渲染属性t233
- 13.4.3 创建要绘制的对象t234
- 13.4.4 绘制对象t236
- 13.5 总结t239
- 13.6 问与答t239
- 13.7 小测验t239
- 13.7.1 问题t239
- 13.7.2 答案t240
- 13.8 认证练习t240
- 13.9 练习t240
- 第14章 开发Swing应用程序t241
- 14.1 Java Web Startt241
- 14.2 使用Java Web Startt243
- 14.2.1 创建JNLP文件t243
- 14.2.2 在服务器上支持Web Startt249
- 14.2.3 其他JNLP元素t250
- 14.3 使用SwingWorker改善性能t251
- 14.4 总结t255
- 14.5 问与答t255
- 14.6 小测验t255
- 14.6.1 问题t255
- 14.6.2 答案t256
- 14.7 认证练习t256
- 14.8 练习t256
- 第15章 输入和输出t258
- 15.1 流简介t258
- 15.1.1 使用流t258
- 15.1.2 过滤流t259
- 15.1.3 处理异常t259
- 15.2 字节流t259
- 15.3 过滤流t262
- 15.4 字符流t269
- 15.4.1 读取文本文件t269
- 15.4.2 写文本文件t271
- 15.5 文件和路径t272
- 15.6 总结t274
- 15.7 问与答t274
- 15.8 小测验t275
- 15.8.1 问题t275
- 15.8.2 答案t275
- 15.9 认证练习t275
- 15.10 练习t276
- 第16章 使用内部类和闭包t277
- 16.1 内部类t277
- 16.2 闭包t284
- 16.3 总结t288
- 16.4 问与答t288
- 16.5 小测验t288
- 16.5.1 问题t288
- 16.5.2 答案t289
- 16.6 认证练习t289
- 16.7 练习t290
- 第17章 通过Internet进行通信t291
- 17.1 Java联网技术t291
- 17.1.1 打开跨越网络的流t291
- 17.1.2 套接字t294
- 17.1.3 Socket服务器t297
- 17.1.4 设计服务器应用程序t298
- 17.1.5 测试服务器t299
- 17.2 java.nio包t300
- 17.2.1 缓冲区t301
- 17.2.2 通道t303
- 17.3 总结t310
- 17.4 问与答t311
- 17.5 小测验t311
- 17.5.1 问题t311
- 17.5.2 答案t311
- 17.6 认证练习t311
- 17.7 练习t312
- 第18章 使用JDBC 4.2和Derby访问
- 数据库t313
- 18.1 JDBCt313
- 18.1.1 数据库驱动程序t314
- 18.1.2 查看数据库t314
- 18.1.3 读取数据库记录t316
- 18.1.4 将记录写入数据库t320
- 18.1.5 遍历结果集t325
- 18.2 总结t325
- 18.3 问与答t325
- 18.4 小测验t326
- 18.4.1 问题t326
- 18.4.2 答案t326
- 18.5 认证练习t326
- 18.6 练习t327
- 第19章 读写RSS Feedt328
- 19.1 使用XMLt328
- 19.2 设计XML语言t330
- 19.3 使用Java处理XMLt331
- 19.4 使用XOM处理XMLt331
- 19.4.1 创建XML文档t332
- 19.4.2 修改MXL文档t334
- 19.4.3 格式化XML文档t338
- 19.4.4 评估XOMt339
- 19.5 总结t341
- 19.6 问与答t342
- 19.7 小测验t342
- 19.7.1 问题t342
- 19.7.2 答案t342
- 19.8 认证练习t343
- 19.9 练习t343
- 第20章 XML Web服务t344
- 20.1 XML-RPC简介t344
- 20.2 使用XML-RPC进行通信t345
- 20.2.1 发送请求t345
- 20.2.2 响应请求t346
- 20.3 选择XML-RPC实现t347
- 20.4 使用XML-RPC Web服务t348
- 20.5 创建XML-RPC Web服务t350
- 20.6 总结t354
- 20.7 问与答t354
- 20.8 小测验t354
- 20.8.1 问题t355
- 20.8.2 答案t355
- 20.9 认证练习t355
- 20.10 练习t356
- 第21章 使用Java编写Android应用t357
- 21.1 Android的历史t357
- 21.2 编写Android应用t358
- 21.2.1 组织Android项目t360
- 21.2.2 创建程序t361
- 21.3 运行应用t362
- 21.4 设计Android应用t363
- 21.4.1 准备资源t363
- 21.4.2 配置清单文件t364
- 21.4.3 设计图形用户界面t365
- 21.4.4 编写代码t367
- 21.5 总结t372
- 21.6 问与答t372
- 21.7 小测验t372
- 21.7.1 问题t372
- 21.7.2 答案t372
- 21.8 认证练习t373
- 21.9 练习t373
- 附录A 使用集成开发环境NetBeanst376
- A.1 安装NetBeanst376
- A.2 新建项目t376
- A.3 新建Java类t378
- A.4 运行应用程序t379
- A.5 修复错误t380
- A.6 展开和折叠窗格t381
- A.7 探索NetBeanst382
- 附录B 配套网站t383
- 附录C 修复Android Studio模拟器存在的
- 问题t384
- C.1 运行应用时出现的问题t384
- C.1.1 在Android S tudio中下载HAXMt385
- C.1.2 在计算机中安装HAXMt385
- C.1.3 检查BIOS设置t387
- 附录D 使用Java开发包t388
- D.1 选择Java开发工具t388
- D.2 配置JDKt390
- D.2.1 使用命令行界面t390
- D.2.2 切换文件夹t391
- D.2.3 在MS-DOS中创建文件夹t392
- D.2.4 在MS-DOS中运行程序t392
- D.2.5 修复配置错误t393
- D.3 使用文本编辑器t396
- D.4 创建示例程序t397
- D.5 设置CLASSPATH变量t398
- D.5.1 在大多数Windows版本中设置
- CLASSPATHt399
- D.5.2 在Windows 98/Me中设置CLASSPATHt400
- 附录E 使用Java开发包编程t402
- E.1 JDK概览t402
- E.2 Java虚拟机t403
- E.3 编译器javact404
- E.4 浏览器appletviewert405
- E.5 文档工具javadoct407
- E.6 Java文件存档工具jart409
- E.7 调试器jdbt410
- E.7.1 调试应用程序t411
- E.7.2 调试小程序t412
- E.7.3 高级调试命令t412
- E.8 使用系统属性t413
- E.9 代码签名工具keytool和jarsignert414