Java语言的经典教材,多年来畅销不衰。本书全面整合了Java 8的特性,采用“基础优先,问题驱动”的教学方式,循序渐进地介绍了程序设计基础、解决问题的方法、面向对象程序设计、图形用户界面设计、异常处理、I/O和递归等内容
本书是Java语言的经典教材,多年来畅销不衰。本书全面整合了Java
8的特性,采用“基础优先,问题驱动”的教学方式,循序渐进地介绍了程序设计基础、解决问题的方法、面向对象程序设计、图形用户界面设计、异常处理、I/O和递归等内容。此外,本书还全面且深入地覆盖了一些高级主题,包括算法和数据结构、多线程、网络、国际化、高级GUI等内容。
本书中文版由《Java语言程序设计
基础篇》和《Java语言程序设计
进阶篇》组成。基础篇对应原书的第1~18章,进阶篇对应原书的第19~33章。为满足对Web设计有浓厚兴趣的同学,本版在配套网站上增加了第34~42章的内容,以提供更多的相关信息。
本书特点
基础篇介绍基础内容,进阶篇介绍高级内容,便于教师按需选择理想的教材。
全面整合了Java
8的特性,对全书的内容进行了修订和更新,以反映Java程序设计的全新技术发展。
对面向对象程序设计进行了深入论述,包含GUI程序设计的基础和扩展。
提供的大量示例中都包括了对问题求解的详细步骤,很多示例都是随着Java技术的引入不断地进行增强,这种循序渐进的讲解方式更易于学生学习。
用JavaFX取代了Swing,极大地简化了GUI编程,比Swing更易于学习。
更多有趣示例和练习,激发学生兴趣。在配套网站上还为教师提供了100多道的编程练习题。
作者简介
梁勇(Y. Daniel Liang)
现为阿姆斯特朗亚特兰大州立大学计算机科学系教授。之前曾是普度大学计算机科学系副教授,并两次获得普度大学杰出研究奖。他所编写的Java教程在美国大学Java课程中采用率极高,同时他还兼任Prentice
Hall Java系列丛书的编辑。他是“Java
Champion”荣誉得主,并在世界各地为在校学生和程序员做JAVA程序设计方法及技术方面的讲座。
译者简介
戴开宇 复旦大学软件学院教师,工程硕士导师,中国计算机学会会员。博士毕业于上海交通大学计算机应用专业,2011~2012年在美国佛罗里达大学作访问学者。承担多门本科专业课程、通识教育课程以及工程硕士课程,这些课程被评为校精品课程,上海市重点建设课程,IBM-教育部精品课程等。
Introduction to Java Programming, Comprehension Version, Tenth Edition
出版者的话
中文版序
译者序
前言
第1章 计算机、程序和Java概述 1
1.1 引言 1
1.2 什么是计算机 2
1.2.1 中央处理器 2
1.2.2 比特和字节 3
1.2.3 内存 3
1.2.4 存储设备 4
1.2.5 输入和输出设备 4
1.2.6 通信设备 5
1.3 编程语言 6
1.3.1 机器语言 6
1.3.2 汇编语言 6
1.3.3 高级语言 7
1.4 操作系统 8
1.4.1 控制和监视系统的活动 8
1.4.2 分配和调配系统资源 8
1.4.3 调度操作 8
1.5 Java、万维网以及其他 9
1.6 Java语言规范、API、JDK和IDE 10
1.7 一个简单的Java程序 11
1.8 创建、编译和执行Java程序 13
1.9 程序设计风格和文档 16
1.9.1 正确的注释和注释风格 16
1.9.2 正确的缩进和空白 16
1.9.3 块的风格 17
1.10 程序设计错误 17
1.10.1 语法错误 17
1.10.2 运行时错误 18
1.10.3 逻辑错误 18
1.10.4 常见错误 19
1.11 使用NetBeans开发Java程序 20
1.11.1 创建Java工程 20
1.11.2 创建Java类 21
1.11.3 编译和运行类 22
1.12 使用Eclipse开发Java程序 22
1.12.1 创建Java工程 22
1.12.2 创建Java类 24
1.12.3 编译和运行类 24
关键术语 25
本章小结 25
测试题 26
编程练习题 26
第2章 基本程序设计 28
2.1 引言 28
2.2 编写简单的程序 28
2.3 从控制台读取输入 31
2.4 标识符 34
2.5 变量 34
2.6 赋值语句和赋值表达式 36
2.7 命名常量 37
2.8 命名习惯 37
2.9 数值数据类型和操作 38
2.9.1 数值类型 38
2.9.2 从键盘读取数值 39
2.9.3 数值操作符 39
2.9.4 幂运算 41
2.10 数值型直接量 41
2.10.1 整型直接量 42
2.10.2 浮点型直接量 42
2.10.3 科学记数法 42
2.11 表达式求值以及操作符优先级 43
2.12 示例学习:显示当前时间 44
2.13 增强赋值操作符 46
2.14 自增和自减操作符 47
2.15 数值类型转换 48
2.16 软件开发过程 50
2.17 示例学习:整钱兑零 54
2.18 常见错误和陷阱 56
关键术语 58
本章小结 58
测试题 59
编程练习题 59
第3章 选择 64
3.1 引言 64
3.2 boolean数据类型 64
3.3 if语句 66
3.4 双分支if-else语句 68
3.5 嵌套的if语句和多分支if-else语句 69
3.6 常见错误和陷阱 71
3.7 产生随机数 74
3.8 示例学习:计算身体质量指数 76
3.9 示例学习:计算税率 77
3.10 逻辑操作符 80
3.11 示例学习:判定闰年 83
3.12 示例学习:彩票 84
3.13 switch语句 85
3.14 条件表达式 88
3.15 操作符的优先级和结合规则 89
3.16 调试 90
关键术语 91
本章小结 91
测试题 92
编程练习题 92
第4章 数学函数、字符和字符串 100
4.1 引言 100
4.2 常用数学函数 101
4.2.1 三角函数方法 101
4.2.2 指数函数方法 102
4.2.3 取整方法 102
4.2.4 min、max和abs方法 102
4.2.5 random方法 103
4.2.6 示例学习:计算三角形的角度 103
4.3 字符数据类型和操作 105
4.3.1 Unicode和ASCII码 105
4.3.2 特殊字符的转义序列 106
4.3.3 字符型数据与数值型数据之间的转换 107
4.3.4 字符的比较和测试 107
4.4 String类型 109
4.4.1 求字符串长度 110
4.4.2 从字符串中获取字符 110
4.4.3 连接字符串 111
4.4.4 字符串的转换 111
4.4.5 从控制台读取字符串 112
4.4.6 从控制台读取字符 112
4.4.7 字符串比较 112
4.4.8 获得子字符串 114
4.4.9 获取字符串中的字符或者子串 115
4.4.10 字符串和数字间的转换 116
4.5 示例学习 117
4.5.1 猜测生日 118
4.5.2 将十六进制数转换为十进制数 121
4.5.3 使用字符串修改彩票程序 122
4.6 格式化控制台输出 123
关键术语 126
本章小结 127
测试题 127
编程练习题 127
第5章 循环 133
5.1 引言 133
5.2 while循环 134
5.2.1 示例学习:猜数字 136
5.2.2 循环设计策略 138
5.2.3 示例学习:多个减法测试题 138
5.2.4 使用标记值控制循环 140
5.2.5 输入和输出重定向 141
5.3 do-while循环 143
5.4 for循环 144
5.5 采用哪种循环 147
5.6 嵌套循环 149
5.7 最小化数值错误 151
5.8 示例学习 152
5.8.1 求最大公约数 152
5.8.2 预测未来学费 154
5.8.3 将十进制数转换为
十六进制数 155
5.9 关键字break和continue 156
5.10 示例学习:判断回文串 159
5.11 示例学习:显示素数 160
关键术语 162
本章小结 163
测试题 163
编程练习题 163
第6章 方法 171
6.1 引言 171
6.2 定义方法 172
6.3 调用方法 173
6.4 void方法示例 175
6.5 通过传值进行参数传递 178
6.6 模块化代码 181
6.7 示例学习:将十六进制数转换为十进制数 183
6.8 重载方法 185
6.9 变量的作用域 187
6.10 示例学习:生成随机字符 188
6.11 方法抽象和逐步求精 190
6.11.1 自顶向下的设计 191
6.11.2 自顶向下和自底向上的实现 192
6.11.3 实现细节 193
6.11.4 逐步求精的优势 196
关键术语 196
本章小结 197
测试题 197
编程练习题 197
第7章 一维数组 207
7.1 引言 207
7.2 数组的基础知识 207
7.2.1 声明数组变量 208
7.2.2 创建数组 208
7.2.3 数组大小和默认值 209
7.2.4 访问数组元素 209
7.2.5 数组初始化语法 210
7.2.6 处理数组 210
7.2.7 foreach循环 212
7.3 示例学习:分析数字 214
7.4 示例学习:一副牌 215
7.5 数组的复制 217
7.6 将数组传递给方法 218
7.7 从方法中返回数组 221
7.8 示例学习:统计每个字母出现的次数 221
7.9 可变长参数列表 224
7.10 数组的查找 225
7.10.1 线性查找法 225
7.10.2 二分查找法 226
7.11 数组的排序 228
7.12 Arrays类 230
7.13 命令行参数 232
7.13.1 向main方法传递字符串 232
7.13.2 示例学习:计算器 232
关键术语 234
本章小结 235
测试题 235
编程练习题 235
第8章 多维数组 242
8.1 引言 242
8.2 二维数组的基础知识 242
8.2.1 声明二维数组变量并创建二维数组 243
8.2.2 获取二维数组的长度 244
8.2.3 锯齿数组 244
8.3 处理二维数组 245
8.4 将二维数组传递给方法 247
8.5 示例学习:多选题测验评分 248
8.6 示例学习:找出距离最近的点对 249
8.7 示例学习:数独 251
8.8 多维数组 254
8.8.1 示例学习:每日温度和湿度 255
8.8.2 示例学习:猜生日 256
程序在第6行创建一个魔法数,然后提示用户在一个循环中连续输入猜测值(第12~23行)。对每一次猜测,程序检查该猜测数是否正确,是偏高还是偏低了(第17—22行)。当某次猜测正确时,程序就退出这个循环(第12行)。注意:guess被初始化为—1将它初始化为0到100之间的值会出错,因为它很呵能就是要猜的数。
5.2.2循环设计策略
编写一个正确的循环对编程新手来说,并不是件容易的事。编写循环时应该考虑如下二个步骤:
第一步:确定需要重复的语句。
第二步:将这些语句放在一个循环中,如下所示:
5.23示例学习:多个减法测试题
程序清单3—3中的数学减法学习工具程序,每次运行只能产生一道题目。可以使用一个循环重复产生题目。那么如何编写能产生5道题目的代码呢?遵循循环设计策略。首先,确定需要重复的语句。这些语句包括:获取两个随机数,提示用户对两数做减法然后给试题打分。然后,将这些语句放在一个循环里。最后,增加一个循环控制变量和循环继续条件,然后执行循环五次。
程序清单5—4给出的程序可以产生5道问题,在学生回答完所有5个问题后,报告回答正确的题数。这个程序还显示该测试所花的时间,并列出所有的题目。
……
这本书的上市,简直就是一场技术界的盛宴!作为一名在Java世界里摸爬滚打多年的老兵,我一直对这本经典的教材念念不忘。翻开这崭新的第10版,我仿佛看到了熟悉的味道,又感受到了扑面而来的新鲜空气。那些经典的案例,那些深入浅出的讲解,依旧是那么的精炼和到位,仿佛是一位老友在娓娓道来,让你在轻松愉快的氛围中,逐步掌握Java的精髓。书中对于每一个知识点的剖析都细致入微,从最基础的语法结构,到复杂的面向对象设计,再到后期的泛型和并发,简直是面面俱到,无一遗漏。我特别欣赏作者在阐述概念时所采用的比喻和实例,它们总是那么恰如其分,能够迅速将抽象的理论转化为具象的理解。即使是对于初学者来说,也不会感到过于晦涩难懂,而是能循序渐进地建立起扎实的编程思维。而且,新版本在内容上也有不少更新,对于一些新的技术趋势和最佳实践都有所提及,这对于希望紧跟技术前沿的开发者来说,无疑是一大福音。总而言之,这本书不仅仅是一本教材,更像是一份宝贵的编程指南,无论你是初次接触Java,还是希望巩固和提升自己的技能,它都能为你提供源源不断的知识养分。
评分对于一个刚开始接触编程的新手来说,选择一本合适的入门教材至关重要。而这本《Java语言程序设计(基础篇 原书第10版)》无疑是我遇到的最优秀的教材之一。在阅读之前,我对编程完全一窍不通,甚至连“变量”是什么概念都模糊不清。但是,这本书从最最基础的概念讲起,循序渐进,一点一点地引导我走进了Java的世界。书中大量的例子,都是贴近生活,或者是一些简单易懂的小程序,让我能够立刻动手实践,而不是仅仅停留在理论层面。我记得第一个让我产生成就感的程序,就是跟着书本一步步写出来的,虽然很简单,但那种“我做出来了”的喜悦感,至今难忘。而且,这本书并没有把我淹没在各种复杂的术语中,而是用一种非常易懂的语言来解释每一个概念。我感觉作者就像一位耐心的老师,时刻担心我跟不上,所以会不断地提醒我,强化我的理解。这本书让我对编程的恐惧感消失了,取而代之的是浓厚的兴趣和自信。
评分我最近在钻研Java的时候,恰好遇到了瓶颈,各种资料看得眼花缭乱,却总觉得抓不住重点。正当我一筹莫展之际,朋友向我推荐了这本《Java语言程序设计(基础篇 原书第10版)》。说实话,一开始我对一本“基础篇”的书并没有抱太高的期望,毕竟我自认为已经有了一定的基础。然而,当我翻阅起来,却惊喜地发现,这本书的深度和广度完全超出了我的想象。它并没有停留在简单的语法罗列,而是深入剖析了Java的底层机制,以及各种设计模式的应用。例如,书中对多线程并发的讲解,简直是让我茅塞顿开,之前那些模糊的概念一下子就清晰了。它不仅仅告诉你“怎么做”,更重要的是告诉你“为什么这么做”,并且提供了多种实现方式,以及各自的优缺点分析。这对于我这种喜欢刨根问底的人来说,简直是如获至宝。而且,书中提供的代码示例都非常具有代表性,并且附带了详细的解释,让读者能够理解每一行代码的意义和作用。我发现,通过阅读这本书,我不仅巩固了已有的知识,更是在很多方面有了新的突破,对Java的理解也上升到了一个全新的高度。
评分作为一个多年从事软件开发的工程师,我深知一本好的技术书籍的价值。而这本《Java语言程序设计(基础篇 原书第10版)》绝对是我技术书架上不可或缺的一部分。它不仅仅是一本“基础篇”,更是一本能够陪伴你从入门到精通的宝典。书中对于Java核心概念的阐述,可以说是做到了极致的精辟和深刻。那些我曾经在实际开发中遇到过的,但一时难以解释清楚的疑难杂症,在这本书中都能找到清晰的答案。例如,在处理集合框架时,作者不仅讲解了各种集合类的使用方法,更深入地分析了它们内部的实现原理,这对于优化代码性能、选择合适的集合类至关重要。此外,书中对异常处理、IO流、文件操作等实用技术的讲解,也同样细致入微,并且结合了大量的实际应用场景,让读者能够学以致用。我尤其欣赏的是,这本书始终贯穿着“面向对象”的设计思想,让你在学习具体语法的同时,也能领悟到如何写出更健壮、更易于维护的代码。这本书对于提升我的编程功底,绝对起到了至关重要的作用。
评分这本Java教材的排版和设计,真的是没得说。打开封面,那种厚重感和质感就让人觉得内容一定很扎实。内页的纸张质量也很好,印刷清晰,字体大小适中,阅读起来非常舒服,长时间看书也不会感到眼睛疲劳。最让我印象深刻的是,书中每一章的结构都非常清晰,有明确的学习目标,章节开头的引导语能够帮助读者快速了解本章将要学习的内容,章节结尾的总结和练习题更是对知识点的巩固起到了至关重要的作用。我特别喜欢书中的一些图示和流程图,它们将复杂的概念可视化,让理解变得更加直观和容易。例如,在讲解类与对象的关系时,作者通过生动的图形化表示,让我一下子就明白了继承、封装、多态这些核心概念。而且,这本书的语言风格也非常考究,既严谨又不失活泼,读起来一点也不枯燥。我常常会在阅读过程中,因为作者的某个生动比喻而会心一笑。这本教材给我带来的不仅仅是知识,更是一种愉悦的学习体验。
评分书不错,讲的很详细,不知道是不是运输的过程中书损坏了些,不影响使用,关键是送货快!
评分值得大家去买呀,入门推荐精选
评分优点:字体很清楚,阅读很舒服不费眼睛,内容也不错,java新手入门相当可以。
评分很好!!!!!!!!!!!!!!!!!!!!!!
评分Java语言的经典教材,多年来畅销不衰。本书全面整合了Java 8的特性,采用“基础优先,问题驱动”的教学方式,循序渐进地介绍了程序设计基础、解决问题的方法、面向对象程序设计、图形用户界面设计、异常处理、I/O和递归等内容
评分写的很清楚,我是计算机专业的,以前用的head first学的java,两年没碰代码,工作需要又重打基础,跟head first系列相比,没那么多废话!
评分书是好东西!我徜徉在知识的海洋无法自拔!!!!!
评分京东的物流真的快,继续使用
评分缺点:因为没有access code,导致练习题答案无法直接从官网获得,需要去网上自己找。我是从csdn和贴吧找到的,过程曲折。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2026 book.cndgn.com All Rights Reserved. 新城书站 版权所有