标题：Java必须知道的300个问题
作者：明日科技
图书详细信息：ISBN：9787302276692  定价：49.8元
印次：1-1
装帧：平装
印刷日期：2011-12-28
图书简介：本书以基础知识为框架，介绍了各部分知识所对应的常见开发疑难问题，并作了透彻地解析。主要内容包括Java语言概述、Eclipse开发工具、Java语言基础、流程控制、数组、面向对象入门、面向对象进阶、字符串与包装类、Java集合类框架、常用数学工具类、异常处理、输入/输出、枚举类型与泛型、Swing入门、多线程、网络通信和数据库操作。
书中列出的300个问题，都是一线开发人员在实际项目中经常会遇到的疑难问题。针对这些问题，本书给出了详尽的解决方案，并进行了技术上的解析。通过对本书的学习，能够帮助读者迅速提高解决实际问题的能力。
本书提供了大量的源程序、素材，提供了相关的模块库、案例库、素材库、题库等多种形式的辅助学习资料，还提供迅速及时的微博、QQ、论坛等技术支持。
本书内容详尽，对于较难理解的内容，配合实例进行讲解，适合作为Java初学者的辅助教材，也适合作为相关培训机构的师生和软件开发人员的参考资料。前言：学会站在巨人的肩膀上！
程序员在求职时，经常会被问到有关开发经验的问题。例如，“从事了多少年的开发？”“参与了哪些大型项目？”……为何面试官对项目经验丰富的求职者青睐有加？究其根源，是由于程序开发是一门实践性非常强的学科。“纸上得来终觉浅，绝知此事要躬行”，编程经验是程序开发者在长期的实践中逐步积累的、属于自己的技术资源库，其中包括各种习惯用法、知识理论、代码片段、应用技巧等。要想成为经验丰富的编程高手，除了勤学苦练，也要学会站在前人的肩膀上，分析别人的代码而有所领悟，或者借鉴他人的经验技巧形成自己的技能，在认识错误与解决问题中进步。这也是每个编程者的必经之路。
本书汇集了300个一线开发人员常见的疑难问题，每个问题都给出了详细的解答与点评，图文并茂、难易并举。通过学习本书，您可以尽享前人的开发经验，迅速提升个人的开发能力。
本书内容
本书以基础知识为框架，介绍了各部分知识中所对应的常见开发疑难问题，并作了透彻地解析。全书共分为17章，主要内容包括Java语言概述、Eclipse开发工具、Java语言基础、流程控制、数组、面向对象入门、面向对象进阶、字符串与包装类、Java集合类框架、常用数学工具类、异常处理、输入/输出、枚举类型与泛型、Swing入门、多线程、网络通信和数据库操作。
为了更清晰地阐述问题并给出详尽的解决方案，本书设置了以下栏目。
* 问题阐述：对问题进行详细阐述，对复杂问题给出问题产生条件，并对问题中需要解决的部分作出说明。
* 专家解答：根据问题进行具体分析，给出解题思路及正确答案，并提供该问题涉及的技术知识。
* 专家点评：对问题及解答进行总结，为以后解决问题提供思路；此外，还会列出一些此问题应该注意的事项，以及对该问题的一些拓展。
本书特色
* 贴近应用。本书精选的疑难问题都是在实际项目开发中经常会遇到的，目的就是为读者答疑解惑。
* 横向链接。本书知识框架与《Java开发入门及项目实战》一书对应，可以在使用《Java开发入门及项目实战》一书进行基础学习之后，再用本书丰富并提高技能。
* 解析透彻。本书对每个问题的相关知识都作了细致地讲解，并进行知识拓展，使读者不仅知其然而且知其所以然。
* 授人以渔。本书在讲解技术的同时，还注重对读者能力的培养，帮助其掌握分析问题与解决问题的能力。
本书配套资源
本书提供了内容丰富的配套资源，包括源程序、素材，以及模块库、案例库、题库、素材库等多项辅助内容，读者朋友可以通过如下方式获取。
第1种方式：
（1）登录清华大学出版社的网站，在网页右上角的搜索文本框中输入本书书名（注意区分大小写和留出空格），或者输入本书关键字，或者输入本书ISBN号（注意去掉ISBN号间隔线“-”），单击“搜索”按钮。
（2）找到本书后单击超链接，在该书的网页下侧单击“网络资源”超链接，即可下载。
第2种方式：
访问本书的新浪微博Javamrbook，找到配套资源的链接地址进行下载。
读者人群
本书非常适合以下人员阅读：
* 从事Java语言编程的开发人员
* 有一定语言基础，想进一步提高技能的人员
* 大中专院校的老师和学生
* 即将走上相关工作岗位的大学毕业生
* 相关培训机构的老师和学员
* Java语言编程爱好者目录：第1章  Java语言概述 1
问题1  Java语言有哪些特性？ 2
问题2  如何选择Java的分支？ 2
问题3  如何学好Java语言？ 3
问题4  如何安装JDK？ 4
问题5  如何测试JDK是否配置成功？ 7
第2章  Eclipse开发工具 9
问题6  常用的Java开发工具包括
哪些？ 10
问题7  如何获得和安装Eclipse
开发工具？ 10
问题8  如何汉化Eclipse？ 13
问题9  如何为Eclipse安装WindowBuilder插件？ 14
问题10  如何使用WindowBuilder插件？ 16
第3章  Java语言基础 17
问题11  char类型变量是否能保存
一个汉字？ 18
问题12  Java中是否有goto语句？ 18
问题13  变量和常量有什么区别？ 19
问题14  语句float num=3.14159
是否正确？ 20
问题15  short和char类型的取值
范围各是多少？ 20
问题16  final参数可以修改吗？ 21
问题17  局部变量可以定义私有
修饰类型吗？ 22
问题18  表达式3-2.6 == 0.4的值
是什么？ 23
问题19  自增、自减运算符放在变
量前后的区别是什么？ 24
问题20  用最有效率的方法算出2
乘以16等于几？ 26
问题21  &和&&两个运算符的区别
是什么？ 27
问题22  运算符=与==有何区别？ 28
问题23  能正确编译“short s = 1;
s = s + 1;”吗？ 29
问题24  表达式9/2与9/2.0的结
果是否相等？ 30
问题25  如何判断一个整数是奇数
还是偶数？ 31
问题26  不使用循环和条件语句如
何求1+2+…+n的值？ 32
问题27  复合赋值运算符+=计算的
结果一定正确吗？ 33
问题28  两个整数相乘的结果一定
正确吗？ 34
问题29  如何使用位运算符计算2
的n次幂？ 35
问题30  如何自定义类实现数值的
四舍五入？ 36
第4章  流程控制 39
问题31  如何应用if语句判断某一
年是否为闰年？ 40
问题32  if语句如何进行嵌套使用？ 41
问题33  是否可以进行字符与编码
的比较？ 42
问题34  如何修改失败的if…else语句？ 43
问题35  两个if语句为什么运行结
果不一样？ 44
问题36  可以用switch分支语句代
替if条件语句吗？ 45
问题37  switch语句的条件表达式
有哪些类型？ 46
问题38  如何防止switch分支之间
的串联？ 48
问题39  如何定义满足条件的变量？ 49
问题40  while与do…while语句的
区别是什么？ 50
问题41  为什么会出现死循环？ 51
问题42  死循环属不属于合法的循环？ 52
问题43  如何确定是使用for循环
还是while循环？ 53
问题44  如何编程实现图形输出？ 54
问题45  如何跳出当前的多重嵌
套循环？ 56
问题46  for循环中定义的变量的
作用范围是什么？ 57
问题47  如何编程解决李白提壶买
酒的问题？ 57
问题48  如何编程计算黄蓉难倒瑛
姑的数学题？ 59
问题49  break语句和continue语句
有什么区别？ 60
问题50  如何编程打印出7行的
杨辉三角？ 60
第5章  数组 62
问题51  如何声明和初始化数组？ 63
问题52  数组元素默认的初始值都
是什么？ 65
问题53  如何获取二维数组的行、
列数？ 66
问题54  如何使用for循环和简易
for循环遍历一维数组？ 68
问题55  如何将数组arr1中的部分数据
成员复制到数组arr2中？ 70
问题56  如何获取一维数组中的最大
值和最小值？ 71
问题57  如何进行数组查找？ 72
问题58  数组的排序算法有哪些？
如何实现？ 74
问题59  存储相同数据量的一维数组和
二维数组所占内存是否相同？ 80
问题60  为什么下面的代码会出现
数组下标越界异常？ 82
第6章  面向对象入门 84
问题61  面向对象的特征有哪些？ 85
问题62  为什么需要面向对象？ 86
问题63  什么是面向对象编程？ 87
问题64  什么是类？ 88
问题65  类和对象的区别是什么？ 89
问题66  抽象类与抽象方法有什么作用？ 89
问题67  如何设置类成员访问权限？ 91
问题68  构造方法有何作用？ 92
问题69  什么是方法重载？ 93
问题70  如何定义类的成员变量和方法？ 95
问题71  变量的作用范围是什么？ 96
问题72  类的成员变量和方法的命
名规范是什么？ 98
问题73  只能通过构造方法创建对象吗？ 99
问题74  什么是Java应用程序的主类？ 100
问题75  如何隐藏类的属性，使其
不会被其他类使用？ 101
问题76  什么是静态变量和静态常量？ 103
问题77  什么是静态方法？ 105
问题78  静态语句块有什么作用？ 106
问题79  如何访问类的成员变量和方法？ 107
问题80  如何在一个类中访问另一
个类的方法？ 109
第7章  面向对象进阶 111
问题81  是值传递还是引用传递？ 112
问题82  final参数可以被修改吗？ 113
问题83  接口和抽象类有何区别？ 114
问题84  如何调用父类的构造方法？ 115
问题85  如何操作被隐藏的成员变量
和被重写的成员方法？ 116
问题86  什么是方法的重写，以及
如何实现方法重写？ 118
问题87  final、finally和finalize有
什么区别？ 119
问题88  Java中如何模拟多重继承？ 120
问题89  Java中如何使用clone()
方法克隆对象？ 122
问题90  有两种方式可以实现深
克隆，其效率如何？ 127
问题91  内部类是否可以被继承？ 129
问题92  如何调用内部类和外部
类同名的成员？ 130
问题93  什么是匿名内部类，以及
如何定义匿名内部类？ 132
问题94  如何创建Class对象？ 133
问题95  如何通过反射获取类的信息？ 134
问题96  如何使用反射创建对象？ 135
问题97  如何通过反射调用方法？ 138
问题98  如何通过反射访问字段
（成员变量）？ 139
问题99  在Java语言规范中，对
equals()方法有何要求？ 141
问题100  如何重写equals()方法？ 141
第8章  字符串与包装类 144
问题101  什么是自动装包/拆包？ 145
问题102  int和Integer有什么区别？ 145
问题103  String是Java的基本数
据类型吗？ 146
问题104  表达式"3+5=" + 3 + 5的
返回值是什么？ 146
问题105  Java中String str = null与
String str = ""的区别是什么？ 147
问题106  String类是否可以被继承？ 147
问题107  如何实现字符串的大小
写转换？ 148
问题108  如何实现字符串的反向输出？ 149
问题109  运算符“==”与equals()
比较对象的区别是什么？ 150
问题110  判断字符串是否为空有
几种方式？ 152
问题111  如何实现对日期的格式化？ 153
问题112  如何实现对时间变量的
格式化？ 155
问题113  如何实现日期或时间组
合的格式化？ 156
问题114  如何实现常规类型数据
的格式化？ 157
问题115  如何实现对电话号码有
效性的验证？ 158
问题116  如何实现对手机号码的验证？ 160
问题117  如何实现对IP地址有效
性的验证？ 161
问题118  如何实现字符串类型和
数值类型的转换？ 163
问题119  如何去掉字符串中的空格？ 164
问题120  如何获取子字符串？ 165
问题121  如何判断字符串中是否
包含数字？ 166
问题122  如何实现各进制间的转换？ 168
问题123  String与StringBuilder
的区别是什么？ 169
问题124  如何替换字符串中的内容？ 170
问题125  如何获取指定编码格式
的字符串？ 172
问题126  如何实现汉字转区位码？ 173
问题127  如何实现区位码转汉字？ 175
问题128  如何实现字符串加密？ 176
问题129  如何判断字符是英文
还是汉字？ 177
问题130  如何实现大小写金额
之间的转换？ 178
第9章  Java集合类框架 180
问题131  数组的效率一定比集合
类高吗？ 181
问题132  数组和集合类之间如何转换？ 182
问题133  数组与ArrayList有区别吗？ 183
问题134  Collection和Collections
的区别是什么？ 184
问题135  有哪些方式可用于遍
历集合类？ 185
问题136  List接口的实现类之间的
继承关系如何？ 188
问题137  Iterator接口和ListIterator
接口有何区别？ 189
问题138  Iterator和Enumeration的
区别是什么？ 190
问题139  ArrayList和LinkedList的
区别是什么？ 190
问题140  ArrayList和Vector的区别
是什么？ 191
问题141  Queue接口的实现类之
间的继承关系如何？ 192
问题142  Set接口的实现类之间的
继承关系如何？ 193
问题143  如何使用TreeSet实现排
序功能？ 194
问题144  常用Set接口实现类是否
支持线程同步？ 196
问题145  Map接口有何特性？ 197
问题146  Map和Hashtable有何区别？ 198
问题147  如何获得Map中全部键？ 198
问题148  如何获得Map中全部值？ 199
问题149  如何获得Map中全部
键值对？ 200
问题150  如何自定义TreeMap
排序方式？ 201
第10章  常用数学工具类 203
问题151  常见数制包括哪些？相
互间如何转换？ 204
问题152  什么是原码、反码和补码？ 205
问题153  计算机如何保存浮点数？ 207
问题154  Math类与StrictMath类
有何异同？ 208
问题155  计算机中浮点数是连续的吗？ 210
问题156  什么是随机数？Java支
持随机数吗？ 211
问题157  如何完成高精度整数运算？ 213
问题158  如何设置数字的舍入模式？ 215
问题159  如何完成高精度浮点数运算？ 216
问题160  如何格式化数字？ 219
第11章  异常处理 222
问题161  什么是异常？ 223
问题162  Java中的异常如何分类？ 223
问题163  如何使用try…catch捕获
并处理异常？ 225
问题164  try…catch…finally是如何
处理异常的？ 226
问题165  使用try…finally能处理异
常吗？ 228
问题166  如何使用throws关键字声
明方法抛出的异常？ 230
问题167  如何使用throw关键字在
方法中抛出异常？ 231
问题168  关键字throw与throws的
用法有什么差异？ 233
问题169  如何创建自定义异常类？ 233
问题170  异常处理机制有哪些优势？ 234
第12章  输入/输出 235
问题171  什么是流？ 236
问题172  Java中与流相关的类有
哪些？ 236
问题173  如何使用字节流复制文件？ 239
问题174  如何使用字符流复制文
本文件？ 240
问题175  如何提高字符复制效率？ 242
问题176  如何求和文本文件中的数字？ 243
问题177  如何从控制台接收密码？ 244
问题178  如何获得指定格式的
字符串？ 245
问题179  如何使用数据流？ 249
问题180  如何使用对象流？ 252
问题181  transient关键字有何作用？ 254
问题182  如何查看Windows硬
盘空间？ 256
问题183  如何查看文件的属性？ 258
问题184  如何修改文件的属性？ 259
问题185  如何在磁盘上创建文件？ 261
问题186  如何创建临时文件？ 262
问题187  如何获得磁盘中全部文件？ 263
问题188  如何获得指定类型的文件？ 265
问题189  如何删除指定类型的文件？ 266
问题190  如何使用ZIP格式压缩
文件夹？ 267
问题191  如何解压缩ZIP格式文件？ 269
问题192  如何在代码中增加行号？ 270
问题193  如何比较源代码中不同之处？ 272
问题194  如何使用
Sequence InputStream类？ 273
问题195  如何使用StreamTokenizer类？ 275
问题196  如何读取属性文件的值？ 276
问题197  为何需要新IO？它有哪
些核心对象？ 277
问题198  如何使用新IO读、写、
复制数据？ 278
问题199  缓冲区内部是如何实现的？ 281
问题200  什么是内存映射文件IO？ 282
第13章  枚举类型与泛型 284
问题201  什么是枚举类型？如何
定义枚举类型？ 285
问题202  Java中的枚举类型有哪
些优势？ 286
问题203  如何在枚举中定义域
和方法？ 286
问题204  如何将枚举和switch语
句块组合使用？ 287
问题205  泛型是如何提高程序健
壮性的？ 289
问题206  类型参数命名时有哪些
要求？ 291
问题207  如何限制类型参数
范围？ 292
问题208  泛型是否是协变的？ 293
问题209  类型通配符有何作用？ 294
问题210  泛型中的擦除是指什么？ 295
第14章  Swing入门 296
问题211  Swing中的控件可以直
接显示吗？ 297
问题212  Swing中有哪些文本控件？ 297
问题213  如何使用键盘来操作文
本控件？ 298
问题214  如何限制文本域中输入
字符的长度？ 299
问题215  如何提示文本框中还有
多少字符可用？ 300
问题216  如何设置按钮上文本和
图标的位置？ 302
问题217  如何使用Swing中的按
钮控件？ 303
问题218  如何使用单选按钮控件？ 304
问题219  如何向组合框中添加数据？ 305
问题220  如何处理组合框选择事件？ 306
问题221  如何实现仿Word 2007
字体列表？ 307
问题222  如何使用信息提示对话框？ 309
问题223  如何使用支持样式的文
本控件？ 311
问题224  如何在选择图片时支持
预览功能？ 313
问题225  如何实现自动排序的列表？ 314
问题226  如何修改表格的字体和
行高度？ 315
问题227  如何获得用户修改后的
单元格值？ 316
问题228  如何在表格单元格中显
示组合框？ 317
问题229  如何在表格控件中使用分页？ 318
问题230  如何实现固定列表格？ 321
问题231  如何实现单词自动补全功能？ 323
问题232  如何实现文本域查找功能？ 325
问题233  如何使用JTree控件显示
文件结构？ 327
问题234  如何使用GridBagLayout
布局管理器？ 329
问题235  如何自定义布局管理器？ 333
问题236  如何根据显示器大小决
定窗体大小？ 334
问题237  如何自定义窗体按钮？ 335
问题238  如何绘制椭圆形窗体？ 339
问题239  如何实现窗体的自动隐
藏功能？ 340
问题240  如何实现闪屏功能？ 342
问题241  如何实现系统托盘功能？ 343
问题242  如何判断用户单击了
鼠标的哪个键？ 345
问题243  如何实现标签的跑马
灯效果？ 346
问题244  如何实现延迟生效的按钮？ 347
问题245  如何查看当前系统支持
的外观？ 348
第15章  多线程 350
问题246  如何实现新建线程？ 351
问题247  如何实现启动线程？ 351
问题248  Java中线程的属性有什
么作用？ 352
问题249  什么情况可以导致线
程停止？ 353
问题250  调用run()方法可以启动
线程吗？ 353
问题251  Object类中提供了哪些
线程相关方法？ 355
问题252  什么是线程同步？ 355
问题253  什么是线程死锁？ 357
问题254  哪些接口可以创建有返
回值的线程？ 358
问题255  哪个类可用于创建线程池？ 360
问题256  Swing是线程安全的吗？ 361
问题257  使用线程池存在哪些风险？ 361
问题258  如何创建后台线程？ 363
问题259  如何使正在运行的
线程休眠？ 364
问题260  如何终止线程？ 366
问题261  什么是线程的挂起、恢复？ 367
问题262  同步和异步有何不同？ 368
问题263  如何使用同步锁解决
共享资源的冲突？ 368
问题264  使用SwingWorker类时
必须重写哪个方法？ 370
问题265  什么时候会涉及线程程序？ 371
第16章  网络通信 372
问题266  按通信距离，网络是怎样
划分的？ 373
问题267  局域网的主要特点是什么？ 373
问题268  广域网的主要特点是什么？ 374
问题269  常用的网络拓扑结构有哪些？ 374
问题270  ISO/OSI参考模型各层的
功能是什么？ 376
问题271  TCP/IP参考模型对OSI参
考模型的改进有哪些？ 377
问题272  IP地址是如何划分的？
可以分为哪几类？ 378
问题273  如何获得局域网的所有
IP地址？ 379
问题274  怎样获取网络资源的大小？ 381
问题275  如何实现网络资源的多
线程下载？ 382
问题276  如何实现下载网络资源
的断点继传？ 384
问题277  如何使用Socket传输图片？ 387
问题278  如何实现基于Socket的
数据库编程？ 388
问题279  如何实现聊天室服务器端？ 391
问题280  如何实现聊天室客户端？ 393
第17章  数据库操作 396
问题281  什么是数据库驱动？ 397
问题282  JDBC驱动程序类型如
何区分？ 397
问题283  Java程序如何实现调用
存储过程？ 398
问题284  SQL Server数据库几种登录方式之间的区别有哪些？ 400
问题285  数据库管理系统、数据库
系统的区别？ 401
问题286  Statement和PreparedStatement的区别？ 402
问题287  如何通过JDBC控制数据
库事务？ 402
问题288  Java程序如何获得表结构？ 403
问题289  如何实现在数据库中存
储图片？ 405
问题290  如何实现从数据库中读
取图片？ 407
问题291  如何实现优化SQL语句？ 408
问题292  如何防止MySQL数据库
乱码问题？ 409
问题293  如何实现将纯文本文件
存储到数据库中？ 411
问题294  如何实现从数据库中读
取纯文本？ 413
问题295  如何获取数据库中的所有表？ 414
问题296  如何实现备份与恢复
MySQL数据库？ 416
问题297  如何实现多表连接查询？ 418
问题298  如何实现去除重复行？ 419
问题299  如何实现在数据库中
存储日期对象？ 420
问题300  如何实现读取数据库
中的日期字段？ 422