第一部 Java是怎样工作的 1
前言 1
第一章 介绍Java的秘密 3
可能有一些危险的知识 3
这本书里有什么? 4
第一部:Java是怎样工作的 4
第三部:依赖平台的Java 5
为什么用Java未发表的软件包 5
第二部:Sun类 5
更广泛的可应用性 6
功能更强 6
灵感 6
这些秘密从何而来? 7
这些文件在哪里? 7
源代码 8
API文件 8
研究了哪些版本的Java? 9
Java被认为是与平台无关的 10
为什么这些东西不形成文档发表? 10
一些异议 10
担忧,不可靠,疑虑 12
那么,有多少秘密? 12
小结 13
第二章 基本数据类型 15
内存中的字节 15
变量、值和标识符 16
位值数系统 17
二进制表示 17
十六进制表示 19
八进制表示 21
整数 22
int型整数 23
Long、short和byte型整数 24
浮点数 25
用二进制码表示浮点数 26
特殊值 27
非规格化浮点数 30
CHAR型 30
ASCII码 31
ISO Latin-1 32
Unicode 34
UTF8 36
Boolean型 37
跨平台的讨论 38
字节顺序 38
无符号整数 41
整数宽度 42
转换和转型 42
使用转型 42
转换的机制 44
位级运算符 45
一些术语 46
按位运算符 47
移位运算符 51
小结 57
第三章 类、串和数组 59
堆(heap) 59
指针、句柄和引用 61
什么是指针? 61
什么是句柄? 61
什么是引用? 65
Class类 71
Object类 76
复制 77
等价 77
终结(finalization) 78
运行时(runtime)类型信息 79
散列码 79
线程 80
字符串 81
数组 81
多维数组 82
数组类和对象 83
System.arraycopy()方法 83
字符串 85
字符串的实现 86
StringBuffer类 88
JAVA.UTIL数据结构 91
向量 92
位集(Bitsets) 98
栈 99
小结 104
读编译过的文件 105
第四章 Java虚拟机 105
读取类文件 114
魔数 121
最低版本 122
最高版本 123
常量池 123
访问标志 135
thisClass类 137
接口 138
Superclass类 138
属性 139
域 140
方法 143
综合各部分 145
import语句 146
访问修饰符 147
类和超类 147
接口 148
域 149
方法 152
法律问题 161
访问Class文件 163
复制.class文件 163
Zip文件 164
Jar文件 165
小结 166
第五章 字节代码 167
字节代码记忆法 168
在反汇编程序中使用助记符 175
栈、帧和池 186
把值压入栈 193
Nop 193
操作码 193
栈操作 194
局部变量数组 197
算术指令 198
位操作 204
iinc指令 207
转换操作码 209
比较指令 210
无条件转移 213
切换 213
对象 221
数组 229
异常 235
类型检测 243
线程:monitorenter和monitorexit 244
反编译器和其它工具 244
小结 246
第二部 Sun类 249
第六章 多线程与垃圾收集 251
多线程 252
协作式还是抢占式? 253
支撑平台固有的多线程,还是仿真式多线程? 259
内存垃圾收集 260
引用计数法 260
标记—扫除法 263
世代更迭法 264
小结 265
第七章 小应用程序的驾驭与监控 267
术语“applet”的内涵剖析 267
作为构件的小应用程序 270
供小应用程序用的main()方法 270
把多个小应用程序加入到普通应用程序中 272
动态加载小应用程序 273
存根和上下文 279
写小应用程序的上下文 280
写小应用程序的存根 290
性能更好的小应用程序main()方法 292
类的加载 295
设置安全屏障 306
从万维网页面加载小应用程序 319
小结 330
第八章 Sun类导引 333
Sun类概览 334
Sun类的适存性 336
Sun类安全使用指南 337
把你所用到的sun类放到你的万维网服务器上 337
把那些类和你的应用程序一同分发 339
写一个等价的类 339
合法发行 340
检查sun类是否已存在 340
对方法和域进行核查 344
小结 347
第九章 用Sun类观看小应用程序 349
SUN.APPLET包 350
AppletViewer类 351
构造函数 351
其它方法 352
AppletContext里的一些方法 356
AppletPanel和AppletViewerPanel类 357
AppletClassLoader类 361
AppletSecurity类 362
网络安全防范 362
宿主平台的安全防范 364
Java运行时的安全防范 366
类库体系的安全防范 367
文件系统的安全防范 369
其它支持类 370
AppletAudioClip类 371
AppletThreadGroup 371
AppletCopyright 372
AppletProps 372
TextFrame 373
小结 374
第十章 用Sun类来管理声音播放 375
AppletAudioClip类 376
AudioData类 377
AudioPlayer类 377
各种声音流类 378
AudioStream类 380
NativeAudioStream类 381
AudioTranslatorStream类 381
AudioDataStream类 382
ContinuousAudioDataStream类 382
AudioStreamSequence类 383
AudioDevice类 385
播放全过程一览 386
Sun声音类变通使用示例 388
小结 392
第十一章 Sun包里的显示界面工具 393
用Sun包的布局管理器来摆放构件 393
HorizBagLayout类 393
VerticalBagLayout类 397
VariableGricdLayout类 401
OrientableFlowLayout类 406
输入焦点的自动转换 413
显示界面的更新管理 416
小结 420
第十二章 使用SUN.MISC包进行数据编码和解码 421
二进制数据的ASCII编码 422
CharacterEncode类和CharacterDecode类 423
HexDump编码 424
Base64编码 426
UUEncode编码 429
UCEncode编码 434
生成新的编码方案 437
CRC类 443
小结 445
第十三章 SUN.NET包中的网络服务器与客户机 447
编写网络服务器程序 447
sun.net.NetworkServer类 448
NetworkServer派生子类 450
编写网络客户机程序 456
sun.net.NetworkClient类 456
NetworkClient派生子类 457
TransferProtocolClient类 460
TransferProtocolClient类 461
派生TransferProtocolClient类的子类 462
小结 463
第十四章 用SUN.NET.SMTP包发送函件 465
SmtpClient类 465
构造函数 467
SmtpClient类的一些方法 468
异常 469
选择SMTP服务器 469
小结 473
第十五章 用SUN.NET.NNTP包通过NNTP读取新闻 475
创建NewsGroupInfo对象 476
NewsGroupInfo类 476
复位文章号码 477
NntpClient类 477
打开到服务器的联接 478
读取文章 478
发布新闻 482
其它命令 484
小结 487
第十六章 用SUN.NET.FTP包传输文件 489
SUN.NET.FTP包的概况 489
FTP协议 490
FtpClient类 494
派生FtpClient类的子类 499
IftpClient类 500
DebugFtpClient类 501
FullFtpClient类 502
小结 504
第十七章 与Web服务器通迅 505
消息格式 505
消息头 506
HeaderParser类 510
MIME类型 512
跟踪下载:计量的流 528
SUN.NET.WWW.URLCONNECTION类 529
SUN.NET.WWW.HTTP包 530
HttpClient类 530
KeepAliveCache类 538
KeepAliveKey类 538
ClientVector类 539
KeepAliveStream类 539
SUN.NET.WWW.HTTPD包与BasicHttpServer类 540
文本内容处理器 543
内容处理器 543
图像内容处理器 545
协议处理器 547
appletresource协议 549
doc协议 550
file包 552
FTP协议处理器 554
gopher协议 556
HTTP协议 558
mailto协议 562
netdoc.Handler类 564
netdoc协议 564
系统资源systemresource 565
verbatim协议 567
小结 569
第三部 依赖平台的Java 571
第十八章 用SUN.IO进行字符转换 573
可用的转换器 574
使用转换器 580
直接转换 580
Convert()方法 581
ConvertAll()方法 581
替换模式 583
小结 594
第十九章 用宿主固有方法进行混合语言编程 595
缺点 596
首先用Java编码 599
运行测定(Profiling) 600
手动优化 603
Java宿主固有方法接口 604
从宿主固有方法返回基本类型值 610
传递基本类型数据参数给宿主固有方法 613
在宿主固有方法中使用对象 614
调用实例方法 617
从C调用Java方法 619
传递参数到Java方法 620
在宿主固有方法中使用字符串 625
在宿主固有方法中使用数组 626
从宿主固有方法访问域 632
宿主固有方法中的静态方法和域 633
宿主固有方法中的错误和异常 638
垃圾收集和宿主固有方法 639
线程和宿主固有方法 640
运行时确定宿主固有代码是否可用 641
小结 644
第二十章 创建独立程序 645
编写UNIX下的独立应用程序 645
创建MacOS的独立应用程序 654
Macintosh的DDEncoder类 654
使用类型代码和生成代码 655
Macintosh的Java运行时机构 655
创建独立的Windows程序 659
小结 660
第四部 附录 661
附录A Sun包和Sunw包定义的类 663
附录B Sun包和Sunw包中的方法 677
附录C 子类索引 747
附录D Sun包和Sunw包已实现的接口 763
附录E 返回的类的索引 769
附录F 传递给Sun包和Sunw包的类 801
附录G Sun类层次结构图 849
附录H 随书所附CD-ROM简介 865
这张CD-ROM里有什么 866
关于一些程序的说明 866