具体描述
作为一本最全面、极具实用价值的Java 7入门书籍,《Java 7基础教程》
首先展示了如何开始编写第一个程序,继而详细阐释了Java 7的基础知识,包括运算、数据类型、分支和循环,以及面向对象语言是如何定义和解决问题的。当然了,像如何操作文件、如何读取文件内容以及如何为程序创建用户界面这些软件开发人员必须掌握的知识,《Java 7基础教程》也会一一道来。更有动画及电子游戏等内容为我们打开兴趣之门。
《Java 7基础教程》是想要掌握Java语言的开发人员的理想读物。
作者简介
Jay Bryant
诗人、教师、技术作家、资深软件开发人员。美国怀俄明州立大学英语文学硕士。1986年以来致力于编写软件手册,曾为通用电气、摩托罗拉、3M及必能宝等公司撰写文档。曾效力于《波士顿环球报》及Logical Information Machines公司。与人合著有Pro HTML5 Performance。
目录信息
1.1 安装JDK 1
1.2 安装Eclipse 2
1.3 创建第一个Java项目 2
1.4 创建程序 4
1.4.1 为程序添加更多功能 6
1.4.2 进一步开发 7
1.4.3 关于Java对象 8
1.5 小结 9
第2章 Java语法 10
2.1 样例 10
2.1.1 代码行 13
2.1.2 包声明 15
2.1.3 import导入 16
2.1.4 类 17
2.1.5 字段 18
2.1.6 方法 19
2.1.7 构造方法 21
2.1.8 访问修饰符 21
2.1.9 接口 22
2.1.10 异常 23
2.1.11 代码块 25
2.1.12 注释 26
2.2 小结 28
第3章 数据类型 29
3.1 基本数据类型 29
3.1.1 整型数据 29
3.1.2 实型数据 30
3.1.3 布尔型数据 30
3.1.4 字符型数据 31
3.1.5 特别的数据类型:字符串 31
3.1.6 字面常量 32
3.2 包装类 34
3.3 数组 36
3.4 不存在的类型:null 37
3.5 枚举 38
3.6 小结 41
第4章 运算符 42
4.1 Java运算符 42
4.1.1 运算符的优先级 42
4.1.2 被遗忘的运算符:小括号 43
4.1.3 后缀运算符 43
4.1.4 一元运算符 44
4.1.5 强制类型转换运算 45
4.1.6 乘法类运算符 47
4.1.7 加法类运算符 48
4.1.8 移位运算符 49
4.1.9 关系运算符 50
4.1.10 相等运算符 52
4.1.11 按位与运算符(&) 53
4.1.12 按位异或运算符(^) 54
4.1.13 按位或运算符(|) 54
4.1.14 逻辑与运算符(&&) 54
4.1.15 逻辑或运算符(||) 55
4.1.16 赋值运算符 56
4.2 对象的比较和排序 57
4.2.1 实现equals方法 57
4.2.2 用于排序的比较 60
4.3 小结 65
第5章 流程控制、循环以及分支 66
5.1 流程控制 66
5.1.1 if和if-else语句 66
5.1.2 switch语句 68
5.2 循环 71
5.2.1 for循环 71
5.2.2 while循环 74
5.2.3 do-while循环 76
5.3 分支 77
5.3.1 break语句 77
5.3.2 continue语句 78
5.3.3 return语句 80
5.4 小结 81
第6章 面向对象编程 82
6.1 对象 82
6.2 封装 83
6.3 继承 83
6.3.1 多重继承 84
6.3.2 通过接口为行为建模 85
6.3.3 抽象类 85
6.3.4 静态成员 87
6.4 多态 88
6.5 用Java语言为动物建模 89
6.6 建模粒度的经验 93
6.7 传引用和传值 94
6.8 小结 96
第7章 开发用户界面 97
7.1 Java Swing基础 97
7.2 大一些的Swing应用 105
7.3 小结 133
第8章 读写文件 135
8.1 使用File对象 135
8.1.1 打开文件 137
8.1.2 删除文件 138
8.1.3 使用临时文件 139
8.1.4 创建目录 141
8.1.5 删除目录 143
8.1.6 删除多个目录 143
8.2 读写文件内容 145
8.2.1 流 145
8.2.2 文件内容的读取 145
8.2.3 文件内容的写入 147
8.3 小结 150
第9章 读写XML 152
9.1 XML的结构 152
9.2 XML和流 155
9.3 DOM和SAX 156
9.4 写XML 157
9.4.1 用DOM写XML文件 158
9.4.2 用String写XML文件 161
9.5 读取XML文件 162
9.5.1 用DOM读取XML文件 162
9.5.2 用SAX读取XML文件 164
9.6 工厂类浅谈 167
9.7 小结 167
第10章 动画 168
10.1 时序就是一切 168
10.2 动画:一个简单的例子 169
10.3 让多个项目同时动起来 173
10.4 精灵动画 178
10.5 小结 184
第11章 用Eclipse调试程序 186
11.1 调试流程 187
11.2 没有调试器的调试方法 187
11.3 启动Eclipse调试器 188
11.4 断点和变量 189
11.4.1 设置行断点 189
11.4.2 关于作用域 190
11.4.3 删除行断点 192
11.4.4 禁止行断点 192
11.4.5 设置条件断点 192
11.5 调试小贴士和技巧 194
11.6 修复Fireworks程序 195
11.7 小结 197
第12章 电子游戏 198
12.1 电子游戏原理 198
12.1.1 用户界面 198
12.1.2 游戏逻辑 199
12.1.3 游戏循环 199
12.2 TargetClick游戏 199
12.3 靶场射击游戏 207
12.3.1 扩展ShootingGallery游戏 221
12.3.2 限制条件的说明 221
12.4 游戏设计资源 222
12.5 小结 222
第13章 垃圾回收 224
13.1 内存分配 224
13.1.1 Java垃圾回收算法:标记清除法 226
13.1.2 内存设定 227
13.2 垃圾回收 228
13.2.1 代的概念 229
13.2.2 部分回收和完全回收 230
13.2.3 垃圾回收是基于事件驱动的 230
13.2.4 垃圾回收的有关设定 230
13.3 优化垃圾回收 231
13.4 回收提示 233
13.5 阻止垃圾回收 233
13.6 一种新型的垃圾回收器 234
13.7 小结 235
第14章 递归 236
14.1 递归是语言的基本特征 236
14.2 递归无处不在 237
14.3 明确终止条件 237
14.4 何时避免递归 238
14.5 何时使用递归 239
14.6 计算斐波那契序列 239
14.7 计算分形图形 240
14.7.1 绘制谢尔宾斯基三角形 240
14.7.2 绘制分形树 244
14.8 小结 247
第15章 泛型和正则表达式 249
15.1 泛型 249
15.2 正则表达式 253
15.3 小结 259
· · · · · · (收起)
读后感
在动辄8,9百页的Java学习书籍中,这本书相当的薄。 不同于一般的思路,这本书不是平铺直叙的给你啊讲Java各个理论。他是从一段段的程序出发。然后介绍概念,用法。 有些地方说明的不够格仔细,比如@override出现了很多次,也没有什么类似说明。 这本书比较特别的是,他有写章节...
在动辄8,9百页的Java学习书籍中,这本书相当的薄。 不同于一般的思路,这本书不是平铺直叙的给你啊讲Java各个理论。他是从一段段的程序出发。然后介绍概念,用法。 有些地方说明的不够格仔细,比如@override出现了很多次,也没有什么类似说明。 这本书比较特别的是,他有写章节...
在动辄8,9百页的Java学习书籍中,这本书相当的薄。 不同于一般的思路,这本书不是平铺直叙的给你啊讲Java各个理论。他是从一段段的程序出发。然后介绍概念,用法。 有些地方说明的不够格仔细,比如@override出现了很多次,也没有什么类似说明。 这本书比较特别的是,他有写章节...
在动辄8,9百页的Java学习书籍中,这本书相当的薄。 不同于一般的思路,这本书不是平铺直叙的给你啊讲Java各个理论。他是从一段段的程序出发。然后介绍概念,用法。 有些地方说明的不够格仔细,比如@override出现了很多次,也没有什么类似说明。 这本书比较特别的是,他有写章节...
在动辄8,9百页的Java学习书籍中,这本书相当的薄。 不同于一般的思路,这本书不是平铺直叙的给你啊讲Java各个理论。他是从一段段的程序出发。然后介绍概念,用法。 有些地方说明的不够格仔细,比如@override出现了很多次,也没有什么类似说明。 这本书比较特别的是,他有写章节...
用户评价
这本书的理论深度和广度简直像是两个极端在打架。一方面,它用大段的篇幅去解释一些已经被现代编程实践所淘汰或者不常用的历史遗留特性,仿佛在做一部编程语言的“考古报告”,这对于急于掌握当下主流技术的我来说,显得非常拖沓和不合时宜。另一方面,对于一些真正构成Java核心竞争力的现代特性,比如NIO的深入机制、泛型的类型擦除原理,它只是蜻蜓点水般地提了一下名字,完全没有提供深入剖析,导致我读完后对这些高级概念依然是一知半解,只能转向其他更专业的书籍去补课。这使得这本书的定位非常模糊:它既不够“基础”到能让一个零基础小白快速入门,又不够“深入”到能让进阶者有所收获。它更像是一个匆忙拼凑的知识点列表,缺乏一个清晰、有逻辑的知识体系构建,读起来像是在走马观花,看完后感觉抓住了很多零散的知识点,却无法将它们串联成一个完整的知识网络。
我特别不能忍受的是这本书的术语使用和解释方式。很多时候,作者似乎默认读者已经具备了深厚的计算机科学背景。当引入一个新概念时,例如“封装性”或“多态性”,书里往往直接抛出官方的、教科书式的定义,却鲜有通过生动的比喻或贴近生活的场景来加以阐释。这对于我这种需要“具象化”才能理解抽象概念的学习者来说,简直是噩梦。我需要的是将这些技术术语与我熟悉的现实世界建立联系,但这本书在这方面做得极其失败,导致我不得不频繁地暂停阅读,去谷歌搜索这些术语的“通俗解释”。此外,对于一些细微的语法差异和关键字的精确含义,书中也常常含糊其辞,没有给出清晰的边界说明,这在实际编程中极易引发混淆和不确定性。我需要的是一本能像一位耐心的导师一样,一步步引导我理解复杂概念的书籍,而不是一本冷冰冰的、堆砌术语的参考手册。
我必须得说,这本书在代码示例的选取和深度上,完全没有达到我作为一个希望系统学习Java的读者的预期。那些随处可见的“Hello World”级别的入门代码,对于一个已经接触过其他编程语言的人来说,简直是一种浪费时间。更令人沮丧的是,当它试图引入一些稍微复杂一点的API或设计模式时,给出的示例代码往往是不完整或者有明显错误的。比如在讲解异常处理时,书中提供的`try-catch-finally`结构,连基本的资源关闭(比如流的关闭)都没有通过推荐的最佳实践来体现,这简直是在误导读者形成不规范的编程习惯。对于“基础教程”这个定位,它应该提供的是能让读者“立竿见影”地应用到实际小项目中的例子,而不是那些停留在理论层面、缺乏实际操作价值的“玩具代码”。当我尝试将书中的代码片段复制到我的IDE中运行时,经常需要自己去Debug修正编译错误,这极大地消耗了我学习新知识的热情,让我不得不怀疑作者对这些基础库的掌握程度是否真的扎实。
这本书的排版简直是一场灾难,看得我血压都要上来了。字体大小忽大忽小,行间距也毫无章法可言,有时候为了看清楚一个代码示例,我得眯着眼睛凑到屏幕前,感觉自己像在玩“大家来找茬”。更别提那些插图了,很多关键概念的流程图,画得跟小学生涂鸦似的,线条粗糙,颜色搭配也让人眼花缭乱,完全起不到辅助理解的作用,反而成了视觉干扰源。章节之间的逻辑跳跃性极大,前一秒还在讲基础语法,下一页突然就跳到了多线程的复杂概念,中间的过渡和铺垫少得可怜,让我这个初学者感觉像是被人推到深水区,完全没有缓冲的机会。阅读体验极差,我不得不频繁地在不同地方寻找替代的在线资源来弥补这些排版和结构上的硬伤,这本书更像是一个粗糙的草稿堆砌而成,而不是精心打磨的教学材料。如果一个技术书籍连最基本的阅读舒适度都无法保障,那么它在传授知识的有效性上自然要大打折扣。我希望作者和出版方能在这方面多下点功夫,毕竟,学习本来就够枯燥了,书籍本身的呈现方式至少应该友好一些。
这本书的配套学习资源简直是形同虚设。虽然在购买时附带了一个在线代码仓库的链接,但当我尝试访问时,发现该仓库已经很久没有更新,很多代码示例已经无法直接编译运行,甚至部分目录结构都显得混乱不堪,让人无从下手。更糟糕的是,书中多次提到的“练习题和解答”,在书的最后部分只给出了题目列表,而详细的解题思路和代码实现却需要通过另一个需要额外注册和付费的平台才能获取,这无疑是一种变相的二次收费,严重损害了作为一本“教程”的完整性。一个好的教程,其价值不仅在于书本上的文字,更在于其配套的、可供检验学习成果的支持系统。这本书在这方面的缺失,使得学习过程缺乏反馈机制,学习效果大打折扣。当我遇到困难时,找不到任何可信赖的官方渠道去寻求帮助或核对自己的理解,这使得整个学习过程充满了不安全感和自我怀疑。
浅显易懂的入门教程,作者提出了不少在实践中需要注意的细节。
作者本人就是非科班出身,通过多年的实践成为了一个程序员。 因此作者在书中也没有太多的理论描述,完全是通过代码描述了JAVA7的主要语言特点。 对于不追求了解JAVA语言设计中的为什么,只想学习怎么使用JAVA编程,那么这本书算是本比较好的入门书。
还行
这书错误有点多
感觉适合有C/C++基础的人快速转向Java开发。