Java学习手册(第五版)
Marc Loy, Patrick Niemeyer, Daniel Leuck
苏钰涵 译
出版时间:2021年11月
页数:512
如果你刚接触Java或者刚开始学习编程,这本畅销书会带你学习Java 11及以上版本的语言特性和API。通过富有吸引力、趣味性和实用性的示例,并且始终着眼于构建实际的应用,这本书的作者Marc Loy、Patrick Niemeyer和Daniel Leuck全面介绍了Java的基础知识,包括其类库、编程技术和惯用方法。
除了学习最新Java版本中的核心语言特性,你还会学习一些功能强大的新方法来管理应用中的资源和异常。
● 使用编译器、解释器和其他工具完成Java开发。
● 探索Java内置的线程功能和并发包。
● 学习文本处理和强大的正则表达式API。
● 编写高级网络应用或基于Web的应用和服务。
  1. 前言
  2. 第1章 一种现代语言
  3. 1.1 进入Java世界
  4. 1.1.1 Java起源
  5. 1.1.2 成长
  6. 1.2 虚拟机
  7. 1.3 Java与其他语言的比较
  8. 1.4 设计安全
  9. 1.4.1 简化、简化、再简化
  10. 1.4.2 类型安全和方法绑定
  11. 1.4.3 增量式开发
  12. 1.4.4 动态内存管理
  13. 1.4.5 错误处理
  14. 1.4.6 线程
  15. 1.4.7 可伸缩性
  16. 1.5 实现安全
  17. 1.5.1 校验器
  18. 1.5.2 类加载器
  19. 1.5.3 安全管理器
  20. 1.6 应用和用户级安全
  21. 1.7 Java路线图
  22. 1.7.1 过去:Java 1.0—Java 11
  23. 1.7.2 现在:Java 14
  24. 1.7.3 将来
  25. 1.7.4 可用性
  26. 第2章 个应用
  27. 2.1 Java工具和环境
  28. 2.1.1 安装JDK
  29. 2.1.2 在Linu上安装OpenJDK
  30. 2.1.3 在macOS上安装OpenJDK
  31. 2.1.4 在Windows上安装OpenJDK
  32. 2.1.5 配置IntelliJ IDEA并创建一个项目
  33. 2.1.6 运行项目
  34. 2.1.7 获得本书示例
  35. 2.2 HelloJava
  36. 2.2.1 类
  37. 2.2.2 main()法
  38. 2.2.3 类和对象
  39. 2.2.4 变量和类类型
  40. 2.2.5 HelloComponent
  41. 2.2.6 继承
  42. 2.2.7 JComponent类
  43. 2.2.8 关系和指向
  44. 2.2.9 包和导入
  45. 2.2.10 paintComponent()方法
  46. 2.3 HelloJava2: 续集
  47. 2.3.1 实例变量
  48. 2.3.2 构造器
  49. 2.3.3 事件
  50. 2.3.4 repaint()方法
  51. 2.3.5 接口
  52. 2.4 既是结束,又是开始
  53. 第3章 专业工具
  54. 3.1 JDK环境
  55. 3.2 JVM
  56. 3.3 运行Java应用
  57. 3.4 类路径
  58. 3.4.1 javap
  59. 3.4.2 模块
  60. 3.5 Java编译器
  61. 3.6 尝试Java
  62. 3.7 JAR文件
  63. 3.7.1 文件压缩
  64. 3.7.2 jar工具
  65. 3.7.3 pack200工具
  66. 3.8 再接再厉
  67. 第4章 Java语言
  68. 4.1 文本编码
  69. 4.2 注释
  70. 4.3 变量和常量
  71. 4.4 类型
  72. 4.4.1 基本类型
  73. 4.4.2 引用类型
  74. 4.4.3 推导类型
  75. 4.4.4 传递引用
  76. 4.4.5 谈谈字符串
  77. 4.5 语句和表达式
  78. 4.5.1 语句
  79. 4.5.2 表达式
  80. 4.6 数组
  81. 4.6.1 数组类型
  82. 4.6.2 数组创建和初始化
  83. 4.6.3 使用数组
  84. 4.6.4 匿名数组
  85. 4.6.5 多维数组
  86. 4.7 类型、类和数组
  87. 第5章 Java中的对象
  88. 5.1 类
  89. 5.1.1 声明和实例化类
  90. 5.1.2 访问字段和方法
  91. 5.1.3 静态成员
  92. 5.2 方法
  93. 5.2.1 局部变量
  94. 5.2.2 遮蔽
  95. 5.2.3 静态方法
  96. 5.2.4 初始化局部变量
  97. 5.2.5 参数传递和引用
  98. 5.2.6 基本类型的包装器
  99. 5.2.7 方法重载
  100. 5.3 对象创建
  101. 5.3.1 构造器
  102. 5.3.2 使用重载构造器
  103. 5.4 对象析构
  104. 5.5 包
  105. 5.5.1 导入类
  106. 5.5.2 自定义包
  107. 5.5.3 成员可见性和访问
  108. 5.5.4 用包编译
  109. 5.6 高级类设计
  110. 5.6.1 派生子类和继承
  111. 5.6.2 接口
  112. 5.6.3 内部类
  113. 5.6.4 匿名内部类
  114. 5.7 组织内容和为失败做规划
  115. 第6章 错误处理和日志
  116. 6.1 异常
  117. 6.1.1 异常和错误类
  118. 6.1.2 异常处理
  119. 6.1.3 冒泡
  120. 6.1.4 栈轨迹
  121. 6.1.5 受查和非受查异常
  122. 6.1.6 抛出异常
  123. 6.1.7 try蔓延
  124. 6.1.8 finally子句
  125. 6.1.9 带资源的try语句
  126. 6.1.10 性能问题
  127. 6.2 断言
  128. 6.2.1 启用和禁用断言
  129. 6.2.2 使用断言
  130. 6.3 日志API
  131. 6.3.1 日志API概述
  132. 6.3.2 日志级别
  133. 6.3.3 一个简单的例子
  134. 6.3.4 日志设置属性
  135. 6.3.5 日志记录器
  136. 6.3.6 性能
  137. 6.4 真实世界的异常
  138. 第7章 集合和泛型
  139. 7.1 集合
  140. 7.1.1 Collection接口
  141. 7.1.2 集合类型
  142. 7.1.3 Map接口
  143. 7.2 类型限制
  144. 7.2.1 容器
  145. 7.2.2 容器能固定吗?
  146. 7.3 引入泛型
  147. 7.4 “没有勺子”
  148. 7.4.1 擦除
  149. 7.4.2 原始类型
  150. 7.5 参数化类型关系
  151. 7.6 类型强制转换
  152. 7.6.1 集合与数组间的转换
  153. 7.6.2 迭代器
  154. 7.7 深入分析:sort()方法
  155. 7.8 应用:农场的树
  156. 7.9 结论
  157. 第8章 文本和核心工具
  158. 8.1 String
  159. 8.1.1 构造字符串
  160. 8.1.2 转换为字符串
  161. 8.1.3 比较字符串
  162. 8.1.4 查找
  163. 8.1.5 字符串方法小结
  164. 8.2 解析字符串
  165. 8.2.1 解析基本类型
  166. 8.2.2 分解文本
  167. 8.3 正则表达式
  168. 8.3.1 正则表达式记法
  169. 8.3.2 java.util.rege API
  170. 8.4 数学工具
  171. 8.4.1 java.lang.Math类
  172. 8.4.2 大数/精确数
  173. 8.5 日期和时间
  174. 8.5.1 本地日期和时间
  175. 8.5.2 比较和处理日期和时间
  176. 8.5.3 时区
  177. 8.5.4 解析和格式化日期和时间
  178. 8.5.5 解析错误
  179. 8.5.6 时间戳
  180. 8.6 其他有用的工具
  181. 第9章 线程
  182. 9.1 线程介绍
  183. 9.1.1 Thread类和Runnable接口
  184. 9.1.2 控制线程
  185. 9.1.3 线程之死
  186. 9.2 同步
  187. 9.2.1 串行化方法访问
  188. 9.2.2 从多个线程访问类和实例变量
  189. 9.3 调度和优先级
  190. 9.3.1 线程状态
  191. 9.3.2 时间片
  192. 9.3.3 优先级
  193. 9.3.4 交出控制
  194. 9.4 线程性能
  195. 9.4.1 同步的开销
  196. 9.4.2 线程资源消耗
  197. 9.5 并发工具
  198. 第10章 桌面应用
  199. 10.1 按钮、滑动条和文本域
  200. 10.1.1 组件层次体系
  201. 10.1.2 模型视图控制器架构
  202. 10.1.3 标签和按钮
  203. 10.1.4 文本组件
  204. 10.1.5 其他组件
  205. 10.2 容器和布局
  206. 10.2.1 Frame和Window
  207. 10.2.2 JPanel
  208. 10.2.3 布局管理器
  209. 10.3 事件
  210. 10.3.1 鼠标事件
  211. 10.3.2 动作事件
  212. 10.3.3 更改事件
  213. 10.3.4 其他事件
  214. 10.4 模式和弹出
  215. 10.4.1 消息对话框
  216. 10.4.2 确认对话框
  217. 10.4.3 输入对话框
  218. 10.5 线程问题
  219. 10.5.1 SwingUtilities和组件更新
  220. 10.5.2 计时器
  221. 10.6 下一步
  222. 10.6.1 菜单
  223. 10.6.2 项
  224. 10.6.3 自定义组件和Java 2D
  225. 10.6.4 JavaFX
  226. 10.7 用户界面和用户体验
  227. 第11章 网络和I/O
  228. 11.1 流
  229. 11.1.1 基本I/O
  230. 11.1.2 字符流
  231. 11.1.3 流包装器
  232. 11.1.4 java.io.File类
  233. 11.1.5 文件流
  234. 11.1.6 RandomAccessFile
  235. 11.2 NIO File API
  236. 11.2.1 FileSystem和Path
  237. 11.2.2 NIO文件作
  238. 11.3 NIO包
  239. 11.3.1 异步I/O
  240. 11.3.2 性能
  241. 11.3.3 映和锁定文件
  242. 11.3.4 通道
  243. 11.3.5 缓冲区
  244. 11.3.6 字符编码器和解码器
  245. 11.3.7 FileChannel
  246. 11.4 网络编程
  247. 11.5 Socket
  248. 11.5.1 客户和服务器
  249. 11.5.2 DateAtHost客户
  250. 11.5.3 一个分布式游戏
  251. 11.6 更多探索
  252. 第12章 Web编程
  253. 12.1 统一资源定位符
  254. 12.2 URL类
  255. 12.2.1 流数据
  256. 12.2.2 作为对象获得内容
  257. 12.2.3 管理连接
  258. 12.2.4 处理器的实际使用
  259. 12.2.5 有用的处理器框架
  260. 12.3 与Web应用会话
  261. 12.3.1 使用GET方法
  262. 12.3.2 使用POST方法
  263. 12.3.3 HttpURLConnection
  264. 12.3.4 SSL和安全Web通信
  265. 12.4 Java Web应用
  266. 12.4.1 Servlet生命周期
  267. 12.4.2 Servlet
  268. 12.4.3 HelloClient Servlet
  269. 12.4.4 Servlet响应
  270. 12.4.5 Servlet参数
  271. 12.4.6 ShowParameters Servlet
  272. 12.4.7 用户会话管理
  273. 12.4.8 ShowSession Servlet
  274. 12.5 Servlet容器
  275. 12.5.1 用web.ml和注解进行配置
  276. 12.5.2 URL模式映
  277. 12.5.3 部署HelloClient
  278. 12.6 庞大的万维网
  279. 第13章 扩展Java
  280. 13.1 Java版本
  281. 13.2 Lambda表达式
  282. 13.3 扩展Java核心特性
  283. 13.4 结束语和前景展望
  284. 附录A 代码示例和IntelliJ IDEA
  285. A.1 获取主要代码示例
  286. A.2 安装IntelliJ IDEA
  287. A.2.1 在Linu上安装
  288. A.2.2 在macOS上安装
  289. A.2.3 在Windows上安装
  290. A.3 导入示例
  291. A.4 运行示例
  292. A.5 获取Web代码示例
  293. A.6 处理Servlet
  294. 附录B 术语表
书名:Java学习手册(第五版)
译者:苏钰涵 译
国内出版社:中国电力出版社
出版时间:2021年11月
页数:512
书号:978-7-5198-5937-4
原版书书名:Learning Java, 5th Edition
原版书出版商:O'Reilly Media
Marc Loy
 
Marc Loy是Galileo Systems, LLC的高级程序员,但他主要为各种公司(包括Sun Microsystems)教授Java和Perl课程。他早在Java的alpha阶段就开始使用它。除了教课之外,他还为很多公司开发各种规模的Java应用程序。他从Wisconsin大学Madison分校获得了计算机科学硕士学位,现在仍同妻子Ron Becher住在Madison。
 
 
Patrick Niemeyer
 
Patrick Niemeyer是一位独立的咨询师和作者,精通网络和分布式应用领域。他最早于西南贝尔实验室技术资源部门(Southwestern Bell Technology Resources)任职时开始涉足Oak。他是Java脚本语言BeanShell的创始人。
 
 
Daniel Leuck
 
Dan Leuck是Ikayzo公司的CEO,这是一家以东京和檀香山为基地的交互设计和软件开发公司,其客户包括Sony、Oracle、 Nomura、PIMCO以及联邦政府。Dan在Java社群很活跃,是众多JCP专家组的成员。
 
 
购买选项
定价:148.00元
书号:978-7-5198-5937-4
出版社:中国电力出版社