自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(496)
  • 收藏
  • 关注

原创 android项目分享目录

android项目分享目录Jetpack全组件实战开发短视频应用AppFlutter携程实战前端:移动端“淘宝造物节” 3D绚酷空间 VR 场景Android通用框架设计与完整电商App开发带后台的IM即时通讯App 全程MVP手把手打造总结百度地图SDK 项目分享...

2021-01-09 22:37:42 60

原创 android源码设计模式解析与实战目录

android源码设计模式解析与实战目录第1章 走向灵活软件之路——面向对象的六大原则第2章 应用最广的模式——单例模式第3章 自由扩展你的项目Builder模式第4章 使程序运行更高效——原型模式第5章 应用最广泛的模式——工厂方法模式第6章 创建型设计模式——抽象工厂模式第7章 时势造英雄——策略模式...

2020-12-28 22:36:38 60

原创 android源码分析总目录

android源码分析总目录JetpackRecyclerViewV - LayoutGlideJetpackJetpack Navigation----源码解析Jetpack ---- Lifecycle源码解析(1)基础知识Jetpack ---- Lifecycle源码解析(2)Lifecycle 的 Event & StateJetpack ---- Lifecycle源码解析(3)注册监听 & 发送事件Jetpack ---- Lifecycle源码解析(4)响应的观察

2020-12-23 20:29:51 109

原创 Jetpack入门和源码分析系列目录

Jetpack入门和源码分析系列NavigationJetpack Navigation----入门(一)Jetpack Navigation----入门(二)Jetpack Navigation----入门(三)Jetpack Navigation----入门(四)Jetpack Navigation----入门(五)Jetpack Navigation----入门(六)Jetpack Navigation----源码解析LifecycleJetpack ---- Lifecycle入

2020-12-23 13:29:53 58

原创 Java核心技术面试精讲 - 目录

这系列相关博客,转载 Java核心技术面试精讲Java核心技术面试精讲 - 目录开篇词 (1讲)模块一 Java基础 (14讲)模块二 Java进阶 (16讲)模块三 Java安全基础 (2讲)模块四 Java性能基础 (3讲)模块5 Java应用开发扩展 (4讲)周末福利 (2讲)结束语 (1讲)开篇词 (1讲)开篇词 | 以面试题为切入点,有效提升你的Java内功模块一 Java基础 ...

2020-04-30 19:26:24 1904

原创 Android开发高手课 - 目录

这系列相关博客,参考 Android开发高手课Android开发高手课 - 目录开篇词 (1讲)导读 (1讲)模块一 高质量开发 (25讲)模块二 高效开发 (9讲)模块三 架构演进 (9讲)练习Sample跑起来 (8讲)特别放送 (7讲)结束语 (1讲)开篇词 (1讲)开篇词 | 焦虑的移动开发者该如何破局?导读 (1讲)导读 | 如何打造高质量的应用?模块一 高质量开发 (25讲...

2020-04-22 22:49:54 114

原创 数据结构与算法之美 - 目录

这系列相关博客,参考 数据结构与算法之美数据结构与算法之美 - 目录开篇词 (1讲)入门篇 (4讲)基础篇 (38讲)高级篇 (9讲)实战篇 (5讲)加餐:不定期福利 (6讲)加餐:春节7天练 (7讲)加餐:用户学习故事 (2讲)结束语 (3讲)打卡召集令 (5讲)开篇词 (1讲)开篇词 | 从今天起,跨过“数据结构与算法”这道坎入门篇 (4讲)01 | 为什么要学习数据结构和算法?0...

2020-04-22 22:44:25 169

原创 设计模式之美 - 目录

这系列相关博客,参考 设计模式之美设计模式之美 - 目录开篇词 (1讲)设计模式学习导读 (3讲)设计原则与思想:面向对象 (11讲)设计原则与思想:设计原则 (12讲)设计原则与思想:规范与重构 (11讲)设计原则与思想:总结课 (3讲)设计模式与范式:创建型 (7讲)设计模式与范式:结构型 (8讲)设计模式与范式:行为型 (18讲)设计模式与范式:总结课 (1讲)不定期加餐 (3讲)开篇词...

2020-04-22 22:37:00 1231 2

原创 Java核心技术面试精讲 - 第14讲 | 谈谈你知道的设计模式?

这系列相关博客,转载 Java核心技术面试精讲Java核心技术面试精讲 - 第14讲 | 谈谈你知道的设计模式?)设计模式是人们为软件开发中相同表征的问题,抽象出的可重复利用的解决方案。在某种程度上,设计模式已经代表了一些特定情况的最佳实践,同时也起到了软件工程师之间沟通 的’‘行话”的作用。理解和掌握典型的设计模式,有利于我们提高沟通、设计的效率和质量。今天我要问你的问题是,谈谈你知道...

2021-01-09 22:33:29 138

原创 Java核心技术面试精讲 - 第13讲 | 谈谈接口和抽象类有什么区别?

这系列相关博客,转载 Java核心技术面试精讲Java核心技术面试精讲 - 第13讲 | 谈谈接口和抽象类有什么区别?Java是非常典型的面向对象语言,曾经有一段时间,程序员整天把面向对象、设计模式挂在嘴边。虽然如今大家对这方面已经不再那么狂热,但是不可否认,掌握面向对象设计原则 和技巧,是保证高质量代码的基础之一。面向对象提供的基本机制,对于提高开发、沟通等各方面效率至关重要。考察面向对象...

2021-01-09 22:03:18 50

原创 Java核心技术面试精讲 - 第12讲 | Java有几种文件拷贝方式?哪一种最高效?

这系列相关博客,转载 Java核心技术面试精讲Java核心技术面试精讲 - 第12讲 | Java有几种文件拷贝方式?哪一种最高效?今天我要问你的问题是,Java有几种文用者贝方式;哪一种最高室典型回答 拼课微信:699250Java有多种比较典型的文件拷贝实现方式,比如:利用java,io类库,直接为源文件梅建一个FilelnputStream读取’然后再为目标文件构建一个FileOu...

2021-01-09 19:19:37 88

原创 Java核心技术面试精讲 - 第11讲 | Java提供了哪些IO方式? NIO如何实现多路复用?

这系列相关博客,转载 Java核心技术面试精讲Java核心技术面试精讲 - 第11讲 | Java提供了哪些IO方式? NIO如何实现多路复用?I。一直是软件开发中的核心部分之一,伴随着海量数据增长和分布式系统的发展,I。扩展能力愈发重要。幸运的是,Java平台I。机制经过不断完善,虽然在某些方面仍有不足,但 已经在实践中证明了其•构建高扩展性应用的能力。今天我要问你的问题是,Java提供了...

2021-01-09 16:49:52 49

原创 Java核心技术面试精讲 - 第10讲 | 如何保证集合是线程安全的? ConcurrentHashMap如何实现高效地线程安全?

这系列相关博客,转载 Java核心技术面试精讲Java核心技术面试精讲 - 第10讲 | 如何保证集合是线程安全的? ConcurrentHashMap如何实现高效地线程安全?我在之前两讲介绍了Java集合框架的典型容器类,它们绝大部分都不是线程安全的,仅有的线程安全实现,比如Vector、Stack,在性能方面也远不尽如人意。幸好Java语言提供了 并发包(java,util,concurr...

2021-01-09 16:47:12 48

原创 Java核心技术面试精讲 - 第9讲 | 对比Hashtable、HashMap、TreeMap有什么不同?

这系列相关博客,转载 Java核心技术面试精讲Java核心技术面试精讲 - 第9讲 | 对比Hashtable、HashMap、TreeMap有什么不同?Map是广义Java集合框架中的另外一部分,HashMap作为框架中使用频率最高的类型之一,它本身以及相关类型自然也是面试考察的热点’今天我要问你的问题是,对比Hashtable, HashMap, TreeMap有什么不同:’谈谈你对’H...

2021-01-09 16:46:56 39

原创 Java核心技术面试精讲 - 第8讲 | 对比Vector、ArrayList、LinkedList有何区别?

这系列相关博客,转载 Java核心技术面试精讲Java核心技术面试精讲 - 第8讲 | 对比Vector、ArrayList、LinkedList有何区别?我们在日常的工作中’能够高效地管理和操作数据是非常重要的。由于每个编程语言支持的数据结•构不尽相同,比如我最早学习的C语言,需要自己实现彳艮多基础数据结构’管理和 操作会比较麻烦。相比之下,Java则要方便的多,针对通用场景的需求,Java...

2021-01-09 16:46:46 37

原创 Java核心技术面试精讲 - 第7讲 | int和Integer有什么区别?

这系列相关博客,转载 Java核心技术面试精讲Java核心技术面试精讲 - 第7讲 | int和Integer有什么区别?Java虽然号称是面向对象的语言,但是原始数据类型仍然是重要的组成元素,所以在面试中,经常考察原始数据类型和包装类等Java语言特性。 今天我要问你的问■题是,intffllnteger有什么区别?谈谈Integer的值缓存范围。典型回答int是我们常说的整形数字,是J...

2021-01-09 16:46:31 54

原创 Java核心技术面试精讲 - 第6讲 | 动态代理是基于什么原理?

这系列相关博客,转载 Java核心技术面试精讲Java核心技术面试精讲 - 第6讲 | 动态代理是基于什么原理?编程语言通常有各种不同的分类角度,动态类型和静态类型就是其中一种分类角度,简单区分就是语言类型信息是在运彳异寸检查,还是编译期检查。与其近似的还有一个对比,就是所谓强类型和弱类型,就是不同类型变量赋值时,是否需要显式地(强制)迸行类型转换。那么,如何分类Java语言呢?通常认为,...

2021-01-08 14:27:53 60

原创 Java核心技术面试精讲 - 第5讲 | String、StringBuffer、StringBuilder有什么区别?

这系列相关博客,转载 Java核心技术面试精讲Java核心技术面试精讲 - 第5讲 | String、StringBuffer、StringBuilder有什么区别?聊聊日常使用的字符串,别看它似乎很简单,但其实字符串几乎在所有编程语言里都是个特殊的存在,因为不管是数量还是体积,字符串都是大多数应用中的重要组成。今天我要问你的问题是,理解Java的字符串,String、String Buff...

2021-01-08 13:07:47 60

原创 Java核心技术面试精讲 - 第4讲 | 强引用、软引用、弱引用、幻象引用有什么区别?

这系列相关博客,转载 Java核心技术面试精讲Java核心技术面试精讲 - 第4讲 | 强引用、软引用、弱引用、幻象引用有什么区别?今天我要问你的问题是,强引用、软引用、弱引用、幻象引用有什么区别?具体使用场景是什公典型回答不同的引用类型,主要体现的是对象不同的可达性(reachable)状态和对垃圾收集的影响。所谓强引用(“Strong” Reference),就是我们最常见的普通对象...

2021-01-08 12:35:10 45

原创 Java核心技术面试精讲 - 第3讲 | 谈谈final、finally、 finalize有什么不同?

这系列相关博客,转载 Java核心技术面试精讲Java核心技术面试精讲 - 第3讲 | 谈谈final、finally、 finalize有什么不同?典型回答final可以用来修饰类、方法、变量’分别有不同的意义,final修饰的class代表不可以继承扩展’final的变量是不可以修改的’而Anal的方法也是不可以重写的(override)。finally则是Java保证重点代码一定要被...

2021-01-08 11:53:26 44

原创 数据结构与算法之美 - 39 | 回溯算法:从电影《蝴蝶效应》中学习回溯算法的核心思想

这系列相关博客,参考 数据结构与算法之美如果想了解更多内容,请去这个博客 数据结构与算法之美 - 目录数据结构与算法之美 - 39 | 回溯算法:从电影《蝴蝶效应》中学习回溯算法的核心思想如何理解“回溯算法”?两个回溯算法的经典应用1. 0-1背包2. 正则表达式内容小结课后思考我们在第 31 节提到,深度优先搜索算法利用的是回溯算法思想。这个算法思想非常简单,但是应用却非常广泛。它除了用来指导像深度优先搜索这种经典的算法设计之外,还可以用在很多实际的软件开发场景中,比如正则表达式匹配、编译原理中的语

2021-01-08 10:42:44 30

原创 数据结构与算法之美 - 38 | 分治算法:谈一谈大规模计算框架MapReduce中的分治思想

这系列相关博客,参考 数据结构与算法之美如果想了解更多内容,请去这个博客 数据结构与算法之美 - 目录数据结构与算法之美 - 38 | 分治算法:谈一谈大规模计算框架MapReduce中的分治思想如何理解分治算法?分治算法应用举例分析分治思想在海量数据处理中的应用解答开篇内容小结课后思考MapReduce 是 Google 大数据处理的三驾马车之一,另外两个是 GFS 和 Bigtable。它在倒排索引、PageRank 计算、网页分析等搜索引擎相关的技术中都有大量的应用。尽管开发一个 MapRed

2021-01-08 10:42:40 25

原创 数据结构与算法之美 - 37 | 贪心算法:如何用贪心算法实现Huffman压缩编码?

这系列相关博客,参考 数据结构与算法之美如果想了解更多内容,请去这个博客 数据结构与算法之美 - 目录数据结构与算法之美 - 37 | 贪心算法:如何用贪心算法实现Huffman压缩编码?如何理解“贪心算法”?贪心算法实战分析1. 分糖果2. 钱币找零3. 区间覆盖解答开篇内容小结课后思考基础的数据结构和算法我们基本上学完了,接下来几节,我会讲几种更加基本的算法。它们分别是贪心算法、分治算法、回溯算法、动态规划。更加确切地说,它们应该是算法思想,并不是具体的算法,常用来指导我们设计具体的算法和编码等。

2021-01-08 10:42:34 31

原创 数据结构与算法之美 - 36 | AC自动机:如何用多模式串匹配实现敏感词过滤功能?

这系列相关博客,参考 数据结构与算法之美如果想了解更多内容,请去这个博客 数据结构与算法之美 - 目录数据结构与算法之美 - 36 | AC自动机:如何用多模式串匹配实现敏感词过滤功能?基于单模式串和 Trie 树实现的敏感词过滤经典的多模式串匹配算法:AC 自动机解答开篇内容小结很多支持用户发表文本内容的网站,比如 BBS,大都会有敏感词过滤功能,用来过滤掉用户输入的一些淫秽、反动、谩骂等内容。你有没有想过,这个功能是怎么实现的呢?实际上,这些功能最基本的原理就是字符串匹配算法,也就是通过维护一个

2021-01-08 10:42:30 46 1

原创 数据结构与算法之美 - 35 | Trie树:如何实现搜索引擎的搜索关键词提示功能?

这系列相关博客,参考 数据结构与算法之美如果想了解更多内容,请去这个博客 数据结构与算法之美 - 目录数据结构与算法之美 - 35 | Trie树:如何实现搜索引擎的搜索关键词提示功能?什么是“Trie 树”?如何实现一棵 Trie 树?Trie 树真的很耗内存吗?Trie 树与散列表、红黑树的比较解答开篇内容小结课后思考搜索引擎的搜索关键词提示功能,我想你应该不陌生吧?为了方便快速输入,当你在搜索引擎的搜索框中,输入要搜索的文字的某一部分的时候,搜索引擎就会自动弹出下拉框,里面是各种关键词提示。你可

2021-01-08 10:41:55 40

原创 数据结构与算法之美 - 34 | 字符串匹配基础(下):如何借助BM算法轻松理解KMP算法?

这系列相关博客,参考 数据结构与算法之美如果想了解更多内容,请去这个博客 数据结构与算法之美 - 目录数据结构与算法之美 - 34 | 字符串匹配基础(下):如何借助BM算法轻松理解KMP算法?KMP 算法基本原理失效函数计算方法KMP 算法复杂度分析解答开篇 & 内容小结上一节我们讲了 BM 算法,尽管它很复杂,也不好理解,但却是工程中非常常用的一种高效字符串匹配算法。有统计说,它是最高效、最常用的字符串匹配算法。不过,在所有的字符串匹配算法里,要说最知名的一种的话,那就非 KMP 算法莫属

2021-01-08 10:41:48 23

原创 数据结构与算法之美 - 33 | 字符串匹配基础(中):如何实现文本编辑器中的查找功能?

这系列相关博客,参考 数据结构与算法之美如果想了解更多内容,请去这个博客 数据结构与算法之美 - 目录数据结构与算法之美 - 字符串匹配基础(中):如何实现文本编辑器中的查找功能?BM 算法的核心思想BM 算法原理分析1. 坏字符规则2. 好后缀规则BM 算法代码实现BM 算法的性能分析及优化解答开篇 & 内容小结课后思考文本编辑器中的查找替换功能,我想你应该不陌生吧?比如,我们在 Word 中把一个单词统一替换成另一个,用的就是这个功能。你有没有想过,它是怎么实现的呢?当然,你用上一节讲的

2021-01-07 14:29:42 34

原创 数据结构与算法之美 - 32 | 字符串匹配基础(上):如何借助哈希算法实现高效字符串匹配?

这系列相关博客,参考 数据结构与算法之美如果想了解更多内容,请去这个博客 数据结构与算法之美 - 目录数据结构与算法之美 - 32 | 字符串匹配基础(上):如何借助哈希算法实现高效字符串匹配?BF 算法RK 算法解答开篇 & 内容小结课后思考从今天开始,我们来学习字符串匹配算法。字符串匹配这样一个功能,我想对于任何一个开发工程师来说,应该都不会陌生。我们用的最多的就是编程语言提供的字符串查找函数,比如 Java 中的 indexOf(),Python 中的 find() 函数等,它们底层就是

2021-01-07 12:28:04 29

原创 数据结构与算法之美 - 31 | 深度和广度优先搜索:如何找出社交网络中的三度好友关系?

这系列相关博客,参考 数据结构与算法之美如果想了解更多内容,请去这个博客 数据结构与算法之美 - 目录数据结构与算法之美 - 31 | 深度和广度优先搜索:如何找出社交网络中的三度好友关系?什么是“搜索”算法?广度优先搜索(BFS)深度优先搜索(DFS)解答开篇内容小结课后思考上一节我们讲了图的表示方法,讲到如何用有向图、无向图来表示一个社交网络。在社交网络中,有一个六度分割理论,具体是说,你与世界上的另一个人间隔的关系不会超过六度,也就是说平均只需要六步就可以联系到任何两个互不相识的人。一个用户的

2021-01-07 11:56:39 22

原创 数据结构与算法之美 - 30 | 图的表示:如何存储微博、微信等社交网络中的好友关系?

这系列相关博客,参考 数据结构与算法之美如果想了解更多内容,请去这个博客 数据结构与算法之美 - 目录数据结构与算法之美 - 30 | 图的表示:如何存储微博、微信等社交网络中的好友关系?如何理解“图”?邻接矩阵存储方法邻接表存储方法解答开篇内容小结课后思考微博、微信、LinkedIn 这些社交软件我想你肯定都玩过吧。在微博中,两个人可以互相关注;在微信中,两个人可以互加好友。那你知道,如何存储微博、微信等这些社交网络的好友关系吗?这就要用到我们今天要讲的这种数据结构:图。实际上,涉及图的算法有很多

2021-01-07 10:03:29 86

原创 数据结构与算法之美 - 25 | 红黑树(上):为什么工程中都用红黑树这种二叉树?

这系列相关博客,参考 数据结构与算法之美如果想了解更多内容,请去这个博客 数据结构与算法之美 - 目录数据结构与算法之美 - 25 | 红黑树(上):为什么工程中都用红黑树这种二叉树?上两节,我们依次讲了树、二叉树、二叉查找树。二叉查找树是最常用的一种二叉树,它支持快速插入、删除、查找操作,各个操作的时间复杂度跟树的高度成正比,理想情况下,时间复杂度是 O(logn)。不过,二叉查找树在频繁的动态更新过程中,可能会出现树的高度远大于 log2n 的情况,从而导致各个操作的效率下降。极端情况下,二叉树

2021-01-07 02:53:26 80

原创 数据结构与算法之美 - 24 | 二叉树基础(下):有了如此高效的散列表,为什么还需要二叉树?

这系列相关博客,参考 数据结构与算法之美如果想了解更多内容,请去这个博客 数据结构与算法之美 - 目录数据结构与算法之美 - 24 | 二叉树基础(下):有了如此高效的散列表,为什么还需要二叉树?上一节我们学习了树、二叉树以及二叉树的遍历,今天我们再来学习一种特殊的二叉树,二叉查找树。二叉查找树最大的特点就是,支持动态数据集合的快速插入、删除、查找操作。我们之前说过,散列表也是支持这些操作的,并且散列表的这些操作比二叉查找树更高效,时间复杂度是 O(1)。既然有了这么高效的散列表,使用二叉树的地方是

2021-01-07 02:53:23 59

原创 数据结构与算法之美 - 26 | 红黑树(下):掌握这些技巧,你也可以实现一个红黑树

这系列相关博客,参考 数据结构与算法之美如果想了解更多内容,请去这个博客 数据结构与算法之美 - 目录数据结构与算法之美 - 26 | 红黑树(下):掌握这些技巧,你也可以实现一个红黑树红黑树是一个让我又爱又恨的数据结构,“爱”是因为它稳定、高效的性能,“恨”是因为实现起来实在太难了。我今天讲的红黑树的实现,对于基础不太好的同学,理解起来可能会有些困难。但是,我觉得没必要去死磕它。我为什么这么说呢?因为,即便你将左右旋背得滚瓜烂熟,我保证你过不几天就忘光了。因为,学习红黑树的代码实现,对于你平时做项

2021-01-07 02:53:00 30

原创 数据结构与算法之美 - 27 | 递归树:如何借助树来求解递归算法的时间复杂度?

这系列相关博客,参考 数据结构与算法之美如果想了解更多内容,请去这个博客 数据结构与算法之美 - 目录数据结构与算法之美 - 27 | 递归树:如何借助树来求解递归算法的时间复杂度?今天,我们来讲这种数据结构的一种特殊应用,递归树。我们都知道,递归代码的时间复杂度分析起来很麻烦。我们在第 12 节《排序(下)》那里讲过,如何利用递推公式,求解归并排序、快速排序的时间复杂度,但是,有些情况,比如快排的平均时间复杂度的分析,用递推公式的话,会涉及非常复杂的数学推导。除了用递推公式这种比较复杂的分析方法

2021-01-07 02:52:38 36

原创 数据结构与算法之美 - 28 | 堆和堆排序:为什么说堆排序没有快速排序快?

这系列相关博客,参考 数据结构与算法之美如果想了解更多内容,请去这个博客 数据结构与算法之美 - 目录数据结构与算法之美 - 28 | 堆和堆排序:为什么说堆排序没有快速排序快?我们今天讲另外一种特殊的树,“堆”(Heap)。堆这种数据结构的应用场景非常多,最经典的莫过于堆排序了。堆排序是一种原地的、时间复杂度为 O(nlogn) 的排序算法。前面我们学过快速排序,平均情况下,它的时间复杂度为 O(nlogn)。尽管这两种排序算法的时间复杂度都是 O(nlogn),甚至堆排序比快速排序的时间复杂度还

2021-01-07 02:52:21 42

原创 数据结构与算法之美 - 29 | 堆的应用:如何快速获取到Top 10的搜索关键词?

这系列相关博客,参考 数据结构与算法之美如果想了解更多内容,请去这个博客 数据结构与算法之美 - 目录数据结构与算法之美 - 29 | 堆的应用:如何快速获取到Top 10的搜索关键词?堆的应用一:优先级队列1. 合并有序小文件2. 高性能定时器堆的应用二:利用堆求 Top K堆的应用三:利用堆求中位数解答开篇内容小结搜索引擎的热门搜索排行榜功能你用过吗?你知道这个功能是如何实现的吗?实际上,它的实现并不复杂。搜索引擎每天会接收大量的用户搜索请求,它会把这些用户输入的搜索关键词记录下来,然后再离线地统

2021-01-07 02:51:45 43

原创 数据结构与算法之美 - 23 | 二叉树基础(上):什么样的二叉树适合用数组来存储?

这系列相关博客,参考 数据结构与算法之美如果想了解更多内容,请去这个博客 数据结构与算法之美 - 目录数据结构与算法之美 - 23 | 二叉树基础(上):什么样的二叉树适合用数组来存储?前面我们讲的都是线性表结构,栈、队列等等。今天我们讲一种非线性表结构,树。树这种数据结构比线性表的数据结构要复杂得多,内容也比较多,所以我会分四节来讲解。在这里插入图片描述我反复强调过,带着问题学习,是最有效的学习方式之一,所以在正式的内容开始之前,我还是给你出一道思考题:二叉树有哪几种存储方式?什么样的二叉树适合

2021-01-06 17:47:16 26

原创 数据结构与算法之美 - 22 | 哈希算法(下):哈希算法在分布式系统中有哪些应用?

这系列相关博客,参考 数据结构与算法之美如果想了解更多内容,请去这个博客 数据结构与算法之美 - 目录数据结构与算法之美 - 22 | 哈希算法(下):哈希算法在分布式系统中有哪些应用?上一节,我讲了哈希算法的四个应用,它们分别是:安全加密、数据校验、唯一标识、散列函数。今天,我们再来看剩余三种应用:负载均衡、数据分片、分布式存储。你可能已经发现,这三个应用都跟分布式系统有关。没错,今天我就带你看下,哈希算法是如何解决这些分布式问题的。应用五:负载均衡我们知道,负载均衡算法有很多,比如轮询、随机

2021-01-06 17:28:56 16

原创 数据结构与算法之美 - 21 | 哈希算法(上):如何防止数据库中的用户信息被脱库?

这系列相关博客,参考 数据结构与算法之美如果想了解更多内容,请去这个博客 数据结构与算法之美 - 目录数据结构与算法之美 - 21 | 哈希算法(上):如何防止数据库中的用户信息被脱库?还记得 2011 年 CSDN 的“脱库”事件吗?当时,CSDN 网站被黑客攻击,超过 600 万用户的注册邮箱和密码明文被泄露,很多网友对 CSDN 明文保存用户密码行为产生了不满。如果你是 CSDN 的一名工程师,你会如何存储用户密码这么重要的数据吗?仅仅 MD5 加密一下存储就够了吗? 要想搞清楚这个问题,就要先

2021-01-06 17:09:01 17

原创 数据结构与算法之美 - 20 | 散列表(下):为什么散列表和链表经常会一起使用?

这系列相关博客,参考 数据结构与算法之美如果想了解更多内容,请去这个博客 数据结构与算法之美 - 目录数据结构与算法之美 - 20 | 散列表(下):为什么散列表和链表经常会一起使用?LRU 缓存淘汰算法Redis 有序集合Java LinkedHashMap解答开篇 & 内容小结课后思考我们已经学习了 20 节内容,你有没有发现,有两种数据结构,散列表和链表,经常会被放在一起使用。你还记得,前面的章节中都有哪些地方讲到散列表和链表的组合使用吗?我带你一起回忆一下。在链表那一节,我讲到如何用

2021-01-06 16:38:31 27

空空如也

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除