上一篇: 1.4 被隐藏的具体实现 文中笔记均为个人观点,如有错误请大家不吝指出,谢谢! 原书为《java编程思想 第四 中文》1.5 复用具体实现一旦类被创建并被测试完成,那么它就应该(在理想情况下)代表一个有用的代码单元。事实证明,这种复用性并不容易到达我们所希望的那种程度,产生一个可复用的对象设计需要丰富的经验和敏锐的洞察力。但是一旦你有了这样的设计,他就可供复用。代
第二十四章 并发编程 爱丽丝:“我可不想到疯子中间去” 猫咪:“啊,那没辙了,我们这都是疯子。我疯了,你也疯了” 爱丽丝:“你怎么知道我疯了”。 猫咪:“你一定是疯了,否则你就不会来这儿” ——爱丽丝梦游仙境 6章。 在本章之前,我们惯用一种简单顺序的叙事方式来编程,有点类似文学中的意识流:第一件
原创 2021-12-16 16:18:27
169阅读
第十四章 流式编程 集合优化了对象的存储,而流和对象的处理有关。 流是一系列与特定存储机制无关的元素——实际上,流并没有“存储”之说。 使用流,无需迭代集合中的元素,就可以从管道提取和操作元素。这些管道通常被组合在一起,形成一系列对流进行操作的管道。 在大多数情况下,将对象存储在集合中是为了处理他们
原创 2021-12-16 16:23:14
194阅读
第二十二章 枚举 关键字 enum 可以将一组具名的值的有限集合创建为一种新的类型,而这些具名的值可以作为常规的程序组件使用。这是一种非常有用的功能 在初始化和清理 这章结束的时候,我们已经简单地介绍了枚举的概念。现在,你对 Java 已经有了更深刻的理解,因此可以更深入地学习 Java 中的枚举了
原创 2021-12-16 16:06:21
170阅读
第十七章 文件 在丑陋的 Java I/O 编程方式诞生多年以后,Java终于简化了文件读写的基本操作。 这种"困难方式"的全部细节都在 Appendix: I/O Streams。如果你读过这个部分,就会认同 Java 设计者毫不在意他们的使用者的体验这一观念。打开并读取文件对于大多数编程语言来说
原创 2021-12-16 16:07:02
70阅读
第十五章 异常 Java 的基本理念是“结构不佳的代码不能运行”。 改进的错误恢复机制是提高代码健壮性的最强有力的方式。错误恢复在我们所编写的每一个程序中都是基本的要素,但是在 Java 中它显得格外重要,因为 Java 的主要目标之一就是创建供他人使用的程序构件。 发现错误的理想时机是在编译阶段,
原创 2021-12-16 16:12:57
143阅读
前言 本书基于 Java 8 版本来教授当前 Java 编程的最优实践。 我之前的 Java 书籍 Thinking in Java, 4th Edition(《Java编程思想 (4)》 Prentice Hall 2006)依然适用于 Java 5 编程,在此版本 Java 语言开始用作 A
原创 2021-12-16 16:13:36
115阅读
目录​​第十二章 集合​​​​泛型和类型安全的集合​​​​基本概念​​​​添加元素组​​​​集合的打印​​​​列表List​​​​迭代器Iterators​​​​ListIterator​​​​链表LinkedList​​​​堆栈Stack​​​​集合Set​​​​映射Map​​​​队列Queue​​​​优先级队列PriorityQueue​​​​集合与迭代器​​​​for-in和迭代器​​​​适
原创 2021-12-16 16:21:32
75阅读
第十章 接口 接口和抽象类提供了一种将接口与实现分离的更加结构化的方法。 这种机制在编程语言中不常见,例如 C++ 只对这种概念有间接的支持。而在 Java 中存在这些关键字,说明这些思想很重要,Java 为它们提供了直接支持。 首先,我们将学习抽象类,一种介于普通类和接口之间的折中手段。尽管你的
原创 2021-12-16 16:22:53
134阅读
第七章 封装 访问控制(Access control)(或者隐藏实现(implementation hiding))与“最初的实现不恰当”有关。 所有优秀的作者——包括那些编写软件的人——都知道一件好的作品都是经过反复打磨才变得优秀的。如果你把一段代码置于某个位置一段时间,过一会重新来看,你可能发现
原创 2021-12-16 16:14:17
98阅读
第九章 多态 曾经有人请教我 “ Babbage 先生,如果输入错误的数字到机器中,会得出正确结果吗?” 我无法理解产生如此问题的概念上的困惑。 —— Charles Babbage (1791 - 1871) 多态是面向对象编程语言中,继数据抽象和继承之外的第三个重要特性。 多态提供了另一个维度的
原创 2021-12-16 16:03:27
84阅读
第二十一章 数组 在 初始化和清理 一章的最后,你已经学过如何定义和初始化一个数组。 简单来看,数组需要你去创建和初始化,你可以通过下标对数组元素进行访问,数组的大小不会改变。大多数时候你只需要知道这些,但有时候你必须在数组上进行更复杂的操作,你也可能需要在数组和更加灵活的 集合 (Collecti
原创 2021-12-16 16:08:32
360阅读
第二十三章 注解 注解(也被称为元数据)为我们在代码中添加信息提供了一种形式化的方式,使我们可以在稍后的某个时刻更容易的使用这些数据。 注解在一定程度上是把元数据和源代码文件结合在一起的趋势所激发的,而不是保存在外部文档。这同样是对像 C# 语言对于 Java 语言特性压力的一种回应。 注解是 Ja
原创 2021-12-16 16:15:40
71阅读
第一章 对象的概念 “我们没有意识到惯用语言的结构有多大的力量。可以毫不夸张地说,它通过语义反应机制奴役我们。语言表现出来并在无意识中给我们留下深刻印象的结构会自动投射到我们周围的世界。” -- Alfred Korzybski (1930) 计算机革命的起源来自机器。编程语言就像是那台机器。它不仅
原创 2021-12-16 16:16:32
157阅读
第十三章 函数式编程 函数式编程语言操纵代码片段就像操作数据一样容易。 虽然 Java 不是函数式语言,但 Java 8 Lambda 表达式和方法引用 (Method References) 允许你以函数式编程。 在计算机时代早期,内存是稀缺和昂贵的。几乎每个人都用汇编语言编程。人们虽然知道编译器
原创 2021-12-16 16:21:01
134阅读
第四章 运算符 运算符操纵数据。 Java 是从 C++ 的基础上做了一些改进和简化发展而成的。对于 C/C++ 程序员来说,Java 的运算符并不陌生。如果你已了解 C 或 C++,大可以跳过本章和下一章,直接阅读 Java 与 C/C++ 不同的地方。 如果理解这两章的内容对你来说还有点困难,那
原创 2021-12-16 16:20:22
57阅读
第十六章 代码校验 你永远不能保证你的代码是正确的,你只能证明它是错的。 让我们先暂停编程语言特性的学习,看看一些代码基础知识。特别是能让你的代码更加健壮的知识。 测试 如果没有测试过,它就是不能工作的。 Java是一个静态类型的语言,程序员经常对一种编程语言明显的安全性感到过于舒适,“能通过编译器
原创 2021-12-16 16:12:54
182阅读
第十一章 内部类 一个定义在另一个类中的类,叫作内部类。 内部类是一种非常有用的特性,因为它允许你把一些逻辑相关的类组织在一起,并控制位于内部的类的可见性。然而必须要了解,内部类与组合是完全不同的概念,这一点很重要。在最初,内部类看起来就像是一种代码隐藏机制:将类置于其他类的内部。但是,你将会了解到
原创 2021-12-16 16:00:09
135阅读
第二十五章 设计模式 概念 最初,你可以将模式视为解决特定类问题的一种特别巧妙且有深刻见解的方法。这就像前辈已经从所有角度去解决问题,并提出了最通用,最灵活的解决方案。问题可能是你之前看到并解决过的问题,但你的解决方案可能没有你在模式中体现的那种完整性。 虽然它们被称为“设计模式”,但它们实际上并不
原创 2021-12-16 16:14:57
70阅读
第十九章 类型信息 RTTI(RunTime Type Information,运行时类型信息)能够在程序运行时发现和使用类型信息 RTTI 把我们从只能在编译期进行面向类型操作的禁锢中解脱了出来,并且让我们可以使用某些非常强大的程序。对 RTTI 的需要,揭示了面向对象设计中许多有趣(并且复杂)的
原创 2021-12-16 16:16:42
82阅读
  • 1
  • 2
  • 3
  • 4
  • 5