 Hello 算法 1.0.0 Java版提供的排版建议,以及他开发的开源文档主题 Material‑for‑MkDocs 。 在写作过程中,我阅读了许多关于数据结构与算法的教材和文章。这些作品为本书提供了优秀的范本,确保 了本书内容的准确性与品质。在此感谢所有老师和前辈的杰出贡献! 本书倡导手脑并用的学习方式,在这一点上我深受《动手学深度学习》的启发。在此向各位读者强烈推荐这 本优秀的著作。 衷心感谢我的父母,正是你们一直以来的支 重要专有名词及其英文翻译会用「」 括号标注,例如「数组 array」 。建议记住它们,以便阅读文献。 ‧ 专有名词和有特指含义的词句会使用“引号” 标注,以避免歧义。 ‧ 重要名词、重点内容和总结性语句会 加粗,这类文字值得特别关注。 ‧ 当涉及编程语言之间不一致的名词时,本书均以 Python 为准,例如使用 None 来表示“空”。 ‧ 本书部分放弃了编程语言的注释规范,以换取更加紧凑的内容排版。注释主要分为三种类型:标题注 代码块与对应的源代码文件 除了本地运行代码,网页版还支持 Python 代码的可视化运行(基于 pythontutor 实现)。如图 0‑6 所示,你 可以点击代码块下方的“可视化运行”来展开视图,观察算法代码的执行过程;也可以点击“全屏观看”,以 获得更好的阅览体验。 图 0‑6 Python 代码的可视化运行 第 0 章 前言 hello‑algo.com 8 0.2.4 在提问讨论中共同成长0 码力 | 376 页 | 17.59 MB | 1 年前3 Hello 算法 1.0.0 Java版提供的排版建议,以及他开发的开源文档主题 Material‑for‑MkDocs 。 在写作过程中,我阅读了许多关于数据结构与算法的教材和文章。这些作品为本书提供了优秀的范本,确保 了本书内容的准确性与品质。在此感谢所有老师和前辈的杰出贡献! 本书倡导手脑并用的学习方式,在这一点上我深受《动手学深度学习》的启发。在此向各位读者强烈推荐这 本优秀的著作。 衷心感谢我的父母,正是你们一直以来的支 重要专有名词及其英文翻译会用「」 括号标注,例如「数组 array」 。建议记住它们,以便阅读文献。 ‧ 专有名词和有特指含义的词句会使用“引号” 标注,以避免歧义。 ‧ 重要名词、重点内容和总结性语句会 加粗,这类文字值得特别关注。 ‧ 当涉及编程语言之间不一致的名词时,本书均以 Python 为准,例如使用 None 来表示“空”。 ‧ 本书部分放弃了编程语言的注释规范,以换取更加紧凑的内容排版。注释主要分为三种类型:标题注 代码块与对应的源代码文件 除了本地运行代码,网页版还支持 Python 代码的可视化运行(基于 pythontutor 实现)。如图 0‑6 所示,你 可以点击代码块下方的“可视化运行”来展开视图,观察算法代码的执行过程;也可以点击“全屏观看”,以 获得更好的阅览体验。 图 0‑6 Python 代码的可视化运行 第 0 章 前言 hello‑algo.com 8 0.2.4 在提问讨论中共同成长0 码力 | 376 页 | 17.59 MB | 1 年前3
 Hello 算法 1.1.0 Java版——邓俊辉,清华大学计算机系教授 “如果我当年学数据结构与算法的时候有《Hello 算法》,学起来应该会简单 10 倍!” ——李沐,亚马逊资深首席科学家 计算机的出现给世界带来了巨大变革,它凭借高速的计算能力和出色的可编程性,成为了执行算法与处理数 据的理想媒介。无论是电子游戏的逼真画面、自动驾驶的智能决策,还是 AlphaGo 的精彩棋局、ChatGPT 的自然交互,这些应用都是算法在计算机上的精妙演绎。 事实上 提供的排版建议,以及他开发的开源文档主题 Material‑for‑MkDocs 。 在写作过程中,我阅读了许多关于数据结构与算法的教材和文章。这些作品为本书提供了优秀的范本,确保 了本书内容的准确性与品质。在此感谢所有老师和前辈的杰出贡献! 本书倡导手脑并用的学习方式,在这一点上我深受《动手学深度学习》的启发。在此向各位读者强烈推荐这 本优秀的著作。 衷心感谢我的父母,正是你们一直以来的支 的是选读章节,内容相对困难。如果你的时间有限,可以先跳过。 ‧ 专业术语会使用黑体(纸质版和 PDF 版)或添加下划线(网页版),例如数组(array)。建议记住它们, 以便阅读文献。 ‧ 重点内容和总结性语句会 加粗,这类文字值得特别关注。 ‧ 有特指含义的词句会使用“引号”标注,以避免歧义。 ‧ 当涉及编程语言之间不一致的名词时,本书均以 Python 为准,例如使用 None 来表示“空”。0 码力 | 378 页 | 18.47 MB | 1 年前3 Hello 算法 1.1.0 Java版——邓俊辉,清华大学计算机系教授 “如果我当年学数据结构与算法的时候有《Hello 算法》,学起来应该会简单 10 倍!” ——李沐,亚马逊资深首席科学家 计算机的出现给世界带来了巨大变革,它凭借高速的计算能力和出色的可编程性,成为了执行算法与处理数 据的理想媒介。无论是电子游戏的逼真画面、自动驾驶的智能决策,还是 AlphaGo 的精彩棋局、ChatGPT 的自然交互,这些应用都是算法在计算机上的精妙演绎。 事实上 提供的排版建议,以及他开发的开源文档主题 Material‑for‑MkDocs 。 在写作过程中,我阅读了许多关于数据结构与算法的教材和文章。这些作品为本书提供了优秀的范本,确保 了本书内容的准确性与品质。在此感谢所有老师和前辈的杰出贡献! 本书倡导手脑并用的学习方式,在这一点上我深受《动手学深度学习》的启发。在此向各位读者强烈推荐这 本优秀的著作。 衷心感谢我的父母,正是你们一直以来的支 的是选读章节,内容相对困难。如果你的时间有限,可以先跳过。 ‧ 专业术语会使用黑体(纸质版和 PDF 版)或添加下划线(网页版),例如数组(array)。建议记住它们, 以便阅读文献。 ‧ 重点内容和总结性语句会 加粗,这类文字值得特别关注。 ‧ 有特指含义的词句会使用“引号”标注,以避免歧义。 ‧ 当涉及编程语言之间不一致的名词时,本书均以 Python 为准,例如使用 None 来表示“空”。0 码力 | 378 页 | 18.47 MB | 1 年前3
 Hello 算法 1.2.0 简体中文 Java 版——邓俊辉,清华大学计算机系教授 “如果我当年学数据结构与算法的时候有《Hello 算法》,学起来应该会简单 10 倍!” ——李沐,亚马逊资深首席科学家 计算机的出现给世界带来了巨大变革,它凭借高速的计算能力和出色的可编程性,成为了执行算法与处理数 据的理想媒介。无论是电子游戏的逼真画面、自动驾驶的智能决策,还是 AlphaGo 的精彩棋局、ChatGPT 的自然交互,这些应用都是算法在计算机上的精妙演绎。 事实上 提供的排版建议,以及他开发的开源文档主题 Material‑for‑MkDocs 。 在写作过程中,我阅读了许多关于数据结构与算法的教材和文章。这些作品为本书提供了优秀的范本,确保 了本书内容的准确性与品质。在此感谢所有老师和前辈的杰出贡献! 本书倡导手脑并用的学习方式,在这一点上我深受《动手学深度学习》的启发。在此向各位读者强烈推荐这 本优秀的著作。 衷心感谢我的父母,正是你们一直以来的支 的是选读章节,内容相对困难。如果你的时间有限,可以先跳过。 ‧ 专业术语会使用黑体(纸质版和 PDF 版)或添加下划线(网页版),例如数组(array)。建议记住它们, 以便阅读文献。 ‧ 重点内容和总结性语句会 加粗,这类文字值得特别关注。 ‧ 有特指含义的词句会使用“引号”标注,以避免歧义。 ‧ 当涉及编程语言之间不一致的名词时,本书均以 Python 为准,例如使用 None 来表示“空”。0 码力 | 379 页 | 18.48 MB | 10 月前3 Hello 算法 1.2.0 简体中文 Java 版——邓俊辉,清华大学计算机系教授 “如果我当年学数据结构与算法的时候有《Hello 算法》,学起来应该会简单 10 倍!” ——李沐,亚马逊资深首席科学家 计算机的出现给世界带来了巨大变革,它凭借高速的计算能力和出色的可编程性,成为了执行算法与处理数 据的理想媒介。无论是电子游戏的逼真画面、自动驾驶的智能决策,还是 AlphaGo 的精彩棋局、ChatGPT 的自然交互,这些应用都是算法在计算机上的精妙演绎。 事实上 提供的排版建议,以及他开发的开源文档主题 Material‑for‑MkDocs 。 在写作过程中,我阅读了许多关于数据结构与算法的教材和文章。这些作品为本书提供了优秀的范本,确保 了本书内容的准确性与品质。在此感谢所有老师和前辈的杰出贡献! 本书倡导手脑并用的学习方式,在这一点上我深受《动手学深度学习》的启发。在此向各位读者强烈推荐这 本优秀的著作。 衷心感谢我的父母,正是你们一直以来的支 的是选读章节,内容相对困难。如果你的时间有限,可以先跳过。 ‧ 专业术语会使用黑体(纸质版和 PDF 版)或添加下划线(网页版),例如数组(array)。建议记住它们, 以便阅读文献。 ‧ 重点内容和总结性语句会 加粗,这类文字值得特别关注。 ‧ 有特指含义的词句会使用“引号”标注,以避免歧义。 ‧ 当涉及编程语言之间不一致的名词时,本书均以 Python 为准,例如使用 None 来表示“空”。0 码力 | 379 页 | 18.48 MB | 10 月前3
 Hello 算法 1.0.0b5 Java版提供的写作排版建议,以及他开发的开源文档主题 Material‑for‑MkDocs 。 在写作过程中,我阅读了许多关于数据结构与算法的教材和文章。这些作品为本书提供了优秀的范本,确保 了本书内容的准确性与品质。在此感谢所有老师和前辈们的杰出贡献! 本书倡导手脑并用的学习方式,在这一点上深受《动手学深度学习》的启发。在此向各位读者强烈推荐这本 优秀著作。 衷心感谢我的父母,正是你们一直以来的支持与鼓励,让我有机会做这件富有趣味的事。 专有名词和有特指含义的词句会使用“双引号” 标注,以避免歧义。 ‧ 重要专有名词及其英文翻译会用「」 括号标注,例如「数组 array」 。建议记住它们,以便阅读文献。 ‧ 加粗的文字 表示重点内容或总结性语句,这类文字值得特别关注。 ‧ 当涉及到编程语言之间不一致的名词时,本书均以 Python 为准,例如使用 None 来表示“空”。 ‧ 本书部分放弃了编程语言的注释规范,以换取更加紧凑的内容排版。注释主要分为三种类型:标题注 2 算法是什么 1.2.1 算法定义 「算法 algorithm」是在有限时间内解决特定问题的一组指令或操作步骤,它具有以下特性。 ‧ 问题是明确的,包含清晰的输入和输出定义。 ‧ 具有可行性,能够在有限步骤、时间和内存空间下完成。 ‧ 各步骤都有确定的含义,相同的输入和运行条件下,输出始终相同。 1.2.2 数据结构定义 「数据结构 data structure」是计算机中组织和存储数据的方式,具有以下设计目标。0 码力 | 376 页 | 30.69 MB | 1 年前3 Hello 算法 1.0.0b5 Java版提供的写作排版建议,以及他开发的开源文档主题 Material‑for‑MkDocs 。 在写作过程中,我阅读了许多关于数据结构与算法的教材和文章。这些作品为本书提供了优秀的范本,确保 了本书内容的准确性与品质。在此感谢所有老师和前辈们的杰出贡献! 本书倡导手脑并用的学习方式,在这一点上深受《动手学深度学习》的启发。在此向各位读者强烈推荐这本 优秀著作。 衷心感谢我的父母,正是你们一直以来的支持与鼓励,让我有机会做这件富有趣味的事。 专有名词和有特指含义的词句会使用“双引号” 标注,以避免歧义。 ‧ 重要专有名词及其英文翻译会用「」 括号标注,例如「数组 array」 。建议记住它们,以便阅读文献。 ‧ 加粗的文字 表示重点内容或总结性语句,这类文字值得特别关注。 ‧ 当涉及到编程语言之间不一致的名词时,本书均以 Python 为准,例如使用 None 来表示“空”。 ‧ 本书部分放弃了编程语言的注释规范,以换取更加紧凑的内容排版。注释主要分为三种类型:标题注 2 算法是什么 1.2.1 算法定义 「算法 algorithm」是在有限时间内解决特定问题的一组指令或操作步骤,它具有以下特性。 ‧ 问题是明确的,包含清晰的输入和输出定义。 ‧ 具有可行性,能够在有限步骤、时间和内存空间下完成。 ‧ 各步骤都有确定的含义,相同的输入和运行条件下,输出始终相同。 1.2.2 数据结构定义 「数据结构 data structure」是计算机中组织和存储数据的方式,具有以下设计目标。0 码力 | 376 页 | 30.69 MB | 1 年前3
 Hello 算法 1.0.0b4 Java版提供的写作排版建议,以及杰出的开源项目 Material‑for‑MkDocs 。 在写作过程中,我阅读了许多关于数据结构与算法的教材和文章。这些作品为本书提供了优秀的范本,确保 了本书内容的准确性与品质。在此感谢所有老师和前辈们的杰出贡献! 本书倡导手脑并用的学习方式,在这一点上深受《动手学深度学习》的启发。在此向各位读者强烈推荐这本 优秀著作。 衷心感谢我的父母,正是你们一直以来的支持与鼓励,让我有机会做这件富有趣味的事。 的是选读章节,内容相对困难。如果你的时间有限,建议可以先跳过。 ‧ 文章中的重要名词会用「」 括号标注,例如「数组 Array」 。请务必记住这些名词,包括英文翻译,以 便后续阅读文献时使用。 ‧ 加粗的文字 表示重点内容或总结性语句,这类文字值得特别关注。 ‧ 专有名词和有特指含义的词句会使用“双引号” 标注,以避免歧义。 ‧ 涉及到编程语言之间不一致的名词,本书均以 Python 为准,例如使用 None 来表示“空”。 算法是什么 1.2.1. 算法定义 「算法 Algorithm」是在有限时间内解决特定问题的一组指令或操作步骤。算法具有以下特性: ‧ 问题是明确的,包含清晰的输入和输出定义。 ‧ 具有可行性,能够在有限步骤、时间和内存空间下完成。 ‧ 各步骤都有确定的含义,相同的输入和运行条件下,输出始终相同。 1.2.2. 数据结构定义 「数据结构 Data Structure」是计算机中组织和0 码力 | 342 页 | 27.39 MB | 1 年前3 Hello 算法 1.0.0b4 Java版提供的写作排版建议,以及杰出的开源项目 Material‑for‑MkDocs 。 在写作过程中,我阅读了许多关于数据结构与算法的教材和文章。这些作品为本书提供了优秀的范本,确保 了本书内容的准确性与品质。在此感谢所有老师和前辈们的杰出贡献! 本书倡导手脑并用的学习方式,在这一点上深受《动手学深度学习》的启发。在此向各位读者强烈推荐这本 优秀著作。 衷心感谢我的父母,正是你们一直以来的支持与鼓励,让我有机会做这件富有趣味的事。 的是选读章节,内容相对困难。如果你的时间有限,建议可以先跳过。 ‧ 文章中的重要名词会用「」 括号标注,例如「数组 Array」 。请务必记住这些名词,包括英文翻译,以 便后续阅读文献时使用。 ‧ 加粗的文字 表示重点内容或总结性语句,这类文字值得特别关注。 ‧ 专有名词和有特指含义的词句会使用“双引号” 标注,以避免歧义。 ‧ 涉及到编程语言之间不一致的名词,本书均以 Python 为准,例如使用 None 来表示“空”。 算法是什么 1.2.1. 算法定义 「算法 Algorithm」是在有限时间内解决特定问题的一组指令或操作步骤。算法具有以下特性: ‧ 问题是明确的,包含清晰的输入和输出定义。 ‧ 具有可行性,能够在有限步骤、时间和内存空间下完成。 ‧ 各步骤都有确定的含义,相同的输入和运行条件下,输出始终相同。 1.2.2. 数据结构定义 「数据结构 Data Structure」是计算机中组织和0 码力 | 342 页 | 27.39 MB | 1 年前3
 Nacos架构&原理
Nacos 内核设计 28 Nacos ⼀致性协议 28 Nacos 自研 Distro 协议 38 Nacos 通信通道 42 Nacos 寻址机制 56 Nacos 服务发现模块 63 Nacos 注册中心的设计原理 63 Nacos 注册中心服务数据模型 80 Nacos 健康检查机制 89 Nacos 配置管理模块 97 配置⼀致性模型 97 Nacos ⾼可⽤设计 100 目的是为了解决集中化 和互联网化所带来的架构扩展性和面对海量用户请求的技术挑战。这里面其中有⼀个关键点是软负 载。因为整个分布式架构需要有⼀个软负载来协作各个节点之间的服务在线离线状态、数据⼀致性、 以及动态配置数据的推送。这里面最简单的需求就是将⼀个配置准时的推送到不同的节点。即便如 此简单需求,随着业务规模变大也会变的非常复杂。如何能将数据准确的在 3 秒钟之内推送到每⼀ 个计算节点 胡伟琪(白慕) 阿里巴巴在 10 多年分布式应用架构实践过程中,产出了⼀大批非常优秀的中间件技术产品,其中软 负载领域的 Diamond、Configserver、Vipserver,无论在架构先进性、功能丰富度以及性能方面均 有非常出色的积累,2018 年初中间件团队决定把这⼀领域的技术进行重新梳理并开源,这就是本书 介绍的主角 Nacos,经过三年时间的发展,Nacos 已经被大量开发者和企业客户用于生产环境,本0 码力 | 326 页 | 12.83 MB | 9 月前3 Nacos架构&原理
Nacos 内核设计 28 Nacos ⼀致性协议 28 Nacos 自研 Distro 协议 38 Nacos 通信通道 42 Nacos 寻址机制 56 Nacos 服务发现模块 63 Nacos 注册中心的设计原理 63 Nacos 注册中心服务数据模型 80 Nacos 健康检查机制 89 Nacos 配置管理模块 97 配置⼀致性模型 97 Nacos ⾼可⽤设计 100 目的是为了解决集中化 和互联网化所带来的架构扩展性和面对海量用户请求的技术挑战。这里面其中有⼀个关键点是软负 载。因为整个分布式架构需要有⼀个软负载来协作各个节点之间的服务在线离线状态、数据⼀致性、 以及动态配置数据的推送。这里面最简单的需求就是将⼀个配置准时的推送到不同的节点。即便如 此简单需求,随着业务规模变大也会变的非常复杂。如何能将数据准确的在 3 秒钟之内推送到每⼀ 个计算节点 胡伟琪(白慕) 阿里巴巴在 10 多年分布式应用架构实践过程中,产出了⼀大批非常优秀的中间件技术产品,其中软 负载领域的 Diamond、Configserver、Vipserver,无论在架构先进性、功能丰富度以及性能方面均 有非常出色的积累,2018 年初中间件团队决定把这⼀领域的技术进行重新梳理并开源,这就是本书 介绍的主角 Nacos,经过三年时间的发展,Nacos 已经被大量开发者和企业客户用于生产环境,本0 码力 | 326 页 | 12.83 MB | 9 月前3
 Hello 算法 1.0.0b1 Java版各位同学强烈推 荐这本著作,包括中文版、英文版、李沐老师 bilibili 主页。 在写作过程中,我阅读了许多数据结构与算法的教材与文章,这些著作为本书作出了很好的榜样,保证了本书 内容的正确性与质量,感谢前辈们的精彩创作! 感谢父母,你们一贯的支持与鼓励给了我自由度来做这些有趣的事。 0. 写在前面 hello‑algo.com 3 0.2. 如何使用本书 建议通读本节内容,以获取最佳阅读体验。 刷算法题。可以先从热门题单开刷,推荐剑指 Offer、LeetCode Hot 100,先积累至少 100 道题量,熟 悉大多数的算法问题。刚开始刷题时,“遗忘”是最大的困扰点,但这是很正常的,请不要担心。学习中 有一种概念叫“周期性回顾”,同一道题隔段时间做一次,在重复 3 轮以上后,往往就能牢记于心了。 3. 搭建知识体系。在学习方面,可以阅读算法专栏文章、解题框架、算法教材,不断地丰富知识体系。在 刷题方面,可以开始采用 Algorithm」是在有限时间内解决特定问题的一组指令或操作步骤。算法具有以下特性: ‧ 问题是明确的,需要拥有明确的输入和输出定义。 ‧ 解具有确定性,即给定相同输入时,输出一定相同。 ‧ 具有可行性,可在有限步骤、有限时间、有限内存空间下完成。 ‧ 独立于编程语言,即可用多种语言实现。 1.2.2. 数据结构定义 「数据结构 Data Structure」是在计算机中组织与存储数据的方式。为了提高数据存储和操作性能,数据结构0 码力 | 186 页 | 14.71 MB | 1 年前3 Hello 算法 1.0.0b1 Java版各位同学强烈推 荐这本著作,包括中文版、英文版、李沐老师 bilibili 主页。 在写作过程中,我阅读了许多数据结构与算法的教材与文章,这些著作为本书作出了很好的榜样,保证了本书 内容的正确性与质量,感谢前辈们的精彩创作! 感谢父母,你们一贯的支持与鼓励给了我自由度来做这些有趣的事。 0. 写在前面 hello‑algo.com 3 0.2. 如何使用本书 建议通读本节内容,以获取最佳阅读体验。 刷算法题。可以先从热门题单开刷,推荐剑指 Offer、LeetCode Hot 100,先积累至少 100 道题量,熟 悉大多数的算法问题。刚开始刷题时,“遗忘”是最大的困扰点,但这是很正常的,请不要担心。学习中 有一种概念叫“周期性回顾”,同一道题隔段时间做一次,在重复 3 轮以上后,往往就能牢记于心了。 3. 搭建知识体系。在学习方面,可以阅读算法专栏文章、解题框架、算法教材,不断地丰富知识体系。在 刷题方面,可以开始采用 Algorithm」是在有限时间内解决特定问题的一组指令或操作步骤。算法具有以下特性: ‧ 问题是明确的,需要拥有明确的输入和输出定义。 ‧ 解具有确定性,即给定相同输入时,输出一定相同。 ‧ 具有可行性,可在有限步骤、有限时间、有限内存空间下完成。 ‧ 独立于编程语言,即可用多种语言实现。 1.2.2. 数据结构定义 「数据结构 Data Structure」是在计算机中组织与存储数据的方式。为了提高数据存储和操作性能,数据结构0 码力 | 186 页 | 14.71 MB | 1 年前3
 Hello 算法 1.0.0b2 Java版各位同学强烈推 荐这本著作,包括中文版、英文版、李沐老师 bilibili 主页。 在写作过程中,我阅读了许多数据结构与算法的教材与文章,这些著作为本书作出了很好的榜样,保证了本书 内容的正确性与质量,感谢各位老师与前辈的精彩创作! 感谢父母,你们一贯的支持与鼓励给了我自由度来做这些有趣的事。 0. 写在前面 hello‑algo.com 3 0.2. 如何使用本书 建议通读本节内容,以获取最佳阅读体验。 刷算法题。可以先从热门题单开刷,推荐剑指 Offer、LeetCode Hot 100,先积累至少 100 道题量,熟 悉大多数的算法问题。刚开始刷题时,“遗忘”是最大的困扰点,但这是很正常的,请不要担心。学习中 有一种概念叫“周期性回顾”,同一道题隔段时间做一次,在重复 3 轮以上后,往往就能牢记于心了。 3. 搭建知识体系。在学习方面,可以阅读算法专栏文章、解题框架、算法教材,不断地丰富知识体系。在 刷题方面,可以开始采用 Algorithm」是在有限时间内解决特定问题的一组指令或操作步骤。算法具有以下特性: ‧ 问题是明确的,需要拥有明确的输入和输出定义。 ‧ 解具有确定性,即给定相同输入时,输出一定相同。 ‧ 具有可行性,可在有限步骤、有限时间、有限内存空间下完成。 ‧ 独立于编程语言,即可用多种语言实现。 1.2.2. 数据结构定义 「数据结构 Data Structure」是在计算机中组织与存储数据的方式。为了提高数据存储和操作性能,数据结构0 码力 | 197 页 | 15.72 MB | 1 年前3 Hello 算法 1.0.0b2 Java版各位同学强烈推 荐这本著作,包括中文版、英文版、李沐老师 bilibili 主页。 在写作过程中,我阅读了许多数据结构与算法的教材与文章,这些著作为本书作出了很好的榜样,保证了本书 内容的正确性与质量,感谢各位老师与前辈的精彩创作! 感谢父母,你们一贯的支持与鼓励给了我自由度来做这些有趣的事。 0. 写在前面 hello‑algo.com 3 0.2. 如何使用本书 建议通读本节内容,以获取最佳阅读体验。 刷算法题。可以先从热门题单开刷,推荐剑指 Offer、LeetCode Hot 100,先积累至少 100 道题量,熟 悉大多数的算法问题。刚开始刷题时,“遗忘”是最大的困扰点,但这是很正常的,请不要担心。学习中 有一种概念叫“周期性回顾”,同一道题隔段时间做一次,在重复 3 轮以上后,往往就能牢记于心了。 3. 搭建知识体系。在学习方面,可以阅读算法专栏文章、解题框架、算法教材,不断地丰富知识体系。在 刷题方面,可以开始采用 Algorithm」是在有限时间内解决特定问题的一组指令或操作步骤。算法具有以下特性: ‧ 问题是明确的,需要拥有明确的输入和输出定义。 ‧ 解具有确定性,即给定相同输入时,输出一定相同。 ‧ 具有可行性,可在有限步骤、有限时间、有限内存空间下完成。 ‧ 独立于编程语言,即可用多种语言实现。 1.2.2. 数据结构定义 「数据结构 Data Structure」是在计算机中组织与存储数据的方式。为了提高数据存储和操作性能,数据结构0 码力 | 197 页 | 15.72 MB | 1 年前3
 Java 应用与开发 - 面向对象编程进阶大纲 多态性 方法重载 关键字 static 关键字 final Java 应用与开发 面向对象编程进阶 PART2 王晓东 wangxiaodong@ouc.edu.cn 中国海洋大学 September 30, 2018 大纲 多态性 方法重载 关键字 static 关键字 final 学习目标 1. 理解多态和虚方法调用的概念,掌握其用法 2. 掌握方法重载的方法 3. 掌握 掌握 final 关键字的概念和使用方法 大纲 多态性 方法重载 关键字 static 关键字 final 大纲 多态性 方法重载 关键字 static 关键字 final 大纲 多态性 方法重载 关键字 static 关键字 final 接��� 多态性 方法重载 关键字 static 关键字 final 大纲 多态性 方法重载 关键字 static 关键字 final //Student 是 Person 的子类 0x3a478b null 0 null name age school Student类型对象 Person类型变量p 大纲 多态性 方法重载 关键字 static 关键字 final 什么是多态? 在 Java 中,子类的对象可以替代父类的对象使用称为多态。 O Java 引用变量与所引用对象间的类型匹配关系 ▶ 一个对0 码力 | 49 页 | 659.74 KB | 1 年前3 Java 应用与开发 - 面向对象编程进阶大纲 多态性 方法重载 关键字 static 关键字 final Java 应用与开发 面向对象编程进阶 PART2 王晓东 wangxiaodong@ouc.edu.cn 中国海洋大学 September 30, 2018 大纲 多态性 方法重载 关键字 static 关键字 final 学习目标 1. 理解多态和虚方法调用的概念,掌握其用法 2. 掌握方法重载的方法 3. 掌握 掌握 final 关键字的概念和使用方法 大纲 多态性 方法重载 关键字 static 关键字 final 大纲 多态性 方法重载 关键字 static 关键字 final 大纲 多态性 方法重载 关键字 static 关键字 final 接��� 多态性 方法重载 关键字 static 关键字 final 大纲 多态性 方法重载 关键字 static 关键字 final //Student 是 Person 的子类 0x3a478b null 0 null name age school Student类型对象 Person类型变量p 大纲 多态性 方法重载 关键字 static 关键字 final 什么是多态? 在 Java 中,子类的对象可以替代父类的对象使用称为多态。 O Java 引用变量与所引用对象间的类型匹配关系 ▶ 一个对0 码力 | 49 页 | 659.74 KB | 1 年前3
 跟我学Shiro - 张开涛Manager:会话管理,即用户登录后就是一次会话,在没有退出之前,它的所有信 息都在会话中;会话可以是普通 JavaSE 环境的,也可以是如 Web 环境的; Cryptography:加密,保护数据的安全性,如密码加密存储到数据库,而不是明文存储; Web Support:Web 支持,可以非常容易的集成到 Web 环境; Caching:缓存,比如用户登录后,其用户信息、拥有的角色/权限不必每次去查,这样可以 API,且 API 契约明确;从内部来看的话,其应该有一个可扩展 的架构,即非常容易插入用户自定义实现,因为任何框架都不能满足所有需求。 首先,我们从外部来看 Shiro 吧,即从应用程序角度的来观察如何使用 Shiro 完成工作。如 下图: 可以看到:应用代码直接交互的对象是Subject,也就是说Shiro的对外API核心就是Subject; 其每个 API 的含义: Subjec “/formfilterlogin”的话登录成功将直接到默认的 successUrl。 4、授权(角色/权限验证) 4.1、shiro.ini 通 过 unauthorizedUrl 属 性 指 定 如 果 授 权 失 败 时 重 定 向 到 的 地 址 。 roles 是 org.apache.shiro.web.filter.authz.RolesAuthorizationFilter0 码力 | 219 页 | 4.16 MB | 10 月前3 跟我学Shiro - 张开涛Manager:会话管理,即用户登录后就是一次会话,在没有退出之前,它的所有信 息都在会话中;会话可以是普通 JavaSE 环境的,也可以是如 Web 环境的; Cryptography:加密,保护数据的安全性,如密码加密存储到数据库,而不是明文存储; Web Support:Web 支持,可以非常容易的集成到 Web 环境; Caching:缓存,比如用户登录后,其用户信息、拥有的角色/权限不必每次去查,这样可以 API,且 API 契约明确;从内部来看的话,其应该有一个可扩展 的架构,即非常容易插入用户自定义实现,因为任何框架都不能满足所有需求。 首先,我们从外部来看 Shiro 吧,即从应用程序角度的来观察如何使用 Shiro 完成工作。如 下图: 可以看到:应用代码直接交互的对象是Subject,也就是说Shiro的对外API核心就是Subject; 其每个 API 的含义: Subjec “/formfilterlogin”的话登录成功将直接到默认的 successUrl。 4、授权(角色/权限验证) 4.1、shiro.ini 通 过 unauthorizedUrl 属 性 指 定 如 果 授 权 失 败 时 重 定 向 到 的 地 址 。 roles 是 org.apache.shiro.web.filter.authz.RolesAuthorizationFilter0 码力 | 219 页 | 4.16 MB | 10 月前3
共 33 条
- 1
- 2
- 3
- 4













