具体描述
内容简介
Java语言是一种目前正在全世界得到迅速传播与广泛应用的面向对象的计算机程序设计语言。
本书共分三篇17章。基础篇介绍了Java作为一种程序设计语言所具有的基本组成、语法规则、例
外和线程等内容。应用篇介绍了若干类JavaApplet的实际应用。读者从网络上获得这些Applet资源
后,可以立即应用到自己的主页中去。深入篇分析了Java语言几个显著的特点,包括输入输 出流、网络
编程、抽象窗口工具箱AWT以及Applet的程序设计技巧等。
本书内容详实、资料丰富、结构有致、由浅及深。既可作为初学者的入门教材,也可作为深入学习者
的辅助资料,还可以作为编程人员的一本工具参考书。
作者简介
目录信息
绪论
Java的诞生
什么是Java语言?
获取Java资源
内容安排
基础篇
第1章 Java语言的基本表示法
1.1 标识符
1.2 注释
1.3 关键字
1.4 基本数据类型
1.5 运算符及其执行顺序
1.5.1 运算符总览
1.5.2 算术运算符
1.5.3 自增、自减运算符
1.5.4 关系运算符
1.5.5 逻辑运算符
1.5.6 位运算符
1.5.7 条件运算符
1.5.8 赋值运算符
1.6 程序流程控制――基本语句
1.6.1 选择语句
1.6.2 循环语句
1.6.3 控制转移语句
第2章 数组与字符串
2.1 数组
2.1.1 数组的说明与产生
2.1.2 一维数组
2.1.3 数组的数组
2.1.4 数组小结
2.2 字符串与字符串缓冲区
第3章 面向对象的程序设计基础
3.1 历史的发展
3.2 抽象
3.3 封装
3.4 继承
3.5 多态
第4章 Java语言的组成结构
4.1 程序结构
4.2 类及其域
4.2.1 类
4.2.2 变量
4.2.3 方法
4.3 继承与多态
4.3.1 构造方法(C0nstructor)
4.3.2 类的继承
4.3.3 界面(interface)
4.4 类库
第5章 例外
5.1 例外及其目的
5.2 例外的触发
5.2.1 隐式触发
5.2.2 显式触发
5.3 例外的捕获与处理
5.4 例外声明
第6章 线 程
6.1 线程的基本概念
6.2 创建线程
6.3 线程的状态及控制
6.4 线程的优先级
6.5 线程组
6.6 线程的同步
6.7 定时器与精灵线程
应用篇
第7章 Applet概 述
7.1 支持Java的浏览器
7.2 HTML文件中的Applet
7.3 Applet的命名方法
7.4 支持Java的浏览器与不支持Java的浏览器
第8章 基本类Applet
8.1 基本文本类Applet(BasicText)
8.2 基本图像Applet(BasicImage)
8.3 声音Applet(Audi0)
8.4 声音按钮Applet(Audi0Button)
8.5 声音文本Applet(Audi0Text)
8.6 声音图像文本Applet(AudioImageText)
8.7 URL按钮Applet(URLButton)
8.8 URL声音图像文本Applet(URLAudImgTxt)
8.9 URL声音图像文本背景Applet(URLAudImgTxtBG)
8.10 图像地图Applet(ImageMap)
8.11 小结
8.11.1 基本类Applet的功能总结
8.11.2 基本类Applet的继承关系总结
8.11.3 基本类Applet参数总结
第9章 文本类Applet
9.1 文本Applet(Text)
9.2 阴影Applet(Shadow)
9.3 柔和阴影Applet(SoftShadow)
9.4 光滑文本Applet(SmoothText)
9.5 波浪形文本Applet(WaveText)
9.6 深度Applet(Depth)
9.7 深度消褪Applet(DepthFade)
9.8 深度阴影Applet(DepthShade)
9.9 突体Applet(Emboss)
9.10 雕刻效果Applet(Engrave)
9.11 摹绘效果Applet(Stencil)
9.12 多色彩Applet(MultiColor)
9.13 多文本Applet(MultiText)
9.14 小结
9.14.1 参数总结
9.14.2 功能总结
第10章 图像类Applet
10.1 滤波器的使用
10.2 图像Applet(Image)
10.3 旋转Applet(Rotate)
10.4 镜像Applet(Mirror)
10.5 右倾Applet(SlantRight)
左倾Applet(SlantLeft)
上倾Applet(SlantUp)
下倾Applet(SlantDown)
10.6 波浪形图像Applet(WaveImageApplet)
10.7 模糊化Applet(Blur)
10.8 突体图像Applet(EmbossImage)
10.9 色彩透明Applet(TransColor)
10.10 缩放Applet(Scale)
10.11 反色Applet(Negative)
10.12 图像消褪Applet(Fade)
10.13 透明效果Applet(Transparent)
10.14 剪取与删除(Cr0p&Remove)
10.15 多图像Applet(MultiImage)
10.16 小结
10.16.1 参数总结
10.16.2 功能总结
第11章 动画类Applet
11.1 动画的概念与动画类Applet
11.2 制作动画的方法
11.2.1 文本的动画
11.2.2 图像的动画
11.3 双向动画Applet(AnimateTW0Way)
11.4 按钮动画Applet(AnimateOnButt0n)
11.5 双向按钮动画Applet(AnimateOnButt0nTw0Way)
11.6 指针动画Applet(AnimateOnEntry)
11.7 双向指针动画Applet(AnimateOnEntryTw0Way)
11.8 多重动画Applet(AnimateMultiple)
第12章 文本动画类Applet
12.1 TrackerApplet
12.2 TrackFadeApplet
12.3 CoalesCeApplet
12.4 MoveLeftApplet
12.5 MoveUpApplet
12.6 UpAndOverApplet
12.7 TickerApplet
12.8 小结
第13章 滑动类Applet
13.1 SlideShowApplet的功能实现
13.2 SlideShowPushApplet,
Slidesh0wSlideApplet
SlideShowsplitApplet,
SlideShowSwapApplet的功能实现
13.3 SlideShowFadeApplet
深入篇
第14章 输入输出流
14.1 流的基本概念
14.2 File类
14.3 Java语言流库的结构
14.4 输入类及方法
14.4.1 文件输入流(FileI即utStream)
14.4.2 字节数组输入流(ByteArrayInputStream)
14.4.3 字符串缓冲输入流(BufferedInputStream)
14.4.4 顺序输入流(SequenceInputStream)
14.4.5 管道输入流(PipedInputStream)
14.4.6 输入过滤流(FilterInputStream)
14.5 输出类及方法
14.5.1 文件输出流(FileOutputStream)
14.5.2 字节数组输出流(ByteArrayOutputStream)
14.5.3 管道输出流(PipedOutputStream)
14.5.4 输出过滤流(FilterOutputStream)
14.6 文件随机访问流
14.7 有关文件流的几个跨平台移植问题
第15章 网络程序设计
15.1 网络程序设计的基本概念
15.1.1 TCP/IP协议的简介
15.1.2 socket编程机制
15.2 Java语言中面向连接的socket机制
15.2.1 用socket实现简单的服务器
15.2.2 客户端的socket实现
15.2.3 服务器s0cket机制的深入讨论――并发服务器的实现
15.2.4 s0cket常用的API方法
15.3 数据报socket通信机制
15.3.1 建立数据报Socket
15.3.2 数据报的接收与发送
15.4 全球资源定位器――URL
15.4.1 URL的概念
15.4.2 创建URL
15.4.3 由URL对象获得其要素
15.4.4 运用URL
15.5 Java语言的安全管理
15.5.1 SecurityManager类
15.5.2 自行实现一个安全管理器
第16章 抽象窗口工具箱(AWT)
16.1 AWT的简单应用
16.2 AWT的工作机制
16.3 AWT的特点及类结构
16.4 AWT的组成类
16.4.1 Component类
16.4.2 Container类
16.4.3 Window类
16.4.4 Frame类
16.4.5 Dialog类
16.4.6 Panel类
16.5 各种各样的组件
16.5.1 有关组件的基本用法
16.5.2 Button类
16.5.3 Label类
16.5.4 Canvas类
16.5.5 Scrollbar类
16.5.6 Checkb0x类和Checkb0xGroup类
16.5.7 List类
16.5.8 Ch0ice类
16.5.9 TextField类
16.5.10 TextArea类
16.6 菜单
16.7 AWT的布局管理器
16.8 AWT的事件处理
16.8.1 AWT的事件类型
16.8.2 事件的处理过程
16.9 AWT的图形设计
16.9.1 颜色、字体、文本、绘图模式
16.9.2 绘制一些基本图形
16.9.3 图像显示
第17章 Applet高级程序设计技术
17.1 Applet的简单应用
17.2 Applet的生命周期
17.3 Applet用户界面的创建
17.3.1 创建Applet图形用户界面
17.3.2 Applet参数的定义和获取
17.3.3 在Applet中播放声音和图像
17.3.4 在浏览器中显示有关Applet的状态信息
17.3.5 使用标准输出显示诊断信息
17.4 动画技术
17.5 Applet与其它程序间的通信
17.5.1 同一主页的Applet之间的通信
17.5.2 Applet与浏览器的通信
17.5.3 通过网络连接与服务器通信
17.6 Applet的安全性限制
参考文献
后记
· · · · · · (收起)
读后感
用户评价
这本书的语言风格在保持技术准确性的前提下,展现出一种罕见的幽默感和亲和力。很多技术书籍的作者仿佛害怕使用任何非技术性的词汇,导致阅读过程像是在啃一块坚硬的石头。但这位作者显然不是这样。在解释一些比较底层的概念,比如JIT(即时编译)优化时,作者会用一些生活化的比喻来描述编译器是如何“偷懒”又如何“精明”地进行代码优化的,读起来让人会心一笑。这种轻松的氛围,极大地降低了我面对复杂技术时的心理压力。我记得有一次阅读到关于反射(Reflection)的章节,这个主题通常被认为是比较高阶且容易出错的地方,作者在警告我们使用反射的性能开销时,幽默地称之为“一把双刃剑,用得好可以开辟新大陆,用不好就会自断经脉”。这种富有画面感的描述,比教科书式的警告要深刻得多。它让我明白,技术学习不一定非得是严肃刻板的,可以通过有趣的方式来吸收深刻的知识。这本书成功地在“专业深度”和“阅读体验”之间找到了一个近乎完美的平衡点,这使得我能持续保持对它的热情,而不是中途就因为枯燥而搁置,这对于任何一本厚重的技术书籍来说,都是一个巨大的成功。
我对这本书的偏爱,很大程度上源于它对“实践出真知”这一理念的坚守。这本书的章节结构安排,总是将理论学习与实际操作紧密地结合起来。每讲完一个重要的语法或特性,后面紧跟着的往往是一组精心设计的“挑战性练习”。这些练习绝不是那种简单的“请你打印出Hello World”的入门题,它们往往需要读者综合运用前面学到的几个知识点才能解决,而且很多练习的难度设置非常贴合真实开发场景中的小型模块设计。例如,书中关于集合框架(Collections Framework)的章节后面,要求读者设计一个内存效率最高的LRU缓存淘汰策略,这直接就触及到了数据结构与算法在实际应用中的结合点。更重要的是,书后附带的解决方案和详细解析,不仅给出了正确代码,更重要的是,它剖析了作者选择该方案的思路和优劣权衡,这种深度的剖析,远比单纯的答案更有价值。它教会我的不是如何写出能运行的代码,而是如何写出健壮、高效、符合设计原则的代码。这种从理论到实践,再从实践中反思理论的循环学习路径,极大地巩固了我的编程思维,让我的知识体系不再是零散的点,而是互相连接的网。
说实话,我买这本书的时候是抱着“试试看”的心态的,因为市面上关于Java的书籍简直是汗牛充栋,很容易买到那种内容陈旧或者翻译质量堪忧的“注水”产品。然而,这本书完全颠覆了我的预期。它的叙事风格非常流畅自然,不像很多技术书籍那样板着脸孔讲道理,而是像一位经验丰富的导师在跟你一对一交流。它在介绍新的编程范式时,总是会先回顾一下前一种范式的局限性,这种对比性的教学方法,极大地增强了学习的逻辑连带感。比如,在讲解接口(Interface)和抽象类(Abstract Class)的区别时,作者没有直接罗列它们的异同点,而是通过一个软件设计需求演变的过程,展示了为什么需要这两种不同的抽象机制,让读者深刻理解了面向对象设计中“解耦”和“多态”的真正意义。而且,这本书对于一些边缘但重要的特性,比如泛型的类型擦除机制,也做了非常深入的挖掘,甚至提到了JVM字节码层面的实现细节,这对于想要从“会用”提升到“精通”的读者来说,是无价之宝。我感觉作者在编写这本书时,是真正站在一个高级工程师的角度,去思考初学者在学习过程中可能会在哪里绊倒,并提前铺设好了“避雷针”。这本书的深度和广度令人惊叹,但它的引导性又非常到位,使得整个阅读体验像是一场精心编排的知识探险。
这本书的封面设计挺吸引人的,那种深邃的蓝色调,配上简洁的字体,让人一眼就能感受到一股专业和严谨的气息。我是在一个朋友的强烈推荐下买的,他当时说这本书是入门Java的“圣经”级别的存在。翻开第一页,目录就展现了极其详尽的知识体系,从最基础的变量、数据类型,到面向对象编程的核心概念,再到异常处理和多线程,覆盖面非常广。我个人最欣赏它在讲解基础概念时的那种“刨根问底”的态度,不会因为是基础知识就敷衍带过。比如,它对Java内存模型(JMM)的阐述,即便是相对资深的开发者可能也需要反复咀嚼才能完全领会,但这本书通过非常形象的比喻和图示,让原本枯燥晦涩的底层机制变得可视化了。我记得有一章专门讲了Java中的“神奇的类加载器”,作者没有直接堆砌API文档上的定义,而是构建了一个场景,模拟了一个程序启动到运行的整个生命周期,让人恍然大悟,原来Java的动态性是这样实现的。此外,书中大量的代码示例都经过了精心挑选,每一个例子都紧密围绕它想阐述的那个知识点,没有一句多余的废话,实用性极强。对于我这种追求效率的学习者来说,这种高效的知识传递方式简直是太棒了。读完前几章,我已经有信心去构建一些简单的应用了,这种即学即用的感觉,真的让人充满动力。
这本书的排版和印刷质量绝对是同类书籍中的佼佼者。要知道,长时间阅读技术文档,眼睛是非常容易疲劳的,而这本书采用了高质量的哑光纸张,光线反射度处理得非常好,即便是长时间在台灯下阅读,眼睛也不会感到酸涩。更值得称赞的是它的图表设计。在讲解涉及并发编程和JVM运行时数据区域时,那些复杂的内存结构和线程交互图,被绘制得清晰明了,层次分明,颜色搭配也极其科学,关键信息一目了然,根本不需要反复对照文字去理解图形的含义。这一点对于理解并发编程中那些“看不见摸不着”的机制尤为重要。我记得有一次在调试一个棘手的死锁问题时,翻阅到书中关于线程同步机制的章节,作者用一个生动的“餐厅排队点餐”的模型来解释锁的获取与释放过程,瞬间茅塞顿开,问题迎刃而解。这本书不只是知识的载体,它更是一个优秀的学习工具。从纸张的选择到图标的绘制,每一个细节都体现了对读者的尊重和对知识传达效率的极致追求。这本书的实体书拿在手里,沉甸甸的,让人有一种踏实的信赖感,这在如今充斥着电子文档的时代,是一种难得的体验。