 Hello 算法 1.0.0b4 Java版权衡时间与空间 理想情况下,我们希望算法的时间复杂度和空间复杂度都能达到最优。然而在实际情况中,同时优化时间复 杂度和空间复杂度通常是非常困难的。 降低时间复杂度通常需要以提升空间复杂度为代价,反之亦然。我们将牺牲内存空间来提升算法运行速度的 思路称为“以空间换时间”;反之,则称为“以时间换空间”。 选择哪种思路取决于我们更看重哪个方面。在大多数情况下,时间比空间更宝贵,因此以空间换时间通常是 ±0 次正规数 (−1)S × 2−126 × (0.N) 1, 2, … , 254 正规数 正规数 (−1)S × 2(E−127) × (1.N) 255 ±∞ NaN 特别地,次正规数显著提升了浮点数的精度,这是因为: ‧ 最小正正规数为 2−126 ≈ 1.18 × 10−38 。 ‧ 最小正次正规数为 2−126 × 2−23 ≈ 1.4 × 10−45 。 双精度 double 从存储空间的角度看,使用 UTF‑8 表示英文字符非常高效,因为它仅需 1 个字节;使用 UTF‑16 编码某些非 英文字符(例如中文)会更加高效,因为它只需要 2 个字节,而 UTF‑8 可能需要 3 个字节。从兼容性的角度 看,UTF‑8 的通用性最佳,许多工具和库都优先支持 UTF‑8 。 3. 数据结构 hello‑algo.com 48 3.4.5. 编程语言的字符编码 对于以往的大多数编程语言,程序运行中的字符串都采用0 码力 | 342 页 | 27.39 MB | 1 年前3 Hello 算法 1.0.0b4 Java版权衡时间与空间 理想情况下,我们希望算法的时间复杂度和空间复杂度都能达到最优。然而在实际情况中,同时优化时间复 杂度和空间复杂度通常是非常困难的。 降低时间复杂度通常需要以提升空间复杂度为代价,反之亦然。我们将牺牲内存空间来提升算法运行速度的 思路称为“以空间换时间”;反之,则称为“以时间换空间”。 选择哪种思路取决于我们更看重哪个方面。在大多数情况下,时间比空间更宝贵,因此以空间换时间通常是 ±0 次正规数 (−1)S × 2−126 × (0.N) 1, 2, … , 254 正规数 正规数 (−1)S × 2(E−127) × (1.N) 255 ±∞ NaN 特别地,次正规数显著提升了浮点数的精度,这是因为: ‧ 最小正正规数为 2−126 ≈ 1.18 × 10−38 。 ‧ 最小正次正规数为 2−126 × 2−23 ≈ 1.4 × 10−45 。 双精度 double 从存储空间的角度看,使用 UTF‑8 表示英文字符非常高效,因为它仅需 1 个字节;使用 UTF‑16 编码某些非 英文字符(例如中文)会更加高效,因为它只需要 2 个字节,而 UTF‑8 可能需要 3 个字节。从兼容性的角度 看,UTF‑8 的通用性最佳,许多工具和库都优先支持 UTF‑8 。 3. 数据结构 hello‑algo.com 48 3.4.5. 编程语言的字符编码 对于以往的大多数编程语言,程序运行中的字符串都采用0 码力 | 342 页 | 27.39 MB | 1 年前3
 Hello 算法 1.0.0b5 Java版hello‑algo.com 13 ‧ 数据操作尽可能快速,涵盖数据访问、添加、删除、更新等。 ‧ 提供简洁的数据表示和逻辑信息,以便使得算法高效运行。 数据结构设计是一个充满权衡的过程。如果想要在某方面取得提升,往往需要在另一方面作出妥协。下面举 两个例子。 ‧ 链表相较于数组,在数据添加和删除操作上更加便捷,但牺牲了数据访问速度。 ‧ 图相较于链表,提供了更丰富的逻辑信息,但需要占用更大的内存空间。 权衡时间与空间 理想情况下,我们希望算法的时间复杂度和空间复杂度都能达到最优。然而在实际情况中,同时优化时间复 杂度和空间复杂度通常是非常困难的。 降低时间复杂度通常需要以提升空间复杂度为代价,反之亦然。我们将牺牲内存空间来提升算法运行速度的 思路称为“以空间换时间”;反之,则称为“以时间换空间”。 选择哪种思路取决于我们更看重哪个方面。在大多数情况下,时间比空间更宝贵,因此“以空间换时间”通 次正规数 (−1)S × 2−126 × (0.N) 1, 2, … , 254 正规数 正规数 (−1)S × 2(E−127) × (1.N) 255 ±∞ NaN 值得说明的是,次正规数显著提升了浮点数的精度。最小正正规数为 2−126 ,最小正次正规数为 2−126×2−23 。 双精度 double 也采用类似 float 的表示方法,在此不做赘述。 第 3 章 数据结构 hello‑algo0 码力 | 376 页 | 30.69 MB | 1 年前3 Hello 算法 1.0.0b5 Java版hello‑algo.com 13 ‧ 数据操作尽可能快速,涵盖数据访问、添加、删除、更新等。 ‧ 提供简洁的数据表示和逻辑信息,以便使得算法高效运行。 数据结构设计是一个充满权衡的过程。如果想要在某方面取得提升,往往需要在另一方面作出妥协。下面举 两个例子。 ‧ 链表相较于数组,在数据添加和删除操作上更加便捷,但牺牲了数据访问速度。 ‧ 图相较于链表,提供了更丰富的逻辑信息,但需要占用更大的内存空间。 权衡时间与空间 理想情况下,我们希望算法的时间复杂度和空间复杂度都能达到最优。然而在实际情况中,同时优化时间复 杂度和空间复杂度通常是非常困难的。 降低时间复杂度通常需要以提升空间复杂度为代价,反之亦然。我们将牺牲内存空间来提升算法运行速度的 思路称为“以空间换时间”;反之,则称为“以时间换空间”。 选择哪种思路取决于我们更看重哪个方面。在大多数情况下,时间比空间更宝贵,因此“以空间换时间”通 次正规数 (−1)S × 2−126 × (0.N) 1, 2, … , 254 正规数 正规数 (−1)S × 2(E−127) × (1.N) 255 ±∞ NaN 值得说明的是,次正规数显著提升了浮点数的精度。最小正正规数为 2−126 ,最小正次正规数为 2−126×2−23 。 双精度 double 也采用类似 float 的表示方法,在此不做赘述。 第 3 章 数据结构 hello‑algo0 码力 | 376 页 | 30.69 MB | 1 年前3
 Nacos架构&原理
布局。 2020 年 Nacos 迅速被成千上万家企业采用,并构建起强大的生态。 但是随着用户深入使用,逐 渐暴露⼀些性能问题,因此我们启动了 Nacos 2.0 的隔代产品设计,凭借 10 倍性能提升激发社区 简介 < 16 活力,进入国内开源项目活跃度 Top 10,并且成为行业首选。 未来为了 Nacos 2.0 代码更加清爽,性能更加卓越,我们将加速插件化和服务网格生态的进化速度, 在开源 的时候我们取其精华进行开源,为了提升代码的健壮性和扩展性,进行了充分的分层和模块化设计。 设计原则  极简原则,简单才好用,简单才稳定,简单才易协作。  架构⼀致性,⼀套架构要能适应开源、内部、商业化(公有云及专有云)3 个场景。  扩展性,以开源为内核,商业化做基础,充分扩展,方便用户扩展。  模块化,将通用部分抽象下沉,提升代码复用和健壮性。  长期主义,不是要⼀个能支撑未来 内核模块当中,并且尽可能的提供了统⼀的抽象接口,使得上层的服务注册发现模块以及配置管理 Nacos 架构 < 32 模块,不再需要耦合任何⼀致性语义,解耦抽象分层后,每个模块能快速演进,并且性能和可用性 都大幅提升。 Nacos 如何做到⼀致性协议下沉的 既然 Nacos 已经做到了将 AP、CP 协议下沉到了内核模块,而且尽可能的保持了⼀样的使用体验。 那么这个⼀致性协议下沉,Nacos 是如何做到的呢?0 码力 | 326 页 | 12.83 MB | 9 月前3 Nacos架构&原理
布局。 2020 年 Nacos 迅速被成千上万家企业采用,并构建起强大的生态。 但是随着用户深入使用,逐 渐暴露⼀些性能问题,因此我们启动了 Nacos 2.0 的隔代产品设计,凭借 10 倍性能提升激发社区 简介 < 16 活力,进入国内开源项目活跃度 Top 10,并且成为行业首选。 未来为了 Nacos 2.0 代码更加清爽,性能更加卓越,我们将加速插件化和服务网格生态的进化速度, 在开源 的时候我们取其精华进行开源,为了提升代码的健壮性和扩展性,进行了充分的分层和模块化设计。 设计原则  极简原则,简单才好用,简单才稳定,简单才易协作。  架构⼀致性,⼀套架构要能适应开源、内部、商业化(公有云及专有云)3 个场景。  扩展性,以开源为内核,商业化做基础,充分扩展,方便用户扩展。  模块化,将通用部分抽象下沉,提升代码复用和健壮性。  长期主义,不是要⼀个能支撑未来 内核模块当中,并且尽可能的提供了统⼀的抽象接口,使得上层的服务注册发现模块以及配置管理 Nacos 架构 < 32 模块,不再需要耦合任何⼀致性语义,解耦抽象分层后,每个模块能快速演进,并且性能和可用性 都大幅提升。 Nacos 如何做到⼀致性协议下沉的 既然 Nacos 已经做到了将 AP、CP 协议下沉到了内核模块,而且尽可能的保持了⼀样的使用体验。 那么这个⼀致性协议下沉,Nacos 是如何做到的呢?0 码力 | 326 页 | 12.83 MB | 9 月前3
 Apache Shiro 1.2.x Reference Manual 中文翻译我们希望这篇文档可以帮助你使用 Apache Shiro 进行工作,社区一直在不断地完善和扩展文 档,如果你希望帮助 Shiro 项目,请在你认为需要的地方考虑更正、扩展或添加文档,你提供 的任何点滴帮助都将扩充社区并且提升 Shiro。 提供你的文档的最简单的途径是将它发送到用户论坛或邮件列表 译者注:如果对本中文翻译有疑议的或发现勘误欢迎指正,点此提问。 Apache Shiro 1.2.x Reference 我们希望这篇文档可以帮助你使用 Apache Shiro 进行工作,社区一直在不断地完善和扩展文 档,如果你希望帮助 Shiro 项目,请在你认为需要的地方考虑更正、扩展或添加文档,你提供 的任何点滴帮助都将扩充社区并且提升 Shiro。 提供你的文档的最简单的途径是将它发送到用户论坛或邮件列表 译者注:如果对本中文翻译有疑议的或发现勘误欢迎指正,点此提问。 Apache Shiro 1.2.x Reference 我们希望这篇文档可以帮助你使用 Apache Shiro 进行工作,社区一直在不断地完善和扩展文 档,如果你希望帮助 Shiro 项目,请在你认为需要的地方考虑更正、扩展或添加文档,你提供 的任何点滴帮助都将扩充社区并且提升 Shiro。 提供你的文档的最简单的途径是将它发送到用户论坛或邮件列表 译者注:如果对本中文翻译有疑议的或发现勘误欢迎指正,点此提问。 Apache Shiro 1.2.x Reference0 码力 | 196 页 | 2.34 MB | 1 年前3 Apache Shiro 1.2.x Reference Manual 中文翻译我们希望这篇文档可以帮助你使用 Apache Shiro 进行工作,社区一直在不断地完善和扩展文 档,如果你希望帮助 Shiro 项目,请在你认为需要的地方考虑更正、扩展或添加文档,你提供 的任何点滴帮助都将扩充社区并且提升 Shiro。 提供你的文档的最简单的途径是将它发送到用户论坛或邮件列表 译者注:如果对本中文翻译有疑议的或发现勘误欢迎指正,点此提问。 Apache Shiro 1.2.x Reference 我们希望这篇文档可以帮助你使用 Apache Shiro 进行工作,社区一直在不断地完善和扩展文 档,如果你希望帮助 Shiro 项目,请在你认为需要的地方考虑更正、扩展或添加文档,你提供 的任何点滴帮助都将扩充社区并且提升 Shiro。 提供你的文档的最简单的途径是将它发送到用户论坛或邮件列表 译者注:如果对本中文翻译有疑议的或发现勘误欢迎指正,点此提问。 Apache Shiro 1.2.x Reference 我们希望这篇文档可以帮助你使用 Apache Shiro 进行工作,社区一直在不断地完善和扩展文 档,如果你希望帮助 Shiro 项目,请在你认为需要的地方考虑更正、扩展或添加文档,你提供 的任何点滴帮助都将扩充社区并且提升 Shiro。 提供你的文档的最简单的途径是将它发送到用户论坛或邮件列表 译者注:如果对本中文翻译有疑议的或发现勘误欢迎指正,点此提问。 Apache Shiro 1.2.x Reference0 码力 | 196 页 | 2.34 MB | 1 年前3
 Hello 算法 1.1.0 Java版hello‑algo.com 14 ‧ 数据操作尽可能快速,涵盖数据访问、添加、删除、更新等。 ‧ 提供简洁的数据表示和逻辑信息,以便算法高效运行。 数据结构设计是一个充满权衡的过程。如果想在某方面取得提升,往往需要在另一方面作出妥协。下面举两 个例子。 ‧ 链表相较于数组,在数据添加和删除操作上更加便捷,但牺牲了数据访问速度。 ‧ 图相较于链表,提供了更丰富的逻辑信息,但需要占用更大的内存空间。 权衡时间与空间 理想情况下,我们希望算法的时间复杂度和空间复杂度都能达到最优。然而在实际情况中,同时优化时间复 杂度和空间复杂度通常非常困难。 降低时间复杂度通常需要以提升空间复杂度为代价,反之亦然。我们将牺牲内存空间来提升算法运行速度的 思路称为“以空间换时间”;反之,则称为“以时间换空间”。 选择哪种思路取决于我们更看重哪个方面。在大多数情况下,时间比空间更宝贵,因此“以空间换时间”通 次正规数 (−1)S × 2−126 × (0.N) 1, 2, … , 254 正规数 正规数 (−1)S × 2(E−127) × (1.N) 255 ±∞ NaN 值得说明的是,次正规数显著提升了浮点数的精度。最小正正规数为 2−126 ,最小正次正规数为 2−126×2−23 。 双精度 double 也采用类似于 float 的表示方法,在此不做赘述。 第 3 章 数据结构 hello‑algo0 码力 | 378 页 | 18.47 MB | 1 年前3 Hello 算法 1.1.0 Java版hello‑algo.com 14 ‧ 数据操作尽可能快速,涵盖数据访问、添加、删除、更新等。 ‧ 提供简洁的数据表示和逻辑信息,以便算法高效运行。 数据结构设计是一个充满权衡的过程。如果想在某方面取得提升,往往需要在另一方面作出妥协。下面举两 个例子。 ‧ 链表相较于数组,在数据添加和删除操作上更加便捷,但牺牲了数据访问速度。 ‧ 图相较于链表,提供了更丰富的逻辑信息,但需要占用更大的内存空间。 权衡时间与空间 理想情况下,我们希望算法的时间复杂度和空间复杂度都能达到最优。然而在实际情况中,同时优化时间复 杂度和空间复杂度通常非常困难。 降低时间复杂度通常需要以提升空间复杂度为代价,反之亦然。我们将牺牲内存空间来提升算法运行速度的 思路称为“以空间换时间”;反之,则称为“以时间换空间”。 选择哪种思路取决于我们更看重哪个方面。在大多数情况下,时间比空间更宝贵,因此“以空间换时间”通 次正规数 (−1)S × 2−126 × (0.N) 1, 2, … , 254 正规数 正规数 (−1)S × 2(E−127) × (1.N) 255 ±∞ NaN 值得说明的是,次正规数显著提升了浮点数的精度。最小正正规数为 2−126 ,最小正次正规数为 2−126×2−23 。 双精度 double 也采用类似于 float 的表示方法,在此不做赘述。 第 3 章 数据结构 hello‑algo0 码力 | 378 页 | 18.47 MB | 1 年前3
 Hello 算法 1.0.0 Java版hello‑algo.com 14 ‧ 数据操作尽可能快速,涵盖数据访问、添加、删除、更新等。 ‧ 提供简洁的数据表示和逻辑信息,以便算法高效运行。 数据结构设计是一个充满权衡的过程。如果想在某方面取得提升,往往需要在另一方面作出妥协。下面举两 个例子。 ‧ 链表相较于数组,在数据添加和删除操作上更加便捷,但牺牲了数据访问速度。 ‧ 图相较于链表,提供了更丰富的逻辑信息,但需要占用更大的内存空间。 权衡时间与空间 理想情况下,我们希望算法的时间复杂度和空间复杂度都能达到最优。然而在实际情况中,同时优化时间复 杂度和空间复杂度通常非常困难。 降低时间复杂度通常需要以提升空间复杂度为代价,反之亦然。我们将牺牲内存空间来提升算法运行速度的 思路称为“以空间换时间”;反之,则称为“以时间换空间”。 选择哪种思路取决于我们更看重哪个方面。在大多数情况下,时间比空间更宝贵,因此“以空间换时间”通 次正规数 (−1)S × 2−126 × (0.N) 1, 2, … , 254 正规数 正规数 (−1)S × 2(E−127) × (1.N) 255 ±∞ NaN 值得说明的是,次正规数显著提升了浮点数的精度。最小正正规数为 2−126 ,最小正次正规数为 2−126×2−23 。 双精度 double 也采用类似于 float 的表示方法,在此不做赘述。 第 3 章 数据结构 hello‑algo0 码力 | 376 页 | 17.59 MB | 1 年前3 Hello 算法 1.0.0 Java版hello‑algo.com 14 ‧ 数据操作尽可能快速,涵盖数据访问、添加、删除、更新等。 ‧ 提供简洁的数据表示和逻辑信息,以便算法高效运行。 数据结构设计是一个充满权衡的过程。如果想在某方面取得提升,往往需要在另一方面作出妥协。下面举两 个例子。 ‧ 链表相较于数组,在数据添加和删除操作上更加便捷,但牺牲了数据访问速度。 ‧ 图相较于链表,提供了更丰富的逻辑信息,但需要占用更大的内存空间。 权衡时间与空间 理想情况下,我们希望算法的时间复杂度和空间复杂度都能达到最优。然而在实际情况中,同时优化时间复 杂度和空间复杂度通常非常困难。 降低时间复杂度通常需要以提升空间复杂度为代价,反之亦然。我们将牺牲内存空间来提升算法运行速度的 思路称为“以空间换时间”;反之,则称为“以时间换空间”。 选择哪种思路取决于我们更看重哪个方面。在大多数情况下,时间比空间更宝贵,因此“以空间换时间”通 次正规数 (−1)S × 2−126 × (0.N) 1, 2, … , 254 正规数 正规数 (−1)S × 2(E−127) × (1.N) 255 ±∞ NaN 值得说明的是,次正规数显著提升了浮点数的精度。最小正正规数为 2−126 ,最小正次正规数为 2−126×2−23 。 双精度 double 也采用类似于 float 的表示方法,在此不做赘述。 第 3 章 数据结构 hello‑algo0 码力 | 376 页 | 17.59 MB | 1 年前3
 Apache Shiro参考手册中文版方法(get*/set*)轻松地自定义可拔插组件。这意味着 Shiro 的架构的组件性能够把自定义行为转 化为非常容易的配置文件。 Easy Configuration 由于 JavaBeans 的兼容性,通过任何支持 JavaBean 风格的配置的机制可以很容 易的用自定义组件配置 SecurityManager,如 Spring,Guice,JBoss,等等。 我们接下来将讨论 Configuration。 的身份可以跨请求保存而不需要反序列化及将它解释到每个请求。例如,在一个 Web 应用程序中,没有必要 去读取每一个请求的加密 RememberMe Cookie,如果该身份在会话中是已知的。这可是一个很好的性能提升。 Stateless Applications(Sessionless) 虽然上述的默认策略对于大多数应用程序而言是很好的(通常是可取的),但这对于尝试尽可能无状态的应用程序 来说是不 Apache Shiro into Spring based Applications 本页涵盖了将 Shiro 集成到基于 Spring 的应用程序的方法。 Shiro 的 JavaBean 兼容性使得它非常适合通过 Spring XML 或其他基于 Spring 的配置机制。Shiro 应用程序需要一个具 有单例 SecurityManager 实例的应用程序。请注意,这不会是一个静态的单例,但应该只有一个应用程序能够使用0 码力 | 92 页 | 1.16 MB | 1 年前3 Apache Shiro参考手册中文版方法(get*/set*)轻松地自定义可拔插组件。这意味着 Shiro 的架构的组件性能够把自定义行为转 化为非常容易的配置文件。 Easy Configuration 由于 JavaBeans 的兼容性,通过任何支持 JavaBean 风格的配置的机制可以很容 易的用自定义组件配置 SecurityManager,如 Spring,Guice,JBoss,等等。 我们接下来将讨论 Configuration。 的身份可以跨请求保存而不需要反序列化及将它解释到每个请求。例如,在一个 Web 应用程序中,没有必要 去读取每一个请求的加密 RememberMe Cookie,如果该身份在会话中是已知的。这可是一个很好的性能提升。 Stateless Applications(Sessionless) 虽然上述的默认策略对于大多数应用程序而言是很好的(通常是可取的),但这对于尝试尽可能无状态的应用程序 来说是不 Apache Shiro into Spring based Applications 本页涵盖了将 Shiro 集成到基于 Spring 的应用程序的方法。 Shiro 的 JavaBean 兼容性使得它非常适合通过 Spring XML 或其他基于 Spring 的配置机制。Shiro 应用程序需要一个具 有单例 SecurityManager 实例的应用程序。请注意,这不会是一个静态的单例,但应该只有一个应用程序能够使用0 码力 | 92 页 | 1.16 MB | 1 年前3
 Hello 算法 1.2.0 简体中文 Java 版本项目旨在创建一本开源、免费、对新手友好的数据结构与算法入门教程。 ‧ 全书采用动画图解,内容清晰易懂、学习曲线平滑,引导初学者探索数据结构与算法的知识地图。 ‧ 源代码可一键运行,帮助读者在练习中提升编程技能,了解算法工作原理和数据结构底层实现。 ‧ 提倡读者互助学习,欢迎大家在评论区提出问题与分享见解,在交流讨论中共同进步。 0.1.1 读者对象 若你是算法初学者,从未接触过算法,或者已 空间占用尽量少,以节省计算机内存。 ‧ 数据操作尽可能快速,涵盖数据访问、添加、删除、更新等。 ‧ 提供简洁的数据表示和逻辑信息,以便算法高效运行。 数据结构设计是一个充满权衡的过程。如果想在某方面取得提升,往往需要在另一方面作出妥协。下面举两 个例子。 ‧ 链表相较于数组,在数据添加和删除操作上更加便捷,但牺牲了数据访问速度。 ‧ 图相较于链表,提供了更丰富的逻辑信息,但需要占用更大的内存空间。 如果把具体的工作技能比作是武功的“招式”的话,那么基础科目应该更像是“内功”。 我认为学算法(以及其他基础科目)的意义不是在于在工作中从零实现它,而是基于学到的知识,在解决问 题时能够作出专业的反应和判断,从而提升工作的整体质量。举一个简单例子,每种编程语言都内置了排序 函数: ‧ 如果我们没有学过数据结构与算法,那么给定任何数据,我们可能都塞给这个排序函数去做了。运行顺 畅、性能不错,看上去并没有什么问题。0 码力 | 379 页 | 18.48 MB | 10 月前3 Hello 算法 1.2.0 简体中文 Java 版本项目旨在创建一本开源、免费、对新手友好的数据结构与算法入门教程。 ‧ 全书采用动画图解,内容清晰易懂、学习曲线平滑,引导初学者探索数据结构与算法的知识地图。 ‧ 源代码可一键运行,帮助读者在练习中提升编程技能,了解算法工作原理和数据结构底层实现。 ‧ 提倡读者互助学习,欢迎大家在评论区提出问题与分享见解,在交流讨论中共同进步。 0.1.1 读者对象 若你是算法初学者,从未接触过算法,或者已 空间占用尽量少,以节省计算机内存。 ‧ 数据操作尽可能快速,涵盖数据访问、添加、删除、更新等。 ‧ 提供简洁的数据表示和逻辑信息,以便算法高效运行。 数据结构设计是一个充满权衡的过程。如果想在某方面取得提升,往往需要在另一方面作出妥协。下面举两 个例子。 ‧ 链表相较于数组,在数据添加和删除操作上更加便捷,但牺牲了数据访问速度。 ‧ 图相较于链表,提供了更丰富的逻辑信息,但需要占用更大的内存空间。 如果把具体的工作技能比作是武功的“招式”的话,那么基础科目应该更像是“内功”。 我认为学算法(以及其他基础科目)的意义不是在于在工作中从零实现它,而是基于学到的知识,在解决问 题时能够作出专业的反应和判断,从而提升工作的整体质量。举一个简单例子,每种编程语言都内置了排序 函数: ‧ 如果我们没有学过数据结构与算法,那么给定任何数据,我们可能都塞给这个排序函数去做了。运行顺 畅、性能不错,看上去并没有什么问题。0 码力 | 379 页 | 18.48 MB | 10 月前3
 《Java 应用与开发》课程讲义 - 王晓东Person p = new Person(); 9 ps.show(p); 10 Student s = new Student(); 11 ps.show(s); 12 } 13 } 多态提升方法通用性 以上代码中,show() 方法既可以处理 Person 类型的数据,又可以处理 Student 类型 的数据,乃至未来定义的任何 Person 子类类型的数据,即不必为相关的每种类型单独 版),清华大学出版社,2015.5 • Bruce Eckel, Thinking in Java (3rd) 教学目标 1. 理解泛型的概念,掌握其基本应用 • 集合框架中的泛型 • 泛型的向后兼容性 2. 掌握自定义泛型类和泛型方法 • 理解类型参数 • 理解差异性并能够定义自己的泛型类和泛型方法 • 受限制的类型参数 3. 学会处理泛型类型,包括使用通配符实现泛型容器遍历和操作 83 泛型类与泛型方法 � 8 � 在 Hashtable 中使用泛型 . 课程配套代码 ± sample.generics.HashtableGenericsSample.java 泛型的向后兼容性 • Java 语言中的泛型是维护向后兼容的,完全可以不采用泛型、而继续沿用过去的 做法。 • 这些未加改造的旧式代码将无法使用泛型带来的便利和安全性。 未启用泛型机制的代码在高版本编译器中会输出如下形式的编译提示信息:0 码力 | 330 页 | 6.54 MB | 1 年前3 《Java 应用与开发》课程讲义 - 王晓东Person p = new Person(); 9 ps.show(p); 10 Student s = new Student(); 11 ps.show(s); 12 } 13 } 多态提升方法通用性 以上代码中,show() 方法既可以处理 Person 类型的数据,又可以处理 Student 类型 的数据,乃至未来定义的任何 Person 子类类型的数据,即不必为相关的每种类型单独 版),清华大学出版社,2015.5 • Bruce Eckel, Thinking in Java (3rd) 教学目标 1. 理解泛型的概念,掌握其基本应用 • 集合框架中的泛型 • 泛型的向后兼容性 2. 掌握自定义泛型类和泛型方法 • 理解类型参数 • 理解差异性并能够定义自己的泛型类和泛型方法 • 受限制的类型参数 3. 学会处理泛型类型,包括使用通配符实现泛型容器遍历和操作 83 泛型类与泛型方法 � 8 � 在 Hashtable 中使用泛型 . 课程配套代码 ± sample.generics.HashtableGenericsSample.java 泛型的向后兼容性 • Java 语言中的泛型是维护向后兼容的,完全可以不采用泛型、而继续沿用过去的 做法。 • 这些未加改造的旧式代码将无法使用泛型带来的便利和安全性。 未启用泛型机制的代码在高版本编译器中会输出如下形式的编译提示信息:0 码力 | 330 页 | 6.54 MB | 1 年前3
 Hello 算法 1.2.0 繁体中文 Java 版本專案旨在建立一本開源、免費、對新手友好的資料結構與演算法入門教程。 ‧ 全書採用動畫圖解,內容清晰易懂、學習曲線平滑,引導初學者探索資料結構與演算法的知識地圖。 ‧ 源程式碼可一鍵執行,幫助讀者在練習中提升程式設計技能,瞭解演算法工作原理和資料結構底層實 現。 ‧ 提倡讀者互助學習,歡迎大家在評論區提出問題與分享見解,在交流討論中共同進步。 0.1.1 讀者物件 若你是演算法初學者,從未接觸過 空間佔用儘量少,以節省計算機記憶體。 ‧ 資料操作儘可能快速,涵蓋資料訪問、新增、刪除、更新等。 ‧ 提供簡潔的資料表示和邏輯資訊,以便演算法高效執行。 資料結構設計是一個充滿權衡的過程。如果想在某方面取得提升,往往需要在另一方面作出妥協。下面舉兩 個例子。 ‧ 鏈結串列相較於陣列,在資料新增和刪除操作上更加便捷,但犧牲了資料訪問速度。 ‧ 圖相較於鏈結串列,提供了更豐富的邏輯資訊,但需要佔用更大的記憶體空間。 如果把具體的工作技能比作是武功的“招式”的話,那麼基礎科目應該更像是“內功”。 我認為學演算法(以及其他基礎科目)的意義不是在於在工作中從零實現它,而是基於學到的知識,在解決 問題時能夠作出專業的反應和判斷,從而提升工作的整體質量。舉一個簡單例子,每種程式語言都內建了排 序函式: ‧ 如果我們沒有學過資料結構與演算法,那麼給定任何資料,我們可能都塞給這個排序函式去做了。執行 順暢、效能不錯,看上去並沒有什麼問題。0 码力 | 379 页 | 18.79 MB | 10 月前3 Hello 算法 1.2.0 繁体中文 Java 版本專案旨在建立一本開源、免費、對新手友好的資料結構與演算法入門教程。 ‧ 全書採用動畫圖解,內容清晰易懂、學習曲線平滑,引導初學者探索資料結構與演算法的知識地圖。 ‧ 源程式碼可一鍵執行,幫助讀者在練習中提升程式設計技能,瞭解演算法工作原理和資料結構底層實 現。 ‧ 提倡讀者互助學習,歡迎大家在評論區提出問題與分享見解,在交流討論中共同進步。 0.1.1 讀者物件 若你是演算法初學者,從未接觸過 空間佔用儘量少,以節省計算機記憶體。 ‧ 資料操作儘可能快速,涵蓋資料訪問、新增、刪除、更新等。 ‧ 提供簡潔的資料表示和邏輯資訊,以便演算法高效執行。 資料結構設計是一個充滿權衡的過程。如果想在某方面取得提升,往往需要在另一方面作出妥協。下面舉兩 個例子。 ‧ 鏈結串列相較於陣列,在資料新增和刪除操作上更加便捷,但犧牲了資料訪問速度。 ‧ 圖相較於鏈結串列,提供了更豐富的邏輯資訊,但需要佔用更大的記憶體空間。 如果把具體的工作技能比作是武功的“招式”的話,那麼基礎科目應該更像是“內功”。 我認為學演算法(以及其他基礎科目)的意義不是在於在工作中從零實現它,而是基於學到的知識,在解決 問題時能夠作出專業的反應和判斷,從而提升工作的整體質量。舉一個簡單例子,每種程式語言都內建了排 序函式: ‧ 如果我們沒有學過資料結構與演算法,那麼給定任何資料,我們可能都塞給這個排序函式去做了。執行 順暢、效能不錯,看上去並沒有什麼問題。0 码力 | 379 页 | 18.79 MB | 10 月前3
共 14 条
- 1
- 2













