具体描述
作者简介
Cay S.Horstmann是圣何塞州立大学计算机科学系教授。他曾经是Preview Systems公司的副总裁和首席技术官,曾任许多大型公司,大学知组织的C++、Java与因特网编程顾问。他还撰写了众多技术和学术专著,并参与编写《Core JavaServer Faces》一书。
目录信息
前言
第1章 Java入门
1.1 作为编程工具的Java
1.2Java的优点
1.3Java的关键特点
1.3.1简单
1.3.2面向对象
1.3.3分布式
1.3.4健壮
1.3.5安全
1.3.6中性结构
1.3.7可移植
1.3.8解释型
1.3.9高性能
1.3.10 多线程
1.3.11 动态
1.4Java和Internet
1.5Java简史
1.6对Java的常见误解
第2章 Java编程环境
2.1安装Java编译器及工具
2.1.1Windows用户的开发环境
2.1.2在集成开发环境中加入Core
Java文件
2.2在Java目录中游历
2.3Windows95/98/NT编程环境
2.3.1长文件名
2.3.2多窗口
2.3.3快捷键
2.3.4深入DOS外壳
2.3.5EDIT程序
2.4Java程序的编译与运行
2.5TextPad的使用
2.5.1编译和运行程序
2.5.2查找编程错误
2.6图形应用
2.7小应用程序
第3章 Java的基本编程结构
3.1 一个简单的Java程序
3.2注释
3.3数据类型
3.3.1整数
3.3.2浮点
3.3.3字符类型
3.3.4布尔类型
3.4 变量
3.5赋值和初始化
3.5.1数值类型的相互转换
3.5.2常数
3.6运算符
3.6.1幂
3.6.2递增和递减运算符
3.6.3关系和布尔运算符
3.6.4按位运算符
3.6.5括号和运算符分级
3.7字串
3.7.1连结
3.7.2子串
3.7.3字串编辑
3.7.4测试字串的相等性
3.7.5读取输入
3.7.6格式化输出
3.7.7一个抵押计算器
3.8控制流程
3.8.1块作用域
3.8.2条件语句
3.8.3不确定循环
3.8.4确定循环
3.8.5多重选择
3.8.6标签中断
3.9类方法
3.9.1类变量
3.9.2递归
3.10数组
3.10.1数组的复制
3.10.2数组作为参数使用
3.10.3数组作为返回值使用
3.10.4多维数组
第4章 对象和类
4.1面向对象编程简介
4.1.1OOP术语
4.1.2对象
4.1.3类与类的关系
4.1.4OOP与传统面向过程编程技术的对比
4.2使用现成的类
4.2.1对象变量
4.2.2Java库的GregorianCalendar类
4.2.3转换器和访问器方法
4.2.4Day类的使用
4.2.5一个日历程序
4.2.6对象作为函数参数使用
4.3开始构建自己的类
4.3.1一个Employee类
4.3.2分析Employee类
4.3.3开始使用构建器
4.3.4Employee类的方法
4.3.5访问私有数据的方法
4.3.6私有方法
4.3.7深入对象构建
4.3.8静态方法和字段
4.3.9CardDeck类
4.4 封装
4.4.1封装的使用
4.4.2编译器如何定位封装
4.4.3封装范围
4.5类设计建议
第5章 继承
5.1 继承的初期步骤
5.1.1 继承结构
5.1.2子类的使用
5.1.3具有自主性的对象:多形性
5.1.4 禁止继承:最后的类和方法
5.2造型
5.3抽象类
5.4保护访问
5.5Object: 终极超类
5.5.1矢量
5.5.2对象封装器
5.5.3大数字
5.5.4阅读HTML文档中的一个页
5.6Class类
5.7 反射
5.7.1利用反射分析类的能力
5.7.2在运行期间用反射来分析对象
5.7.3利用反射机制编写常规数组代码
5.7.4方法指针
5.8继承设计建议
第6章 接口和内部类
6.1接口
6.1.1抽象超类的使用
6.1.2接口的使用
6.1.3接口的属性
6.1.4Cloneable接口
6.1.5接口和回调
6.2内部类
6.2.1Property接口
6.2.2访问本地变量的本地类
6.2.3静态内部类
第7章 图形编程
7.1简介
7.2创建一个封闭帧
7.3终止图形程序
7.4帧布局
7.5在帧内显示信息
7.6图形对象和paintComponent方法
7.7文本与字体
7.8颜色
7.9用线描绘形状
7.10描绘矩形和椭圆
7.11填充图形
7.12绘图模式
7.13图像
第8章 事件控制
8.1事件控制基础
8.1.1示例:按的是哪个按钮?
8.1.2示例:捕获窗口事件
8.1.3适配器类
8.2AWT事件结构
8.3AWT中的语义和低级事件
8.4事件控制总结
8.5独立事件
8.5.1焦点事件
8.5.2窗口事件
8.5.3键盘事件
8.5.4鼠标事件
8.6分隔GUI和应用代码
8.7多点传送
8.8高级事件控制
8.8.1事件的消灭
8.8.2事件队列
8.8.3增添自定义事件
第9章 Swing的用户界面组件
9.1模型、视图、控制器设计范式
9.2布局管理入门
9.2.1边框布局
9.2.2面板
9.3文字输入
9.3.1文本域
9.3.2输入校验
9.3.3密码域
9.3.4文本区
9.3.5标签和标签组件
9.3.6文字选定
9.3.7文字编辑
9.4作出选择
9.4.1复选框
9.4.2单选钮
9.4.3边框
9.4.4列表
9.4.5组合框
9.5滚动条
9.5.1滚动窗格
9.5.2窗口的滚动
9.6高级布局管理
9.6.1网格布局
9.6.2框布局
9.6.3网袋布局
9.6.4gridx、gridygridwidth和gridheight
参数
9.6.5加权字段
9.6.6fill和anchor参数
9.6.7填充
9.6.8指定gridx、gridy、gridwidth和
gridheight参数的另一种方法
9.6.9不使用布局管理器
9.6.10 自定义布局管理器
9.6.11 通过顺序
9.7菜单
9.7.1菜单的构建
9.7.2响应菜单事件
9.7.3菜单项中的图标
9.7.4复选框和单选钮菜单项
9.7.5弹出式菜单
9.7.6助记符键和快捷键
9.7.7启用和禁用菜单项
9.8对话框
9.8.1选项对话框
9.8.2创建对话框
9.8.3数据交换
9.8.4文件对话框
第10章 小应用程序基础
10.1小应用程序入门
10.1.1 基础知识
10.1.2 一个简单的小应用程序
10.1.3小应用程序的测试
10.1.4 安全基础
10.1.5将应用程序转换成小应用程序
10.1.6小应用程序的存在时间
10.2 小应用程序的HTML标记及属性
10.2.1用于定位的小应用程序属性
10.2.2用于编码的小应用程序属性
10.2.3用于非Java兼容浏览器小应用程序
属性
10.2.4对象标记
10.2.5Java插件标记
10.2.6向小应用程序传递信息
10.3小应用程序中的弹出式窗口
10.4多媒体
10.4.1URL
10.4.2获取多媒体文件
10.5小应用程序的工作环境
10.5.1小应用程序之间的通信
10.5.2在浏览器中显示项目
10.5.3一个书签小应用程序
10.5.4 JAR文件
10.5.5资源
10.6Java程序
第11章 违例和调试
11.1处理错误
11.1.1违例分类
11.1.2通告由一个方法产生的违例
11.1.3如何生成违例
11.1.4创建违例类
11.2捕捉违例
11.2.1捕捉多个违例
11.2.2重新产生违例
11.2.3finally从句
11.2.4Java错误和违例控制总结
11.3使用违例时的一些建议
11.4调试技术
11.4.1一些有用的调试技巧
11.4.2断定
11.4.3捕捉AWT事件
11.4.4在图形程序中显示调试消息
11.5JDB调试工具的使用
第12章 流与文件
12.1流
12.2完整的流理论
12.2.1流过滤器的分层
12.2.2数据流
12.2.3随机存取文件流
12.2.4文本流
12.2.5写文本输出
12.2.6读文本输入
12.3ZIP文件流
12.4流在实际中的运用
12.4.1写入定界输出
12.4.2字串记号器和定界文字
12.4.3读取定界输入
12.4.4随机存取流
12.5对象流
12.5.1保存“可变类型”的对象
12.5.2对象序列文件格式
12.5.3保存对象引用的问题
12.5.4用于对象引用的输出格式
12.5.5安全问题
12.5.6版本定义
12.6文件管理
附录A Java关键字
附录B jaVadoc工具
附录C 配套光盘的安装及使用
· · · · · · (收起)
读后感
本书的内容很全面,但是不得不吐糟一下翻译,比如在P231,倒数第8行,“这个方法的调用者可以34使用……”,推测这里的34应该是没有用的,这种错误太低级了。另外翻译的表达不清晰,有效的降低了我对本书的理解,建议大家看原版
该书第十版GUI仍在讲Swing 并发一章是该书缺陷的典型例子,内容包含了不同年代实现的大量并发编程的不同方法,却完全未指出当前大部分工程主要采用的措施,没有各类情况采取何种措施的指南,更没有不同方法间的性能对比,极其枯燥而缺乏实际价值。该章还出现了给出一大段程序然...
这本使JAVA里面最重要的一本书,是我开始JAVA之旅的第一本书,希望大家能够好好研读一下,可以学到很多的东西,这本书所涵盖的内容比其他的要多地多,即包括基础知识,又包括高级的应用,不论你是自己编程还是做企业级的开发系统,我想这本书可以给你足够的参考。我那时看得是...
很基础,目前看到图形界面350页,适合初学者的一本java教材。前面的基础讲解的不错。后面的图形界面的有说明也有应用的实例,不知道后面的异常和多线程内容怎么样,看前面的部分来推测 应该不错。建议学Java的看看。
用户评价
这本《Java 2 核心技术 卷Ⅰ——基础知识》简直是初学者的福音,我拿到手的时候还担心内容会太晦涩难懂,毕竟“核心技术”听起来就让人有点畏惧。但是翻开目录,看到那些清晰的章节划分,心里一下子就踏实了。作者的叙述方式非常平易近人,仿佛有一位经验丰富的老前辈在旁边耐心地为你讲解每一个概念。比如,在讲到面向对象编程(OOP)时,它不是干巴巴地堆砌术语,而是通过大量的贴近生活的例子,比如“人类”和“动物”之间的继承关系,来阐述抽象的类和对象。我特别喜欢它对数据类型和变量的讲解,讲得极其细致,连初学者容易混淆的引用类型和基本类型之间的细微差别,都用图示和代码片段进行了对比,让人一眼就能明白。而且,书中对Java语言的基础语法结构的覆盖面非常广,从流程控制到异常处理,每一个知识点都配有可以直接运行的小程序进行验证,这对于我这种动手能力比较强的人来说,简直太友好了。读完前三分之一,我已经能自信地写出一些结构清晰的小程序了,那种“我终于搞懂了”的成就感是其他教程很难给予的。这本书的结构设计,就像是为新手量身定做的学习路径图,每一步都走得很稳健。
说实话,我是一个已经工作几年、想转行做后端开发的“老兵”,之前断断续续学过一些脚本语言,但对正经的、强类型的Java体系感到有些陌生和抗拒。我最头疼的就是那些复杂的内存管理和运行机制,总觉得像是一个黑箱。然而,这本书在讲解到JVM的工作原理时,那种深入浅出的程度简直让我刮目相看。它没有直接跳到复杂的字节码层面,而是先从类加载器的概念入手,用一个非常形象的比喻解释了类是如何被“激活”的,然后才慢慢深入到方法区和堆栈的划分。我过去一直把Java的内存模型理解得一团糟,总是在Heap和Stack之间迷失,但这本书里关于对象引用和局部变量表之间的关系描述,简直是醍醐灌顶。它不是那种只告诉你“怎么做”的书,更侧重于告诉你“为什么是这样”,这种深层次的理解对于构建稳固的知识体系至关重要。读完相关章节后,我再去看一些官方的API文档,那些曾经晦涩难懂的术语突然间都活了过来,这本书真正帮我搭建起了对Java运行时环境的底层认知框架,这一点是很多入门书籍完全做不到的。
我是一个对代码风格和最佳实践有洁癖的人,很多技术书虽然内容详实,但在代码示例上往往显得粗糙随意,让人读起来很不舒服。然而,这本《Java 2 核心技术 卷Ⅰ》在代码规范和可读性方面,达到了教科书级别的标准。所有的示例代码都严格遵循了Java官方推荐的命名规范,变量名、方法名清晰明了,缩进和格式化也无可挑剔。更难能可贵的是,书中在引入新特性或新概念时,总是会穿插一些关于“为什么选择这种写法而不是那种”的讨论。例如,在讲解字符串处理时,它不仅展示了`String`类的基本操作,还特别用一个章节对比了`StringBuffer`和`StringBuilder`的使用场景,并用性能测试的伪代码说明了在循环中操作字符串时,选择哪种工具的效率更高,这体现了作者对工程实践的重视。这种对细节的打磨,让我在学习过程中,不仅学到了知识点,更潜移默化地养成了良好的编码习惯,感觉自己像是上了一堂高级的“代码美学”课。
对于已经有一些编程基础,但对Java生态缺乏系统性了解的人来说,这本书的价值更多体现在其构建知识体系的严谨性上。我个人是C++背景出身,对指针和内存管理比较熟悉,转到Java时,最大的障碍在于如何适应自动内存回收和强类型系统的约束。这本书在面向对象设计模式的初步介绍部分做得非常到位。它没有急于抛出复杂的“设计模式名称”,而是先从“如何组织代码以应对未来变化”的角度出发,循序渐进地引入封装、继承、多态这三大支柱。特别是对多态的讲解,它用了一个非常巧妙的“动物园管理系统”的例子,清晰展示了运行时绑定(Runtime Binding)的机制,让我这个习惯了静态联编的人,彻底理解了动态分派的强大之处。这本书最大的魅力在于它的“逻辑连贯性”,从基础语法到核心的OOP概念,每一步的过渡都非常自然,就像是看一部精心编排的侦探小说,层层递进,引人入胜,让你忍不住想知道下一个章节会如何解开新的谜团。
说实在的,市面上很多Java入门书都过于侧重“快速上手”,恨不得两百页就把你推向市场,但往往遗漏了底层的一些关键机制,导致学习者在遇到复杂问题时束手无策。这本书的厚度就让人感到安心,它真正做到了“深入浅出,全面覆盖”。我尤其欣赏它对Java标准库中常用类的介绍部分,它不是简单地罗列API,而是挑选了最核心、最常用的一些类(比如`Math`类、`System`类),并对其设计哲学进行了剖析。比如,它解释了为什么`Math`类中的方法都是静态的,以及这种设计背后的考虑。对于集合框架的介绍,它也没有停留在使用层面,而是深入到了`HashMap`的底层实现原理,讨论了哈希冲突的解决策略,这对于后续学习并发编程是至关重要的铺垫。这本书就像是一份详尽的“技术地图”,它不仅告诉你主要的道路在哪里,还标明了每一条小径的来龙去脉和潜在风险,确保你在踏上更高级的学习旅程之前,已经对这片“基础大陆”了如指掌,为未来的深入学习打下了无比坚实的基础。