第二十章 注解

注解(元数据)为我们在代码中添加信息提供了一种形式化的方法,使我们可以在稍后某个时刻非常方便地使用这些数据。

第十九章 枚举类型

关键字enum可以将一组具体的值的有限集合创建为一种新的类型,而这些具名的值可以作为常规的程序组件使用。这是一种非常有用的功能。

第十八章 Java I/O系统

对程序语言设计者来说,创建一个好的输入/输出(I/O)系统是一项艰难的任务。

第十七章 容器深入研究

Java容器类库具有成熟的容器类库应该具有的完备的功能,但是比C++容器类和其他类似的容器类易于学习和使用。

第十六章 数组

“优选容器而不是数组”。

第十五章 泛型

泛型的通用语言特性的目的在于可表达性,而不仅仅是为了创建类型安全的容器。类型安全的容器是能够创建更通用代码这一能力所带来的副作用。

第十四章 类型信息

运行时类型信息RTTI使得你可以在程序运行时发现和使用该类型信息。

第十三章 字符串

字符串操作是计算机程序中最常见的行为。

第十章 内部类

多重继承在C++中被证明是相当难以使用的,相对而言,Java的接口与内部类就容易理解多了。

第九章 接口

恰当的原则应该是优先选择类而不是接口。从类开始,如果接口的必须性变得非常明确,那么就进行重构。接口是一种重要的工具,但很容易被滥用。

第八章 多态

多态意味着“不同的形式”,我们持有从基类继承而来的相同接口,以及使用该类接口的不同形式:不同版本的动态绑定方法。

第七章 复用类

尽管面向对象编程对继承极力强调,但在你开始设计时,一般你应优先选择使用组合,只在确实必要时才使用继承。因为组合更具灵活性。此外,通过对成员类型使用继承技术,你可以在运行期就改变那些成员对象的类型和行为。因此,你可以在运行期改变组合而成的对象的行为。

第六章 访问权限控制

类的public接口是用户真正能够看到的,所以这一部分是在分析和设计的过程中决定该类是否正确的最重要的部分。

第五章 初始化与清理

初始化在Java中占有至关重要的地位。对C语言的生产率所作的最初调查中发现,大量编程错误都源于不正确的初始化。 在C++中,“析构”相当重要,因为用new创建的对象必须明确被销毁。在Java中,垃圾回收器会自动为对象释放内存,所以在很多场合下Java中类似的清除方法就不太需要了。然而,垃圾回收器确实也增加了运行期的开销。而且Java解释器从来就很慢,所以这种开销到底造成了多大的影响却很难看出。

第三章 操作符

布尔值只能赋予true和false,并测试它为真还是假,不能进行布尔值相加,或者对布尔值进行其它任何运算。char、byte和short使用算术操作符中的数据类型提升(都会获得int结果,窄化转换为原类型可能丢失信息)。但int相乘有可能溢出,编译器并不报错,也不抛出异常。

12
回到顶部