本书讲解了Java 2程序设计中重要的高级主题,本书也是作者已出版的著作《Java程序设计百事通》续篇。本书的主要内容包括JavaBeans、Java安全技术、Java命名与目录服务、RMI(远程方法调用)、CORBA、RMI-IIOP、Servlet(服务器小程序)、JSP网页技术和其他主题。\r\n 本书面向有Java程序设计基础,特别是学习过《Java程序设计百事通》,并希望进一步提高Java技术水平的读者。本书可作为在校学生、中高级技术开发工程师和其他IT技术人员的参考书,也可作为大专院校和培训机构的教学用书。\r\n 本书作者拥有先进的教育思想,同时在计算机图书写作方面具备高超的技巧。读者将会发现这是目前最容易阅读并且从中收获最大的论述Java程序设计高级主题的著作。\r\n\r\n
第1章 网络编程实例\r\n\r\n1.1 网络基础概念\r\n1.2 URL类编程实例\r\n1.3 DatagramSocket编程实例\r\n1.3.1 DatagramSocket服务器程序\r\n1.3.2 DatagramSocket客户机程序\r\n1.4 自定义协议的服务器/客户机程序\r\n1.5 发送邮件的客户机程序\r\n1.6 本章小结\r\n\r\n第2章 标记流\r\n\r\n2.1 StreamTokenizer标记流\r\n2.2 StringTokenizer标记流\r\n2.3 本章小结\r\n\r\n第3章 Collection和Map\r\n\r\n3.1 Collection和Map入门\r\n3.2 Collection的基本方法\r\n3.3 Collection运算\r\n3.3.1 多态性\r\n3.3.2 Bulk运算\r\n3.3.3 在List中使用索引\r\n3.3.4 Iterator接口\r\n3.3.5 排序\r\n3.4 本章小结\r\n\r\n第4章 国际化程序\r\n\r\n4.1 国际化快速入门\r\n4.2 Java支持的国家和语言\r\n4.3 使用类文件代替属性文件\r\n4.4 数字和日期的国际化\r\n4.4.1 数字的格式化\r\n4.4.2 日期的格式化\r\n4.5 本章小结\r\n\r\n第5章 系统资源与垃圾处理\r\n\r\n5.1 系统资源\r\n5.1.1 系统资源快速入门\r\n5.1.2 得到系统属性清单\r\n5.1.3 自定义属性\r\n5.1.4 属性的访问限制\r\n5.2 系统垃圾回收\r\n5.3 本章小结\r\n\r\n第6章 Renflection\r\n\r\n6.1 Reflection快速入门\r\n6.2 根据Class分析类\r\n6.2.1 得到类的Class对象\r\n6.2.2 得到类的修饰符和超类\r\n6.2.3 得到类所实现的接口\r\n6.2.4 得到类的域\r\n6.2.5 得到类中的方法\r\n6.3 从Class对象还原类\r\n6.3.1 创建对象\r\n6.3.2 得到域的值\r\n6.3.3 调用方法\r\n6.4 本章小结\r\n\r\n第7章 对象的序列化\r\n\r\n7.1 序列化入门\r\n7.1.1 序列化对象\r\n7.1.2 从流中恢复对象\r\n7.2 序列化应用实例\r\n7.3 控制序列化\r\n7.3.1 Externalizable接口\r\n7.3.2 重置writeObject和readObject方法\r\n7.4 本章小结\r\n\r\n第8章 jar压缩程序\r\n\r\n8.1 压缩和解压缩技术\r\n8.1.1 将文件压缩到档案中\r\n8.1.2 显示档案中的内容\r\n8.1.3 显示压缩过程\r\n8.1.4 从档案中解压缩文件\r\n8.1.5 制作非压缩档案\r\n8.1.6 Manifest文件\r\n8.2 使用档案\r\n8.2.1 使用档案中的类\r\n8.2.2 运行档案中的程序\r\n8.2.3 扩展系统己有的类\r\n8.2.4 Java调用类的顺序\r\n8.2.5 调用URL地址上的jar档案\r\n8.3 本章小结\r\n\r\n第9章 使用Graphics2D类绘图\r\n\r\n9.1 绘图快速入门\r\n9.2 绘图效果\r\n9.2.1 画笔的样式\r\n9.2.2 Clip区域\r\n9.2.3 变形\r\n9.2.4 图形重叠时的操作\r\n9.3 绘图形状\r\n9.3.1 立体矩形\r\n9.3.2 直线段\r\n9.3.3 矩形\r\n9.3.4 圆角矩形\r\n9.3.5 椭圆\r\n9.3.6 圆弧\r\n9.3.7 QuadCurve\r\n9.3.8 CubicCurve\r\n9.4 本章小结\r\n\r\n第10章 JavaBeans\r\n\r\n10.1 Bean快速入门\r\n10.2 得到Beau的属性、方法和事件\r\n10.3 Beau的测试环境BDK\r\n10.3.1 BDK简介\r\n10.3.2 把Bean安装到BDK中\r\n10.4 JavaBean的属性\r\n10.4.1 Bound Property\r\n10.4.2 Constrained Property \r\n10.5 BeanInfo接口\r\n10.6 Beau的定制\r\n10.6.1 自定义属性编辑器\r\n10.6.2 Customizer接口\r\n10.7 Beau的Context\r\n10.7.1 建立BeanContext\r\n10.7.2 为Bean提供服务的BeanContextServices\r\n10.8 本章小结\r\n\r\n第11章 JDBC数据库编程\r\n\r\n11.1 编写JDBC程序所需要的条件和步骤\r\n11.2 文本文件组成的数据库\r\n11.3 使用DBMS数据库\r\n11.4 数据库和SQL语言的基础知识\r\n11.4.1 有关数据库的基础概念\r\n11.4.2 SQL数据类型\r\n11.4.3 SQL语句\r\n11.5 JDBC软件包中的接口和类\r\n11.5.1 Driver接口和DriverManager类\r\nl1.5.2 Connection接口\r\n11.5.3 Statement和ResultSat\r\n11.5.4 PrepareStatement接口\r\n11.5.5 Transaction\r\n11.6 图形用户界面中的数据库程序\r\n11.7 本章小结\r\n\r\n第12章 Java安全技求\r\n\r\n12.1 Policy安全策略\r\n12.1.1 程序的安全限制\r\n12.1.2 扩大安全范围\r\n12.1.3 缩小程序的安全范围\r\n12.1.4 系统安全策略文件\r\n12.2 编写自定义的SecurityManager\r\n12.3 数字签名文件\r\n12.4 编写签名程序\r\n12.4.1 签名程序\r\n12.4.2 验证签名\r\n12.5 本章小结\r\n\r\n第13章 命名服务和目录服务\r\n\r\n13.1 命名与目录服务的概念\r\n13.2 Java命名和目录服务所需要的软件\r\n13.2.1 需要安装的软件\r\n13.2.2 本章程序需要的软件包\r\n13.2.3 文件系统的服务提供者和服务器\r\n13.3 文件系统的命名服务\r\n13.3.1 命名服务快速入门\r\n13.3.2 文件系统的几个常用方法\r\n13.4 绑定与解析\r\n13.4.1 绑定对象\r\n13.4.2 解析对象 \r\n13.5 本章小结\r\n\r\n第14章 RMI(远程方法调用)\r\n\r\n14.1 RMI快速入门\r\n14.1.1 RMI服务器程序\r\n14.1.2 RMI客户机程序\r\n14.1.3 运行RMI服务器和客户机程序\r\n14.2 RMI的安全性\r\n14.3 同时作为客户机和服务器的RMI程序\r\n14.3.1 客户机程序的设计\r\n14.3.2 服务器程序的设计\r\n14.3.3 运行服务器和客户机程序\r\n14.4 本章小结\r\n\r\n第15章 CORBA\r\n\r\n15.1 IDL语言快速入门\r\n15.2 IDL语言基础\r\n15.2.1 基本数据类型\r\n15.2.2 包和接口\r\n15.2.3 方法\r\n15.2.4 数组\r\n15.2.5 异常\r\n15.2.6 attribute类型\r\n15.2.7 enum类型\r\n15.2.8 struct类型\r\n15.2.9 union类型\r\n15.2.10 any类型\r\n15.3 编写服务器和客户机程序\r\n15.3.1 编写服务器程序\r\n15.3.2 编写客户机程序\r\n15.3.3 运行服务器和客户机程序\r\n15.4 CORBA实例\r\n15.4.1 有多个远程接口的CORBA实例\r\n15.4.2 CORBA的callback技术\r\n15.4.3 保存对象的状态\r\n15.5 本章小结\r\n\r\n第16章 RMI-IIOP\r\n16.1 RMI-IIOP快速入门\r\n16.1.1 RMI-IIOP的远程接口和实现类\r\n16.1.2 RMI-IIOP服务器程序\r\n16.1.3 RMI-IIOP客户机程序\r\n16.1.4 运行RMI-IIOP程序\r\n16.2 RMI-IIOP实例\r\n16.3 本章小结\r\n\r\n第17章 Servlet(服务器小程序)\r\n\r\n17.1 建立编译运行Servlet的条件\r\n17.1.1 Tomcat服务器的安装、设置和启动\r\n17.1.2 SimpleServletServer服务器\r\n17.2 Servlet快速入门\r\n17.2.1 运行Servlet程序\r\n17.2.2 Servlet的运行机制\r\n17.3 Cookie\r\n17.4 Session会话\r\n17.5 表单处理和数据库\r\n17.6 利用Servlet的Context和request信息\r\n17.6.1 得到Context和request信息\r\n17.6.2 共享Context的属性Attribute\r\n17.7 由其他资源处理访问Servlet的请求\r\n17.8 本章小结\r\n\r\n第18章 JSP网页设计\r\n\r\n18.1 JSP快速入门\r\n18.1.1 JSP示例\r\n18.1.2 JSP网页的运行\r\n18.2 JSP的语法和运行机制\r\n18.2.1 JSP注释标记\r\n18.2.2 JSP指令标记\r\n18.2.3 JSP声明\r\n18.2.4 JSP表达式标记\r\n18.2.5 JSP小脚本代码标记\r\n18.3 Servlet和JSP\r\n18.4 JSP表单处理\r\n18.5 JSP Session \r\n18.6 JSP Cookie\r\n18.7 JSP异常处理\r\n18.8 JSP中的Bean\r\n18.9 由其他资源处理访问JSP网页的请求\r\n18.10 本章小结\r\n\r\n第19章 《Java程序设计百事通》FAQ\r\n\r\n19.1 为什么Java编译后不能产生可执行文件\r\n19.2 Java的类库在什么地方\r\n19.3 什么是匿名内部类\r\n19.4 什么是用户界面的风格\r\n19.5 怎样验证Applet的运行机制\r\n19.6 缓冲真管用吗\r\n19.7 怎样比较对象的相等\r\n19.8 有关线程的几个问题\r\n19.8.1 “精灵”线程和普通线程\r\n19.8.2 sleep、yield和join方法\r\n
选购一本电脑书从来就不是件轻松的事, 因为同类书实在是琳琅满目. 难以取舍. 购电脑书的第一项是看看书的起点或者说是读者对象, 不要买了太浅或者太深的书. 本书适合有Java程序设计基础的读者选购, 虽然“基础”一词一般很笼统, 难以限定, 但是本书恰巧有一个准确的基础, 那就是作者已经出版的著作《Java程序设计百事通》. 如果读者已经学习过该书或者学习过与该书相当的Java知识, 那么已经具备了看懂本书的技术基础. 实际上, 本书正是《Java程序设计百事通》续篇.
选购电脑书的第二项是确定是否需要本书的内容. 读者从目录上可以看到, 本书包括JavaBeans. Java安全技术. Java命名与目录服务. RMI远程方法调用. CORBA公共对象请求代理. RMI-IIOP. Servlet服务器小程序. JSP网页技术等高级主题. 另外还有国际化程序. 对象序列化. Reflection等其他不算高级. 也并非基础的主题, 其中部分内容是阅读高级主题所必须的预备知识. 另外, 本书的最后一章是关于《Java程序设计百事通》的FAQ.
上面讲述的是本书的读者对象和内容概貌, 接着作者要解释的是本书如何组织和讲解内容, 即本书的写作原则或者指导思想. 这就是选购电脑书的第三项:了解作者是怎样讲解书中知识的.
任何一本书的作者写书时都有指导思想, 无论他是否觉察到或者这个指导思想是否恰当. 本书除了具备科技著作的起码要求即技术讲解正确. 内容全面完整外, 全书的写作思想和具体的写作方法尤其具有与众不同的特色, 使读者不仅看得懂. 看得轻松, 还看得愉快. 本书的指导思想是Know Unknown Through Known(通过已知知未知), 这是法国教师Piggysong的名言和教育思想, 意思是人类了解未知的最好方式是通过己知. 关于Piggysong和他的思想详见自序后面的文章.
本书的具体写作策略是站在读者的角度, 按照普通人的学习习惯而不是知识本身的固有体系布局谋篇, 全书章节都是按照基本一常用一深入来安排内容结构, 突破了传统电脑书不分主次和轻重缓急的字典式写作惯例. 因为每当提到一个名词. 概念或者其他知识点, 作者要问自己三个问题:“读者可能学过吗?前面讲过吗?应该在这里讲吗?”, 尽量保证每一句话. 每一个段落的知识只涉及前面的内容而不涉及后面的内容, 使读者从第一页看起, 基本没有看不懂的地方, 这就是不用未知解释另外一个未知. 万一要提及后面才能详细讲解的知识, 就使用这样的说法:“先照葫芦画瓢, 后面还要详细讲解”, 以避免读者产生没有讲清楚的错觉, 仅此一点, 就可保证读者看得不累. 由于本书是《Java程序设计百事通》的续篇, 因此会涉及到该书的内容.
本书对知识点, 不管是一个专业名词还是一章一节的内容, 大多评价其实用效果, 以便读者知道如何在实践中运用知识, 使读者为应用而学习, 而不是为知识而学习. 这样的例子也比比皆是, 例如“评论”图标后的内容.
本书对知识点基本采用先举例, 从已知知识切入或者先比喻的方式引入, 这些都是读者已知或者很容易“已知”的. 作者以为, 这是最好的知识点引入方式, 类似的例子也不胜枚举.
本书在语言方面, 尽量地运用比喻来讲解知识点, 这在科技著作中极为罕见, 没有学过本书内容的读者都可以很容易地在书中找到证据.
除了运用比喻外, 本书的语言叙述尽量平白. 简洁. 生动, 又不乏幽默, 因为作者厌恶以“专业”术语唬人或者自我炫耀, 反喜欢“化神奇为腐朽”, 把艰深干涩的电脑知识通俗化. 生动化. 趣味化, 使读者在阅读时, 不仅读得懂. 读得轻松, 还读得愉快, 甚至会发出“Java不过如此!”的感叹.
上面所述仅是本书的几个突出特点而已, 其他特色就不必一一列出了, 读者在阅读时, 自然能够体会到. 作者相信, 读者只要在书店里站着读几分钟, 就能够发现本书的几个特色, 如果不是全部特色的话. 随便说一句, 本书的写作思想和写作方法与《Java程序设计百事通》相同, 实际上, 在《Java程序设计百事通》出版后, 作者也接到很多读者的来信, 希望按照同样的写作原则创作一本内容较深入的Java著作, 读者的支持也是作者撰写本书的动力之一.
本书中文书名为“百事通”, 作者已经出版的著作也是用同一名字. “百事”说明本书的内容广泛坚实, 知识含量高, 这个在本书自序中首先讲到了, 读者从目录中也能够看出来. 书名中的有一个字是“通”, 正是作者写作思想所追求的目标, 因为一本书, 无论讲的是什么. 讲得多么权威. 讲得多么深入, 如果读者看不值或者很难看懂, 也如废纸一般.
读者可能会注意到作者没有用“通俗易懂”. “循序渐进”. “快速入门”. “轻松上手”等来形容本书, 因为所有的电脑书都这样自称, 而尽管本书当之无愧, 却只想用一个“通”字. 为了支持作者的这句“广告词”, 作者还拿出诸多可判定的证据来证明读者读了后, 会真“通”而不是假“通”.
其实, 书名中的“百事通”源自英文“Bestbook”的发音, 因为作者在刚写作时, 就希望创作出最好的电脑书奉献给读者, 因此以“Bestbook”作为英文书名, 鞭策自己精心构思. 认真写作, 不辱此名.
本书的全部程序和有关软件在本书所附的光盘上, 光盘的内容可参考后面的“光盘使用说明”. 如果读者对本书有什么批评和建议, 既可以给作者发送电子邮件, 也可以在作者的个人网站上进行交流.
张洪斌
bestbooks@netease. com
http://bestbookedu.top263.net