暂无个人介绍
在前面两篇文章中,我们简要介绍了数据结构中的各种【树】在搜索、数据库等领域的使用场景,希望对大家有所帮助。
最近逛 GitHub,发现了一个非常好玩的开源项目——头像生成器,给大家分享一下~
计算机科学家尼古拉斯·沃斯(Niklaus Wirth)曾说过:编程=数据结构+算法 ,可见数据结构在编程中的重要性。
提到数据结构中的树(Tree) ,大家应该都不陌生,相关书籍中都有大段篇幅的介绍,刷 Leetcode 的时候会遇到很多相关问题。很多人往往会用 “手写红黑树” 来形容面试难度很高。
二分查找是一种在每次比较之后将查找空间一分为二的算法。当我们要处理的问题具备单调性,或者要搜寻序列的边界时,应该考虑使用二分查找算法
在之前的内容中,我们给大家介绍了 C++实现线程池过程中的一些常用线优化方案,并分析了不同机制使用时的利弊。这一篇,是线程池系列的最后一章。我们会介绍一下 CGraph 中的 threadpool 如何使用,给出性能对比,并对接下来的工作做一些展望。让我们在线程池性能优化和功能提升的道路上,越走越远。
8 月份 GitHub 上最热门的 Java 开源项目排行新鲜出炉,一起来看看~
在前几章的内容中,我们给大家介绍了一些 C++线程池中的优化思路和实现方案。这一章中,我们来聊一聊在编程实现过程中,一些工程层面的优化。让我们的代码执行的速度,跟得上自己的思路。
在上一章中,我们给大家介绍了一些 C++线程池中的优化思路和实现方案。这一章中,我们将继续这个主题,接着聊线程池中还有可以“压榨”的空间。为实现我们吹过的牛 B,而继续编程
大家好,我是不会写代码的纯序员——Chunel Feng[1]。这篇文章是线程池优化系列连载的第二篇。主要跟大家介绍几种线程池优化思路,包括:local-thread 机制、lock-free 机制、work-stealing 机制。
线程池大家应该都用过,不过如何从 0 到 1 的设计一款简单好用且性能较好的线程池?我们在接下来的几篇文章中,为您一一介绍。
用好 Git 很难: 很容易就犯错了,然后想自己弥补犯下的错,简直太难了。
相信大家在日常工作中,已经精通各种循环逻辑的实现。就拿我来说吧,多年的工作经验,已经让我可以熟练的使用 C++,Python,英语等多种语言,循环多次输出“hello word”。不过大家有没有想过一个这样的问题:如何在一个有向无环图(Directed Acyclic Graph,简称dag)中实现循环呢?
今天给大家讲一道面试中经常容易遇到的一道题:“手写一个 LRU 算法”。
大家好,我是不会写代码的纯序员——Chunel Feng[3]。俗话说,人生如码,码如人生。人生中,有些事情是可以同时进行的,有些事情又必须是前后依次进行的;有些事情是可以刚开始就做的,有些事情又必须等待某个时机成熟了才可以开始。
今天给大家分享一个 GitHub 刷题项目,也是目前我们 Doocs 成员们在积极维护的一个项目。
Doocs 开源社区的朋友们,你们好,我是 Chunel Feng[3]。今天,我们就来简单分析几道动态规划(Dynamic Programming,简称 DP)相关的热门面试题目,陪着大家一起熟悉或复习一下这一部分知识。
对于海量数据的处理经常会涉及到 topK 问题。在设计数据结构和算法的时候,主要需要考虑的应该是当前算法(包括数据结构)跟给定情境(比如数据量级、数据类型)的适配程度,和当前问题最核心的瓶颈(如降低时间复杂度,还是降低空间复杂度)是什么。
由于 Gitee Pages 的访问速度很快,很多朋友会选择 Gitee Pages 部署项目(如:个人博客、开源项目国内镜像站点)。但是它不像 GitHub Pages 那样,一提交代码就能自动更新 Pages,因为 Gitee 的自动部署属于 Gitee Pages Pro 的服务。
该文所涉及的 Netty 源码版本为 4.1.6。
理论性的文字,我觉得就没必要再扯一遍咯,大道理讲这么多,越听越迷糊。不如直接看源码加注释来的明白痛快。所以话不多说,直接上源码。
今天,GitHub 官方正式发布了 GitHub CLI 1.0 版本,它能让开发者直接通过命令行来实现一些基础化的操作,比如创建 issues,发布版本,合并 Pull Requests 等等。
该文所涉及的 netty 源码版本为 4.1.6。
关于 Mybatis 源码系列,前面已经介绍了缓存模块,这篇文章里,我们来看看 Mybatis 反射工具箱和 TypeHandler 系列
该文所涉及的 netty 源码版本为 4.1.6。
此前,我维护的多个 GitHub 项目都需要同时部署 GitHub Pages 和 Gitee Pages 国内镜像站点。
本文涉及到的 Netty 源码版本为 4.1.6。
MyBatis 中的缓存分为一级缓存、二级缓存,但在本质上是相同的,它们使用的都是 Cache 接口的实现。在这篇文章里,我们就来分析 Cache 接口以及多个实现类的具体实现。
互联网 Java 工程师进阶知识完全扫盲项目自 2018 年在 GitHub Doocs[1] 开源社区发布以来,已经累计获得超过 4.5w 的关注量。
Spring、Netty、Mybatis 等框架的代码中大量运用了 Java 多线程编程技巧。并发编程处理的恰当与否,将直接影响架构的性能。 本文通过对这些框架源码的分析,结合并发编程的常用技巧,来讲解多线程编程在这些主流框架中的应用。
设计模式是解决问题的方案,从大神的代码中学习对设计模式的使用,可以有效提升个人编码及设计代码的能力。本系列博文用于总结阅读过的框架源码(Spring 系列、Mybatis)及 JDK 源码中 所使用过的设计模式,并结合个人工作经验,重新理解设计模式。
我给大家找了一个非常好用的开源库—— Generate Avatar。作者 Lorenz Weiß,是一名来自国外的 Web 开发者。
Coding 通常被视为一项单独的活动,但实际上,这是由一小群开源维护者、贡献者和团队领导的全球最大的社区活动。这些“无名英雄”常常需要花费大量的时间来构建软件、修复 issues、解答问题和管理社区,而往往没有得到资金资金或认可。开源项目的使用者与维护者的比例可以达到 2,000: 1 的极度不平衡。
Semaphore 信号量,可用于控制一定时间内,并发执行的线程数,基于 AQS 实现。可应用于网关限流、资源限制 (如 最大可发起连接数)。由于 release() 释放许可时,未对释放许可数做限制,所以可以通过该方法增加总的许可数量。
SDS(Simple Dynamic Strings, 简单动态字符串)是 Redis 的一种基本数据结构,主要是用于存储字符串和整数。 这篇文章里,我们就来探讨一下 Redis SDS 这种数据结构的底层实现原理。
AbstractQueuedSynchronizer是 Doug Lea 大师创作的用来构建锁或者其他同步组件的基础框架类。J.U.C 中许多锁和并发工具类的核心实现都依赖于 AQS,如:ReentrantLock、ReentrantReadWriteLock、Semaphore、CountDownLatch 等。
看源码之前,先了解一下该组件 最主要的几个 接口、抽象类和实现类的结构关系。
设计模式是解决问题的方案,从大神的代码中学习对设计模式的使用,可以有效提升个人编码及设计代码的能力。本系列博文用于总结阅读过的框架源码(Spring 系列、Mybatis)及 JDK 源码中 所使用过的设计模式,并结合个人工作经验,重新理解设计模式。
本文所列题目来自 LeetCode 中国网站,属于算法面试中关于二叉树的经典高频考题(求二叉树的最近公共祖先)。题解由 Doocs 开源社区 leetcode 项目维护者提供。
本文选自 Doocs 开源社区旗下“源码猎人”项目,作者 AmyliaY。
今天给大家介绍我的一个开源工具 V2EX Action,它可以自动将 V 站热门发送到指定的 webhook 地址,如企业微信群机器人。可配置 workflow 的触发条件为 schedule,实现周期性定时发送热门内容。
本文所列题目来自 LeetCode 中国网站,属于算法面试中关于链表的经典高频考题(“玩转链表”第二弹:环形链表专栏)。题解由 Doocs 开源社区 leetcode 项目维护者提供。
本文所列题目来自 LeetCode 中国网站,属于算法面试中关于链表的经典高频考题(“玩转链表”第一弹)。题解由 Doocs 开源社区 leetcode 项目维护者提供
本文所列题目来自 LeetCode 中国网站,属于算法面试中关于位运算的经典高频考题。题解由 Doocs 开源社区 leetcode 项目维护者提供。
本题来自 LeetCode 中国网站,属于算法面试中的一道经典高频考题。题解由 Doocs 开源社区 leetcode 项目维护者提供。
今天,小 D 给大家分享一款非常好用的微信 Markdown 编辑器 md[1]。
CS-Notes[1]
使用 GitHub Pages 时,每当项目有更新,GitHub 会自动帮我们重新部署 GitHub Pages。对于国内的 Gitee Pages,一般情况下无法自动部署,除非我们开通 Gitee Pages Pro 功能。而 Pro 功能的开通,需要满足以下其中一个条件
GitHub 团队正在开发一项名为 Discussions 的新功能。有了 GitHub Discussions,我们可以像在 StackOverflow 上一样,进行讨论或者提出问题。
针对 新型冠状病毒肺炎疫情爆发情况,GitHub 官方于昨日发布了如下声明,一起来看看。