第1章Java基本概念及环境配置.1FAQ1.01什么是面向对象程序设计?1FAQ1.02面向对象程序设计的基本特征有哪些?2FAQ1.03Java语言是如何产生和发展的?3FAQ1.04Android与Java语言有什么关系?4FAQ1.05JavaSE.JavaEE和JavaME有什么区别?5FAQ1.06Java语言的运行机制如何?6FAQ1.07什么是JVM?有什么作用?工作机制如何?8FAQ1.08什么是JRE(或J2RE)?9FAQ1.09什么是JDK?10FAQ1.10JDK.JRE和JVM之间有什么区别?11FAQ1.11什么是GC?GC的工作原理如何?12FAQ1.12如何安装Java基本开发环境JDK?13FAQ1.13为何在JDK安装路径下存在两个JRE?16FAQ1.14JDK安装时设置PATH和CLASSPATH环境变量有何作用?17FAQ1.15如何编译.运行Java应用程序?18FAQ1.16如何将程序中的文档注释提取出来生成说明文档?20FAQ1.17怎样制作鼠标双击就可以运行的Jar文件?23FAQ1.18怎样给main(String[]args)方法的args指定参数值?26第2章Java编程基础28FAQ2.01Java中的标识符如何命名?可以用中文吗?28FAQ2.02Java中有哪些关键字?29FAQ2.03用public.protected和private修饰方法有什么区别?30FAQ2.04this关键字有什么含义?在哪些情况下应用?31FAQ2.05super关键字有什么含义?在哪些情况下应用?32FAQ2.06static关键字有什么含义?具体如何应用?能修饰构造方法吗?34FAQ2.07final关键字有什么含义?具体如何应用?36FAQ2.08instanceof关键字有什么含义?如何应用?37FAQ2.09Java中有哪些数据类型?38FAQ2.10如何解决double和float精度不准的问题?40FAQ2.11int和Integer都可以作为整数类型,那么它们有什么区别?43FAQ2.12floatf=3.4语句是否正确?44FAQ2.13成员变量和局部变量有什么区别?45FAQ2.14变量之间传值时可分为值传递和引用传递,那么它们有何区别?46FAQ2.15Java中有哪些运算符?优先级如何?48FAQ2.16在实现x和y相加时,x+=y和x=x+y两种实现方式有区别吗?50FAQ2.17在执行与运算时,运算符&和&&有什么区别?50FAQ2.18在实现x递增加1操作时,x++和++x有什么区别?52FAQ2.19x?y:z格式的语句表示什么意思?53FAQ2.20“+”操作符在Java内部是如何实现字符串连接的?54FAQ2.21==和equals()都可用于比较两个操作数是否相等,它们有什么区别吗?55FAQ2.22创建String对象时,使用Strings=newString(“abc”)和Strings=“abc”语句有什么区别?56FAQ2.23break和continue语句有什么区别?56FAQ2.24数组如何定义和初始化?57FAQ2.25如何实现一维和二维数组的遍历?59FAQ2.26如何实现数组的复制?60FAQ2.27数组的排序算法有哪些?如何实现?61FAQ2.28如何解决ArrayIndexOutOfBoundsException异常?64第3章Java与面向对象65FAQ3.01什么是类.对象.属性和方法?65FAQ3.02什么是包?有什么好处?67FAQ3.03什么是抽象类?有什么好处?67FAQ3.04什么是接口?有什么好处?69FAQ3.05什么是多态?有什么好处?70FAQ3.06什么是内部类?有什么好处?71FAQ3.07什么是匿名内部类?如何使用?73FAQ3.08什么是封装类?有什么作用?74FAQ3.09什么是继承?有什么好处?75FAQ3.10使用new关键字创建对象时,为什么有时候提示找不到无参的构造方法?76FAQ3.11抽象类和接口都可以包含抽象方法,那么它们有什么区别?使用时该如何选择?76FAQ3.12什么是方法重写?为什么需要方法重写?78FAQ3.13什么是方法重载?为什么需要方法重载?78FAQ3.14构造方法是否可以被重写?能否被重载?79FAQ3.15static修饰的方法能否在子类中重写?80FAQ3.16在定义类时,何时需要重写Object类中toString()方法?81FAQ3.17在定义类时,何时需要重写Object类中equals()方法?82FAQ3.18为什么在重写equals()方法时,一般都会重写HashCode()方法?84FAQ3.19如何重写hashCode()方法?85FAQ3.20Java中动态绑定是什么意思?87FAQ3.21Java中是如何实现多态的?实现机制是什么?88FAQ3.22创建类的对象时,类中各成员的执行顺序是什么样的?89FAQ3.23什么是初始化块?有什么作用?90FAQ3.24静态初始化块与非静态初始化块有什么区别?92FAQ3.25如何调用内部类中的方法?93FAQ3.26当内部类和外部类的成员名称相同时,如何在内部类中调用外部类的成员?94FAQ3.27匿名内部类如何访问外部方法的局部变量或参数?95FAQ3.28Java异常处理机制是什么样的?96FAQ3.29常见的RuntimeException异常有哪些?97FAQ3.30Java中异常处理的方式有哪些?98FAQ3.31try-catch-finally语句块各部分的执行顺序如何?100FAQ3.32为什么使用自定义异常?自定义异常如何使用?101第4章Java流和文件操作103FAQ4.01如何获取文件的属性信息?103FAQ4.02如何判断文件是否为空?105FAQ4.03如何实现文件的创建.删除和移动?105FAQ4.04如何创建和删除文件夹?107FAQ4.05如何遍历目录中所有的文件?109FAQ4.06如何获取文件夹大小?110FAQ4.07什么是流?如何分类?具体包含哪些类?111FAQ4.08如何实现字节流和字符流之间的转化?113FAQ4.09如何判断要读的文件是否到达末尾?116FAQ4.10如何读文件.写文件?117FAQ4.11如何以追加的方式写文件?118FAQ4.12如何实现文件和文件夹的复制?119FAQ4.13如何在文件的任意位置进行读写?121FAQ4.14使用Buffered缓冲流写文件,为什么内容没有写入?122FAQ4.15如何实现文件的分割与合并?123FAQ4.16什么是NIO?与I/O有什么区别和联系?125FAQ4.17如何使用NIO读写文件?127FAQ4.18什么是字符编码和解码?129FAQ4.19读写文件时为什么中文字符经常产生乱码?130FAQ4.20如何解决FileReader读文件乱码的问题?131FAQ4.21为什么DataInputStream和DataOutputStream读写文件时乱码?132FAQ4.22如何实现文件锁定功能?134FAQ4.23如何实现对文件和字符串加密.解密?135FAQ4.24如何实现对文件和目录的压缩.解压缩?139FAQ4.25如何读写properties文件?143FAQ4.26如何读写XML文件?146FAQ4.27如何读写XML文件中的元素属性?151FAQ4.28如何读写CSV格式的文件?152FAQ4.29如何为图片文件生成缩略图?154FAQ4.30如何操作Excel文件?156FAQ4.31如何操作Word文件?161第5章JavaGUI编程164FAQ5.01什么是JavaGUI?Swing与AWT有什么关系?164FAQ5.02什么是布局管理器?常用的布局管理器有哪些?165FAQ5.03如何在窗体中显示一张图片?170FAQ5.04如何为容器添加滚动条功能?171FAQ5.05如何实现一个打开文件或者是存储文件的对话框?173FAQ5.06如何实现弹出消息框的功能?175FAQ5.07如何使用Dialog对话框?177FAQ5.08如何为按钮添加单击事件?..178FAQ5.09如何为窗体添加关闭事件?181FAQ5.10如何实现窗体菜单功能?183FAQ5.11如何处理键盘输入事件?185FAQ5.12如何处理鼠标单击事件?如何区分是左键还是右键?186FAQ5.13如何实现鼠标右键弹出菜单的功能?189FAQ5.14如何使用表格组件?191FAQ5.15如何实现记事本功能?193FAQ5.16如何实现贪吃蛇游戏?198第6章Java线程和序列化208FAQ6.01线程.进程和程序有何区别和联系?208FAQ6.02如何创建和启动一个线程?209FAQ6.03线程的基本状态有哪些?它们之间有何关系?211FAQ6.04什么是线程优先级?线程依据什么原则调度执行?212FAQ6.05什么是后台线程?如何创建一个后台线程?214FAQ6.06如何使正在运行的线程在指定时间内休眠?216FAQ6.07如何终止一个正在运行的线程?218FAQ6.08为何stop()和suspend()方法不推荐使用?219FAQ6.09如何控制线程的暂停和启动?220FAQ6.10如何实现多个线程同步?225FAQ6.11什么是对象序列化和对象反序列化?233FAQ6.12实现对象序列化的方法有哪些?234FAQ6.13如何实现对象在磁盘中的存取操作?236FAQ6.14使用ObjectInputStream读取对象时为什么会发生StreamCorruptedException异常?238FAQ6.15对象中的成员哪些参与序列化?哪些不参与序列化?241FAQ6.16如何自定义序列化和反序列化过程?243FAQ6.17如何使用Externalizable接口定制序列化过程?247FAQ6.18在序列化类中添加serialVersionUID属性有什么作用?250FAQ6.19当序列化遭遇继承时,如何正确处理对象序列化过程?251第7章Java网络编程256FAQ7.01什么是TCP/IP?什么是IP?256FAQ7.02TCP和UDP有什么区别?258FAQ7.03什么是HTTP?HTTP的工作原理如何?259FAQ7.04在Socket通信时如何获取主机和客户机的IP地址?261FAQ7.05如何利用Socket实现基于TCP的通信?264FAQ7.06如何利用Socket传输中文字符?265FAQ7.07如何在Socket读取数据时使用超时设置?267FAQ7.08如何利用Socket传递对象信息?268FAQ7.09如何利用Socket实现文件传输?271FAQ7.10如何基于Socket实现聊天系统?274FAQ7.11如何利用Socket实现基于UDP的通信?278FAQ7.12如何利用UDPSocket技术实现IP多点传送?280FAQ7.13如何获取Internet资源的大小?285FAQ7.14如何实现Internet资源的单线程下载?286FAQ7.15URL如何通过proxy代理访问Internet资源?287FAQ7.16如何实现Internet资源下载的断点续传?288FAQ7.17如何实现Internet资源的多线程下载?290FAQ7.18如何解析Internet网页内容?293第8章Java常用功能296FAQ8.01如何使字符串中包含“”字符296FAQ8.02如何实现字符串和整数之间的转化?297FAQ8.03如何替换字符串中的字符或子字符串?298FAQ8.04如何过滤字符串前后以及中间出现的空格?299FAQ8.05如何对字符串中的子字符或子字符串进行截取?301FAQ8.06如何判断一个字符串是否符合数值格式?302FAQ8.07如何实现字符串的切割和查找?303FAQ8.08如何实现十进制和二进制之间的相互转化?306FAQ8.09