
本书从实用的角度出发,系统地介绍了JDK 1.5中各种实用类,尤其是新增类的结构和使用方法。全书由19章组成,主要内容包括Java语言及JDK简介、Java虚拟机、Java.lang包、Collection框架、Number及其子类、字符及字符串处理、输入输出流、数学运算工具类、正则表达式、ZIP压缩工具、Java归档工具、时间日期工具、日志工具、属性文件工具、Java反射机制、网络、XML和JDK 1.5编程实践等。
本书内容丰富,从各个方面介绍了JDK 1.5中主要包和类的使用方法。在对类的API进行讲解时,结合了大量的实例,使读者能够快速掌握各个类的使用方法。
本书既可以作为Java初学者学习Java语言的教材,也可以作为专业程序员进行程序开发的参考书。
前 言
Java语言是Sun公司开发的新一代面向对象的编程语言,具有简单性、面向对象、分布性、健壮性、安全性、体系结构中立、可移植性、解释执行、高性能、多线程和动态性等特点,并提供了并发机制,具有很高的性能。其体系结构中立和可移植性的重要性在于Java解释器生成与体系结构无关的字节码指令,只要安装了Java运行时系统,Java程序就可在任意处理器上运行。这些字节码指令对应于Java虚拟机中的表示,Java解释器得到字节码后,对它进行转换,使之能够在不同的平台运行。
Sun公司在推出Java语言的同时,也推出了Java的一系列开发工具,如JDK(Java Developer’s Kit)。JDK是可以从网上免费下载的Java开发工具集。
2004年Sun公司发布了Java 2平台标准版(J2SE)5.0版,这是一个快速开发和配置跨平台的企业级应用与服务的综合性平台。Java 2平台标准版的这一最新版本提升了Java计算的性能与缩放能力,代表了Java技术的大跨步进展。有了J2SE5.0版,企业就可以通过更简易的步骤、花费更少的时间,采用Java技术开发与配置要求更高的应用。在2004年,Sun计划推出JDK的最新版本1.5版,代号为Tiger。过去的J2SE版本主要关注新类和性能,而Tiger的目标则是通过使Java编程更易于理解、对开发人员更为友好、更安全来增强Java语言本身,同时最大限度地降低与现有程序的不兼容性。
本书系统地介绍了使用JDK 1.5进行程序开发的方法,着重讲解了JDK1.5中各个实用类库。在讲解的同时是还结合了大量API使用示例和综合实例,使读者能够快速掌握各个类库的使用方法。
全书由19章组成,主要内容包括:Java语言及JDK简介、Java虚拟机、Java.lang包、Collection框架、Number及其子类、字符及字符串处理、输入输出流、数学运算工具类、规则表达式、ZIP压缩工具、Java归档工具、时间日期工具、日志工具、属性文件工具、Java反射机制、网络、XML和JDK 1.5编程实践。
通过本书的学习,读者不仅可以轻松掌握Java语言,而且能够熟练使用JDK1.5中提供的类库进行Java程序开发,从而极大提高开发效率。
本书既可以作为Java初学者学习Java语言的教材,也可以作为专业程序员进行程序开发的参考书。
本书由陈烨和张蓓共同执笔编写。此外,蓝荣香、王昊亮、喻波、马天一、魏勇、郝荣福、孙明、李大宇、武思宇、牟博超、李彬、付鹏程、高翔、朱丽云、崔凌、张巧玲、李辉、李欣、柏宇、郭强、金春范、程梅、黄霆、钟华、高海峰、王建胜、张浩、刘湘和邵蕴秋等同志在整理材料方面给予了编者很大的帮助,在此,编者对他们表示衷心的感谢。
由于时间仓促,再加上编者水平有限,书中不足之处希望广大读者不吝赐教并提出宝贵意见。
编 者
目 录
第1章 JDK 1.5概述 1
1.1 Java语言简介 1
1.2 Java开发环境──JDK介绍 2
1.3 JDK 1.5新增特性概述 2
1.4 JDK 1.5的安装 3
第2章 Java虚拟机 5
2.1 Java 2 SDK中的JVM 5
2.2 命令行选项 5
2.2.1 基本用法 5
2.2.2 标准选项 6
2.2.3 非标准选项 6
第3章 java.lang包 8
3.1 简介 8
3.2 基本接口 8
3.2.1 java.lang.Cloneable 8
3.2.2 java.io.Comparable 10
3.3 基本类 10
3.3.1 java.lang.Object 10
3.3.2 java.lang.Class 12
3.3.3 java.lang.ClassLoader 17
3.3.4 java.lang.System 22
3.3.5 java.lang.Package 25
3.3.6 java.lang.Compiler 27
3.3.7 java.lang.Runtime 28
3.3.8 java.lang.Boolean 31
第4章 Collection框架 33
4.1 简介 33
4.2 通用接口 33
4.2.1 java.util.Collection 33
4.2.2 java.util.Set 35
4.2.3 java.util.List 38
4.2.4 java.util.Map 43
4.2.5 java.util.SortedSet 47
4.2.6 java.util.SorateMap 48
4.3 抽象实现 49
4.3.1 java.util.AbstractCollection 49
4.3.2 java.util.AbstractSet 51
4.3.3 java.util.AbstractList 54
4.3.4 java.util.AbstractSequentialList 58
4.3.5 java.util.AbstractMap 63
4.4 具体实现 66
4.4.1 java.util.Vector 66
4.4.2 java.util.Hashtable 71
4.4.3 java.util.HashSet 74
4.4.4 java.util.TreeSet 76
4.4.5 java.util.LinkedHashSet 79
4.4.6 java.util.ArrayList 80
4.4.7 java.util.LinkedList 83
4.4.8 java.util.HashMap 86
4.4.9 java.util.TreeMap 89
4.4.10 java.util.LinkedHashMap 92
4.5 工具类 94
4.5.1 java.util.Collections 94
4.5.2 java.util.Arrays 100
第5章 Number及其子类 108
5.1 抽象类 108
5.2 具体类 109
5.2.1 java.lang.Byte 109
5.2.2 java.lang.Double 111
5.2.3 java.lang.Float 114
5.2.4 java.lang.Integer 117
5.2.5 java.lang.Long 121
5.2.6 java.lang.Short 124
第6章 字符及字符串处理 127
6.1 通用接口 127
6.2 通用类 128
6.2.1 java.lang.Character 128
6.2.2 java.lang.String 135
6.2.3 java.lang.StringBuffer 143
6.2.4 java.util.StringTokenizer 148
6.3 java.nio.charset包 149
6.3.1 java.nio.charset.Charset 150
6.3.2 java.nio.charset.CharsetDecoder 153
6.3.3 java.nio.charset.CharsetEncoder 155
第7章 输入输出流 159
7.1 通用接口 159
7.1.1 java.io.DataInput 159
7.1.2 java.io.DataOutput 162
7.1.3 java.io.FileFilter 164
7.1.4 java.io.FilenameFilter 165
7.1.5 java.io.ObjectInput 165
7.1.6 java.io.ObjectOutput 166
7.2 InputStream及其子类 167
7.2.1 java.io.InputStream 167
7.2.2 java.io.ByteArrayInputStream 169
7.2.3 java.io.FileInputStream 170
7.2.4 PipedInputStream 173
7.2.5 java.io.SequenceInputStream 175
7.2.6 java.io.ObjectInputStream 176
7.2.7 java.io.FilterInputStream 180
7.2.8 java.io.DataInputStream 183
7.2.9 java.io.BufferedInputStream 186
7.2.10 PushbackInputStream 189
7.3 OutputStream及其子类 190
7.3.1 java.io.OutputStream 191
7.3.2 java.io.ByteArrayOutputStream 191
7.3.3 java.io.FileOutputStream 193
7.3.4 java.io.PipedOutputStream 195
7.3.5 java.io.ObjectOutputStream 196
7.3.6 java.io.FilterOutputStream 199
7.3.7 java.io.DataOutputStream 201
7.3.8 java.io.BufferedOutputStream 203
7.4 Reader及其子类 204
7.4.1 java.io.Reader 204
7.4.2 java.io.BufferedReader 206
7.4.3 java.io.CharArrayReader 208
7.4.4 java.io.PipedReader 210
7.4.5 java.io.StringReader 211
7.4.6 java.io.InputStreamReader 212
7.4.7 java.io.FileReader 214
7.4.8 java.io.LineNumberReader 215
7.4.9 java.io.FilterReader 217
7.4.10 java.io.PushbackReader 219
7.5 Writer及其子类 221
7.5.1 java.io.Writer 221
7.5.2 java.io.BufferedWriter 222
7.5.3 java.io.CharArrayWriter 224
7.5.4 java.io.PipedWriter 225
7.5.5 java.io.StringWriter 226
7.5.6 java.io.OutputStreamWriter 228
7.5.7 java.io.FileWriter 230
7.5.8 java.io.FilterWriter 231
第8章 新输入输出流 233
8.1 java.nio包 233
8.1.1 java.nio.Buffer 233
8.1.2 java.nio.ByteBuffer 235
8.1.3 java.nio.MappedByteBuffer 242
8.1.4 java.nio.ByteOrder 243
8.1.5 java.nio.CharBuffer 244
8.1.6 java.nio.DoubleBuffer 248
8.1.7 java.nio.FloatBuffer 252
8.1.8 java.nio.IntBuffer 255
8.1.9 java.nio.LongBuffer 258
8.1.10 java.nio.ShortBuffer 261
8.2 java.nio.channels包 265
8.2.1 java.nio.channels.Channel 265
8.2.2 java.nio.channels.FileChannel 265
8.2.3 java.nio.channels.Socket
Channel 269
第9章 数学运算工具 273
9.1 基本数学运算类 273
9.1.1 java.lang.Math 273
9.1.2 java.lang.StrictMath 277
9.2 java.math包 279
9.2.1 java.math.BigDecimal 279
9.2.2 java.math.BigInteger 285
第10章 正则表达式 290
10.1 简介 290
10.2 java.util.regex包 291
10.2.1 java.util.regex.Pattern 291
10.2.2 java.util.regex.Matcher 293
第11章 ZIP压缩工具 297
11.1 基本接口 297
11.2 基本类 298
11.2.1 java.util.zip.CRC32 298
11.2.2 java.util.zip.Adler32 298
11.2.3 java.util.zip.Checke
dInput Stream 299
11.2.4 java.util.zip.Checked
OutputStream 301
11.2.5 java.util.zip.Inflater 301
11.2.6 java.util.zip.Deflater 303
11.2.7 java.util.zip.Deflater
OutputStream 306
11.2.8 java.util.zip.Inflater
InputStream 308
11.2.9 java.util.zip.ZipFile 310
11.2.10 java.util.zip.ZipEntry 312
11.2.11 java.util.zip.ZipInput
Stream 314
11.2.12 java.util.zip.ZipOutput
Stream 315
11.2.13 java.util.zip.GZIP
InputStream 317
11.2.14 java.util.zip.GZIP
OutputStream 319
11.3 综合实例 320
第12章 Java归档工具 323
12.1 java.util.jar包 323
12.2 java.util.jar.JarFile 324
12.3 java.util.jar.JarEntry 326
12.4 java.util.jar.JarInputStream 326
12.5 java.util.jar.JarOutputStream 327
12.6 java.util.jar.Manifest 328
12.7 java.util.jar.Attributes 330
第13章 时间日期工具类 333
13.1 java.util.Date 333
13.2 java.util.Calendar 334
13.3 java.util.Gregorian-
Calendar 342
13.4 java.util.TimeZone 345
13.5 java.util.Simple TimeZone 347
第14章 日志工具 351
14.1 简介 351
14.2 java.util.logging.Logger 352
14.3 java.util.logging.LogManager 360
14.4 java.util.logging.LogRecord 362
14.5 java.util.logging.Level 364
14.6 java.util.logging.Handler 367
14.7 java.util.logging.Memory-
Handler 368
14.8 java.util.logging.Stream
Handler 370
14.9 java.util.logging.
FileHandler 371
14.10 java.util.logging.
SocketHandler 373
14.11 java.util.logging.
ConsoleHandler 374
14.12 java.util.logging. Formatter 375
14.13 java.util.logging.
SimpleFormatter 377
14.14 java.util.logging.
XML Formatter 378
14.15 java.util.logging.Filter 380
第15章 属性配置工具 382
15.1 java.util.Properites 382
15.2 java.util.prefs包 385
15.2.1 java.util.prefs.Node
ChangeListener 385
15.2.2 java.util.prefs.Preference-
ChangeListener 386
15.2.3 java.util.prefs.Preference-
Factory 386
15.2.4 java.util.prefs.Abstract-
Preferences 386
15.2.5 java.util.prefs.Node-
ChangeEvent 392
15.2.6 java.util.prefs.Preference-
ChangeEvent 392
15.2.7 java.util.prefs.Preferences 394
第16章 Java反射机制 403
16.1 java.lang.reflect.Member 403
16.2 java.lang.reflect.
AccessibleObject 404
16.3 java.lang.reflect.Array 404
16.4 java.lang.reflect. Constructor 409
16.5 java.lang.reflect.Field 410
16.6 java.lang.reflect. Method 415
16.7 java.lang.reflect. Modifier 417
第17章 网络 420
17.1 简介 420
17.1.1 通信协议 420
17.1.2 通信端口 421
17.1.3 URL 421
17.1.4 套接字 422
17.2 java.net包 422
17.2.1 java.net.Content
Handler Factory 423
17.2.2 java.net.Datagram
Socket ImplFactory 423
17.2.3 java.net.FileNameMap 424
17.2.4 java.net.SocketImplFactory 424
17.2.5 java.net.SocketOptions 424
17.2.6 java.net.URLStream
Handler Factory 426
17.2.7 java.net.InetAddress 427
17.2.8 java.net.Inet4Address 430
17.2.9 java.net.Inet6Address 431
17.2.10 java.net.SocketAddress 433
17.2.11 java.net.InetSocketAddress 433
17.2.12 java.net.ServerSocket 435
17.2.13 java.net.Socket 438
17.2.14 java.net.SocketImpl 444
17.2.15 java.net.DatagramPacket 446
17.2.16 java.net.DatagramSocket 448
17.2.17 java.net.Datagram-
SocketImpl 452
17.2.18 java.net.MulticastSocket 454
17.2.19 java.net.URI 458
17.2.20 java.net.URL 461
17.2.21 java.net.URLClassLoader 465
17.2.22 java.net.URLConnection 467
17.2.23 java.net.URLEncoder 473
17.2.24 java.net.URLDecoder 474
17.2.25 java.net.URLStream
Handler 474
17.3 javax.net包 476
17.3.1 javax.net.ServerSocket
Factory 476
17.3.2 javax.net.SocketFactory 477
第18章 XML 478
18.1 XML简介 478
18.1.1 XML与HTML的比较 478
18.1.2 XML的优缺点 479
18.1.3 XML的使用前景 479
18.1.4 XML的文档格式 480
18.1.5 XML的语法 480
18.1.6 XML的名称空间 481
18.1.7 DTD介绍 481
18.1.8 Schema介绍 488
18.2 javax.xml.parsers包 493
18.2.1 javax.xml.parsers.
Document Builder 493
18.2.2 javax.xml.parsers.
Document BuilderFactory 495
18.2.3 javax.xml.parsers. SAXParser 498
18.2.4 javax.xml.parsers.
SAXParserFactory 500
18.3 org.w3c.dom包 502
18.3.1 org.w3c.dom.Node 502
18.3.2 org.w3c.dom.NodeList 507
18.3.3 org.w3c.dom.Document 508
18.3.4 org.w3c.dom.Element 510
18.3.5 org.w3c.dom.Attr 512
18.3.6 org.w3c.com.CharacterData 513
18.3.7 org.w3c.dom.Comment 514
18.3.8 org.w3c.dom.Text 515
18.3.9 org.w3c.dom.CDATASection 516
18.3.10 org.w3c.dom.Document
Fragment 517
18.3.11 org.w3c.dom.Document
Type 517
18.3.12 org.w3c.dom.Entity 518
18.3.13 org.w3c.com.DOMImp-
lementation 518
18.4 org.xml.sax包 519
18.4.1 org.xml.sax.XMLReader 520
18.4.2 org.xml.sax.ContentHandler 523
18.4.3 org.xml.sax.Attributes 525
18.4.4 org.xml.sax.DTDHandler 526
18.4.5 org.xml.sax.EntityResolver 527
18.4.6 org.xml.sax.ErrorHandler 527
18.4.7 org.xml.sax.Locator 528
18.4.8 org.xml.sax.XMLFilter 528
18.5 综合实例 529
18.5.1 DOM实例 529
18.5.2 SAX实例 532
第19章 JDK 1.5编程实践 535
19.1 泛型 535
19.2 自动封箱 536
19.3 循环的增强 537
19.4 类型安全的枚举类型 538
19.5 静态导入 540
19.6 元数据(Metadata) 540
附录 索引 542