摘要: 计算机源代码最终目的是将人类可读文本翻译成为计算机可执行的二进制指令。 看Code Clean这本书的时候,大多数内容都受益匪浅,但是感觉有些点会很”魔怔“,或者说强迫症福音式的点,追求完美。但是《重构:改善既有代码的设计》这本书里还提到了一个观点:重构不是一个一蹴而就的事,需要长期的实践和经验才能 阅读全文
posted @ 2022-12-05 20:45 泰阁尔 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 1 需求与问题 在分布式存储系统中,随着数据量的增加,单机难以顶住压力,不得不上多台机器构成集群。所以在分布式的存储系统中,要将数据存储到具体的节点上(或者说哈希槽位),我们可以使用哈希算法,如果采用普通的hash算法进行映射,将数据映射到具体的节点上,如key%N,key是数据的key,N是机器节 阅读全文
posted @ 2021-11-29 11:53 泰阁尔 阅读(193) 评论(1) 推荐(0) 编辑
摘要: 合并IP地址 问题描述 给定一组IPv4地址,其中每个元素可能由单个IP构成(例如192.168.0.1),也可能由一个IP段构成(如192.168.0.10 - 192.168.0.15),请将给定的IP合并。 输入例子 {"192.168.0.1", "192.168.0.12-192.168. 阅读全文
posted @ 2021-09-03 00:12 泰阁尔 阅读(1110) 评论(1) 推荐(0) 编辑
摘要: 1. 动态规划 按照比较学术化的解释,动态规划是 动态规划在查找有很多重叠子问题的情况的最优解时有效。它将问题重新组合成子问题。为了避免多次解决这些子问题,它们的结果都逐渐被计算并被保存,从简单的问题直到整个问题都被解决。因此,动态规划保存递归时的结果,因而不会在解决同样的问题时花费时间。 动态规划 阅读全文
posted @ 2021-08-11 23:22 泰阁尔 阅读(284) 评论(1) 推荐(1) 编辑
摘要: 1 概述 在允许一定误判率的大数据量下的查找是否存在问题上可以使用布隆过滤器,详情上篇文章。布隆过滤器在工程应用方面已经比较成熟了,上一篇文章中,谈到了布隆过滤器的一些缺点,比如不支持删除操作、查询效率弱,因为多个随机哈希函数探测的是bit数组中多个不同的点,所以会导致低CPU缓存命中率。 针对此2 阅读全文
posted @ 2021-07-27 19:59 泰阁尔 阅读(15475) 评论(3) 推荐(3) 编辑
摘要: 1 概述 在操作系统的页面管理中,内存会维护一部分数据以备进程使用,但是由于内存的大小必然是远远小于硬盘的,当某些进程访问到内存中没有的数据时,必然需要从硬盘中读进内存,所以迫于内存容量的压力下迫使操作系统将一些页换出,或者说踢出,而决定将哪些(个)页面踢出就是内存替换策略。 我们考虑内存中的页实际 阅读全文
posted @ 2021-07-21 14:27 泰阁尔 阅读(778) 评论(1) 推荐(0) 编辑
摘要: 1 位图(BitMap) 在讨论布隆过滤器之前,先看一下位图是什么。 首先考虑一个问题场景 假如需要过滤某些不安全网页,现有100亿个黑名单页面,每个网页的URL最多占用64字节。现要设计一种网页过滤系统,可以根据网页的URL判断该网页是否在黑名单上。 最直观的想法必然是使用一个集合或者说数据结构来 阅读全文
posted @ 2021-07-15 21:20 泰阁尔 阅读(5564) 评论(3) 推荐(3) 编辑
摘要: 1 概述 单模式匹配是处理字符串的经典问题,指在给定字符串中寻找是否含有某一给定的字串。比较形象的是CPP中的strStr()函数,Java的String类下的indexOf()函数都实现了这个功能,本文讨论几种实现单模式匹配的方法,包括暴力匹配方法、KMP方法、以及Rabin-Karp方法(虽然R 阅读全文
posted @ 2021-07-12 21:24 泰阁尔 阅读(868) 评论(0) 推荐(0) 编辑
摘要: 1 概述 本篇文章来谈一下经常用到的key-value形式的集合类HashMap,它最早出现于JDK1.2中,底层是基于散列表算法实现,HashMap允许key和value值为空。它是非线程安全的类,如果需要线程安全的HashMap,可以使用ConcurrentHashMap,关于这个在以后的文章中 阅读全文
posted @ 2021-07-11 21:39 泰阁尔 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 在日常开发中Map可能是Java集合框架中最常用的一个类了,当我们常规使用HashMap时可能会经常看到以下这种代码: Map<Integer, String> hashMap = new HashMap<>(); hashMap.put(user.getId,user.getUsername); 阅读全文
posted @ 2019-04-28 16:03 泰阁尔 阅读(447) 评论(3) 推荐(1) 编辑