Commit 274861c
zhaolq
Site updated: 2025-03-21 10:46:15
1 parent 7f3391c commit 274861c
File tree
3,546 files changed
+483070
-0
lines changed- about
- archives
- 2013
- 01
- 05
- 10
- 2015
- 10
- page
- 2
- 3
- 4
- 11
- page
- 2
- 3
- 4
- 2016
- 01
- 2017
- 09
- 2018
- 07
- 08
- 09
- page/2
- 2019
- 01
- 06
- 07
- page/2
- 08
- page/2
- 09
- 10
- 11
- page
- 2
- 3
- 12
- page
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 2020
- 01
- 02
- 04
- 05
- 06
- 10
- page/2
- 11
- 12
- page
- 2
- 3
- 4
- 5
- 2021
- 01
- 02
- 2022
- 01
- page/2
- 02
- 03
- 05
- 10
- page
- 2
- 3
- 4
- 11
- page
- 2
- 3
- 12
- page
- 2
- 3
- page
- 10
- 11
- 12
- 13
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 2023
- 01
- page
- 2
- 3
- 02
- page
- 2
- 3
- 03
- page
- 2
- 3
- 4
- 04
- page/2
- 05
- page
- 2
- 3
- 4
- 06
- page
- 2
- 3
- 07
- page
- 2
- 3
- 08
- page/2
- 09
- page
- 2
- 3
- 10
- 11
- page
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 2024
- 01
- 2099
- 12
- page
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 2
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 3
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 4
- 50
- 51
- 52
- 53
- 54
- 55
- 5
- 6
- 7
- 8
- 9
- article
- 2013
- 01/Trade
- 05/软件安装列表
- 10/高级编程语言分类
- 2015
- 10
- 01Java SE全面概括
- 02Java入门
- 03Java基础语法
- 04Java修饰符
- 05Java类与对象
- 06Java常用类1
- 07Java常用类2之包装类
- 08Java常用类3
- 09Java常用类4之集合
- 10Java集合
- 11Java正则表达式
- 12Java异常
- 13JavaIO流
- 14Java多线程之介绍
- 15Java多线程之生命周期和状态
- 16Java多线程之线程调度
- 17Java多线程之线程创建
- 18Java多线程之初识线程安全
- 19Java多线程之并发编程三大特性
- 20Java多线程之线程安全关键字
- 21Java多线程之线程安全类
- 22Java多线程之线程安全场景举例
- 23Java多线程之死锁
- 24Java多线程之锁的分类与对比
- 25Java多线程之扩展1-深入分析Synchronized原理
- 26Java多线程之扩展2-深入分析Lock原理
- 27Java多线程之线程间通信
- 28Java多线程之线程池
- 29Java多线程之线程规范与线程管理
- Java安全管理器SecurityManager
- Java高级特性之垃圾回收-粗糙版
- Java高级特性之疑难问题定位-粗糙版
- 11
- Java反射
- Java回调机制
- Java定时任务
- Java浮点型数据的精度问题
- 2016/01/oracle查缺补漏
- 2017/09
- H5和HTML5区别
- Properties类、加载properties文件、加载动态库、classpath
- 2018
- 07
- Oracle-JDK与OpenJDK之间的区别
- V2Ray
- shadowsocks
- ssmgr
- 查看及调试JDK源码
- 08
- Java5新特性
- Java6新特性
- Java7新特性
- Java8新特性-重复注解与类型注解
- Java8新特性
- Java9新特性
- Java各个版本新特性总结
- 09
- Java中文乱码问题
- Oracle nlssort函数
- 数据库建模工具
- 2019
- 01/GitHub-Pages-Hexo
- 06
- VMware使用前的bios设置
- VMware创建虚拟机
- VMware桥接模式设置固定IP
- VMware的快照和克隆
- 07
- ChildShell、SubShell、环境变量
- Eclipse中从svn中检出maven项目
- Eclipse使用总结
- Linux中apt与apt-get命令的区别与解释
- Linux软件包管理基本操作入门
- Maven实战
- Oracle-SQL-基础
- Oracle官方资源
- Project-Lombok-教程
- curl 与 wget
- 终端(terminal)和shell的区别与联系
- 08
- Eclipse-使用mybatis-generator插件自动生成代码
- JavaBean使用包装类型还是基本类型?
- Linux常用命令
- Linux远程登录
- Oracle-SQL-统计
- Oracle-TO-DATE-日期格式大全
- PO-ENTITY-VO-DTO-POJO-BO以及JavaBean介绍
- SQL到Java的数据类型映射
- SpringBoot一个骚操作搞定session-共享,没有比这更简单了
- Swagger-RESTful-API
- XML
- 09
- Oracle-SQLPlus命令
- Oracle-批量操作-SQL
- 多个邮箱统一管理
- 快速入门数据结构
- 快速入门算法
- 查看oracle数据库允许的最大连接数和当前连接数
- 计算机网络
- 10
- Git教程
- JMeter最多可以模拟多少测试用户?
- MVC、RPC、SOA和微服务架构
- NAT穿透
- Vpn与ss-ssr的区别
- 域名解析
- 扩展字段-flag-0000000000-的get、set方法
- 11
- AJAX与跨域通信
- CDB和PDB
- GitHub-Actions
- JDBC概述和驱动下载
- Nginx教程
- Oracle-Functions-MD5加密
- Oracle-Functions-列转行
- Oracle-Functions-字符串切割
- Oracle-Functions-获取具体日期
- Oracle一条数据转成多条
- Oracle内存结构:SGA、PGA、UGA
- Oracle安装-CentOS
- Oracle安装-Windows-及客户端连接配置
- Oracle的spfile与pfile
- Oracle管理工具-plsql-developer-安装
- Oracle系统表整理+常用SQL语句收集
- Oracle行列转换-进阶
- Oracle行列转换
- Oracle表空间和用户的建立与删除
- SpringBoot实现跨域的5种方式
- Tomcat教程
- cron-语法
- 四层、七层负载均衡的区别
- 基于-Spring-Boot-2-x-Mybatis-的多数据源配置
- 12
- Bash中的特殊字符大全
- Linux init、service、systemctl 三者区别
- Nginx配置SSL证书开启HTTPS教程
- configure、make、make-install-命令
- nginx禁止未绑定https域名访问
- 将第三方jar包安装到本地maven仓库
- 根证书、服务器证书、用户证书的区别
- 2020
- 01
- Docker教程
- Http、Socket、WebSocket、WebService
- 接口文档格式
- 超文本传输协议(HTTP)
- 02/DBMS中的并发控制
- 04
- IDEA创建多模块工程
- IntelliJ-IDEA使用总结
- IntelliJ-IDEA远程调试
- 注释模板
- 05
- Linux-图形界面
- Linux-安装
- Linux-用户和用户组管理
- Linux-磁盘管理
- Oracle-分析函数
- 06/Redis教程
- 10
- 01-JVM与Java体系结构
- 02-类加载子系统
- 03-运行时数据区及程序计数器
- 04-虚拟机栈
- 05-本地方法接口和本地方法栈
- 06-堆
- 07-方法区
- 08-对象实例化及直接内存
- 09-执行引擎
- 10-StringTable
- 11-垃圾回收概述及算法
- 12-垃圾回收相关概念
- 13-垃圾回收器
- 11
- 01-Class文件结构
- 02-字节码指令集与解析举例
- 03-类的加载过程详解
- 04-再谈类的加载器
- 05-附:JVM指令手册
- 12
- 01-性能监控与调优概述
- 02-JVM监控及诊断工具-命令行篇
- 03-JVM监控及诊断工具-GUI篇
- 04-JVM 运行时参数
- 05-分析GC日志
- 06-补充1:再谈内存泄漏
- 07-补充2:使用OQL语言查询对象信息
- 使用OpenSSL构建私有CA
- 公私钥和证书的生成与管理
- 2021
- 01/字符编码
- 02
- Impala Sql优化案例分享
- 大数据技术栈
- 2022
- 01
- MySQL_01安装与使用
- MySQL_03用户与权限管理
- MySQL_04逻辑架构
- MySQL_05存储引擎
- MySQL_06索引的数据结构
- MySQL_07InnoDB数据存储结构
- MySQL_08索引的创建与设计原则
- MySQL_09性能分析工具的使用
- MySQL_10索引优化与查询优化
- MySQL_11数据库的设计规范
- MySQL_12数据库其他调优策略
- MySQL_13事务基础知识
- MySQL_14MySQL事务日志
- MySQL_15锁
- MySQL_16多版本并发控制
- MySQL_17其他数据库日志
- MySQL_18主从复制
- MySQL_19数据库备份与恢复
- MySQL_20写在最后
- 各数据库常用的命令、函数、数据类型总结
- 02
- Java8 CompletableFuture
- Oracle Merge Into 用法详解
- PostgreSQL分表
- SQL中引号的使用
- Spring中@Async和@Scheduled注解、自定义线程池
- 分布式、集群、微服务
- 创建结果表的存储过程执行时间过长解决方案
- 异步和多线程区别
- 数据库连接池
- 03
- HTTP、HTTPS和HTTP2
- Impala
- PostgreSQL安装
- Spark环境搭建(Windows)
- 如何统一时区
- 05
- 分布式事务解决方案详解
- 注解@Transactional在类上还是接口上使用,哪种方式更好?
- 舱壁模式、熔断器的基本定义
- 10
- 00设计模式之美-开篇词
- 01设计模式学习导读-为什么说每个程序员都要尽早地学习并掌握设计模式相关知识?
- 02设计模式学习导读-从哪些维度评判代码质量的好坏?如何具备写出高质量代码的能力?
- 03设计模式学习导读-面向对象、设计原则、设计模式、编程规范、重构,这五者有何关系?
- 04设计原则与思想之面向对象-理论一:当谈论面向对象的时候,我们到底在谈论什么?
- 05设计原则与思想之面向对象-理论二:封装、抽象、继承、多态分别可以解决哪些编程问题?
- 06设计原则与思想之面向对象-理论三:面向对象相比面向过程有哪些优势?面向过程真的过时了吗?
- 07设计原则与思想之面向对象-理论四:哪些代码设计看似是面向对象,实际是面向过程的?
- 08设计原则与思想之面向对象-理论五:接口vs抽象类的区别?如何用普通的类模拟抽象类和接口?
- 09设计原则与思想之面向对象-理论六:为什么基于接口而非实现编程?有必要为每个类都定义接口吗?
- 10设计原则与思想之面向对象-理论七:为何说要多用组合少用继承?如何决定该用组合还是继承?
- 11设计原则与思想之面向对象-实战一(上):业务开发常用的基于贫血模型的MVC架构违背OOP吗?
- 12设计原则与思想之面向对象-实战一(下):如何利用基于充血模型的DDD开发一个虚拟钱包系统?
- 13设计原则与思想之面向对象-实战二(上):如何对接口鉴权这样一个功能开发做面向对象分析?
- 14设计原则与思想之面向对象-实战二(下):如何利用面向对象设计和编程开发接口鉴权功能?
- 14设计原则与思想之面向对象-总结
- 15设计原则与思想之设计原则-理论一:对于单一职责原则,如何判定某个类的职责是否够“单一”?
- 16设计原则与思想之设计原则-理论二:如何做到“对扩展开放、修改关闭”?扩展和修改各指什么?
- 17设计原则与思想之设计原则-理论三:里式替换(LSP)跟多态有何区别?哪些代码违背了LSP?
- 18设计原则与思想之设计原则-理论四:接口隔离原则有哪三种应用?原则中的“接口”该如何理解?
- 19设计原则与思想之设计原则-理论五:控制反转、依赖反转、依赖注入,这三者有何区别和联系?
- 20设计原则与思想之设计原则-理论六:我为何说KISS、YAGNI原则看似简单,却经常被用错?
- 21设计原则与思想之设计原则-理论七:重复的代码就一定违背DRY吗?如何提高代码的复用性?
- 22设计原则与思想之设计原则-理论八:如何用迪米特法则(LOD)实现“高内聚、松耦合”?
- 23设计原则与思想之设计原则-实战一(上):针对业务系统的开发,如何做需求分析和设计?
- 24设计原则与思想之设计原则-实战一(下):如何实现一个遵从设计原则的积分兑换系统?
- 25设计原则与思想之设计原则-实战二(上):针对非业务的通用框架开发,如何做需求分析和设计?
- 26设计原则与思想之设计原则-实战二(下):如何实现一个支持各种统计规则的性能计数器?
- 26设计原则与思想之设计原则-总结
- 27设计原则与思想之规范与重构-理论一:什么情况下要重构?到底重构什么?又该如何重构?
- 28设计原则与思想之规范与重构-理论二:为了保证重构不出错,有哪些非常能落地的技术手段?
- 29设计原则与思想之规范与重构-理论三:什么是代码的可测试性?如何写出可测试性好的代码?
- 30设计原则与思想之规范与重构-理论四:如何通过封装、抽象、模块化、中间层等解耦代码?
- 11
- 31设计原则与思想之规范与重构-理论五:让你最快速地改善代码质量的20条编程规范(上)
- 32设计原则与思想之规范与重构-理论五:让你最快速地改善代码质量的20条编程规范(中)
- 33设计原则与思想之规范与重构-理论五:让你最快速地改善代码质量的20条编程规范(下)
- 34设计原则与思想之规范与重构-实战一(上):通过一段ID生成器代码,学习如何发现代码质量问题
- 35设计原则与思想之规范与重构-实战一(下):手把手带你将ID生成器代码从“能用”重构为“好用”
- 36设计原则与思想之规范与重构-实战二(上):程序出错该返回啥?NULL、异常、错误码、空对象?
- 37设计原则与思想之规范与重构-实战二(下):重构ID生成器项目中各函数的异常处理代码
- 38设计原则与思想之总结课-总结回顾面向对象、设计原则、编程规范、重构技巧等知识点
- 39设计原则与思想之总结课-运用学过的设计原则和思想完善之前讲的性能计数器项目(上)
- 40设计原则与思想之总结课-运用学过的设计原则和思想完善之前讲的性能计数器项目(下)
- 41设计模式与范式之创建型-单例模式(上):为什么说支持懒加载的双重检测不比饿汉式更优?
- 42设计模式与范式之创建型-单例模式(中):我为什么不推荐使用单例模式?又有何替代方案?
- 43设计模式与范式之创建型-单例模式(下):如何设计实现一个集群环境下的分布式单例模式?
- 44设计模式与范式之创建型-工厂模式(上):我为什么说没事不要随便用工厂模式创建对象?
- 45设计模式与范式之创建型-工厂模式(下):如何设计实现一个Dependency Injection框架?
- 46设计模式与范式之创建型-建造者模式:详解构造函数、set方法、建造者模式三种对象创建方式
- 47设计模式与范式之创建型-原型模式:如何最快速地clone一个HashMap散列表?
- 48设计模式与范式之结构型-代理模式:代理在RPC、缓存、监控等场景中的应用
- 49设计模式与范式之结构型-桥接模式:如何实现支持不同类型和渠道的消息推送系统?
- 50设计模式与范式之结构型-装饰器模式:通过剖析Java IO类库源码学习装饰器模式
- 51设计模式与范式之结构型-适配器模式:代理、适配器、桥接、装饰,这四个模式有何区别?
- 52设计模式与范式之结构型-门面模式:如何设计合理的接口粒度以兼顾接口的易用性和通用性?
- 53设计模式与范式之结构型-组合模式:如何设计实现支持递归遍历的文件系统目录树结构?
- 54设计模式与范式之结构型-享元模式(上):如何利用享元模式优化文本编辑器的内存占用?
- 55设计模式与范式之结构型-享元模式(下):剖析享元模式在Java Integer、String中的应用
- 56设计模式与范式之行为型-观察者模式(上):详解各种应用场景下观察者模式的不同实现方式
- 57设计模式与范式之行为型-观察者模式(下):如何实现一个异步非阻塞的EventBus框架?
- 58设计模式与范式之行为型-模板模式(上):剖析模板模式在JDK、Servlet、JUnit等中的应用
- 59设计模式与范式之行为型-模板模式(下):模板模式与Callback回调函数有何区别和联系?
- 60设计模式与范式之行为型-策略模式(上):如何避免冗长的if-elseswitch分支判断代码?
- 12
- 61设计模式与范式之行为型-策略模式(下):如何实现一个支持给不同大小文件排序的小程序?
- 62设计模式与范式之行为型-职责链模式(上):如何实现可灵活扩展算法的敏感信息过滤框架?
- 63设计模式与范式之行为型-职责链模式(下):框架中常用的过滤器、拦截器是如何实现的?
- 64设计模式与范式之行为型-状态模式:游戏、工作流引擎中常用的状态机是如何实现的?
- 65设计模式与范式之行为型-迭代器模式(上):相比直接遍历集合数据,使用迭代器有哪些优势?
- 66设计模式与范式之行为型-迭代器模式(中):遍历集合的同时,为什么不能增删集合元素?
- 67设计模式与范式之行为型-迭代器模式(下):如何设计实现一个支持“快照”功能的iterator?
- 68设计模式与范式之行为型-访问者模式(上):手把手带你还原访问者模式诞生的思维过程
- 69设计模式与范式之行为型-访问者模式(下):为什么支持双分派的语言不需要访问者模式?
- 70设计模式与范式之行为型-备忘录模式:对于大对象的备份和恢复,如何优化内存和时间的消耗?
- 71设计模式与范式之行为型-命令模式:如何利用命令模式实现一个手游后端架构?
- 72设计模式与范式之行为型-解释器模式:如何设计实现一个自定义接口告警规则功能?
- 73设计模式与范式之行为型-中介模式:什么时候用中介模式?什么时候用观察者模式?
- 74设计模式与范式之总结课-总结回顾23种经典设计模式的原理、背后的思想、应用场景等
- 75设计模式与范式之总结课-在实际的项目开发中,如何避免过度设计?又如何避免设计不足?
- 76开源与项目实战之开源实战-开源实战一(上):通过剖析Java JDK源码学习灵活应用设计模式
- 77开源与项目实战之开源实战-开源实战一(下):通过剖析Java JDK源码学习灵活应用设计模式
- 78开源与项目实战之开源实战-开源实战二(上):从Unix开源开发学习应对大型复杂项目开发
- 79开源与项目实战之开源实战-开源实战二(中):从Unix开源开发学习应对大型复杂项目开发
- 80开源与项目实战之开源实战-开源实战二(下):从Unix开源开发学习应对大型复杂项目开发
- 81开源与项目实战之开源实战-开源实战三(上):借Google Guava学习发现和开发通用功能模块
- 82开源与项目实战之开源实战-开源实战三(中):剖析Google Guava中用到的几种设计模式
- 83开源与项目实战之开源实战-开源实战三(下):借Google Guava学习三大编程范式中的函数式编程
- 84开源与项目实战之开源实战-开源实战四(上):剖析Spring框架中蕴含的经典设计思想或原则
- 85开源与项目实战之开源实战-开源实战四(中):剖析Spring框架中用来支持扩展的两种设计模式
- 86开源与项目实战之开源实战-开源实战四(下):总结Spring框架用到的11种设计模式
- 87开源与项目实战之开源实战-开源实战五(上):MyBatis如何权衡易用性、性能和灵活性?
- 88开源与项目实战之开源实战-开源实战五(中):如何利用职责链与代理模式实现MyBatis Plugin?
- 89开源与项目实战之开源实战-开源实战五(下):总结MyBatis框架中用到的10种设计模式
- 90开源与项目实战之项目实战-项目实战一:设计实现一个支持各种算法的限流框架(分析)
- 2023
- 01
- 00开篇词-从今天起,跨过“数据结构与算法”这道坎
- 100开源与项目实战之总结课-如何将设计思想、原则、模式等理论知识应用到项目中?
- 101加餐一-用一篇文章带你了解专栏中用到的所有Java语法
- 101春节特别加餐-王争:如何学习《设计模式之美》专栏?
- 102加餐二-设计模式、重构、编程规范等相关书籍推荐
- 103加餐三-聊一聊Google是如何做Code Review的
- 104加餐四-聊一聊Google那些让我快速成长的地方
- 105加餐五-听一听小争哥对Google工程师文化的解读
- 106加餐六-什么才是所谓的编程能力?如何考察一个人的编程能力?
- 107加餐七-基础学科的知识如何转化成实际的技术生产力?
- 108加餐八-程序员怎么才能让自己走得更高、更远?
- 109加餐九-作为面试官或候选人,如何面试或回答设计模式问题?
- 110加餐十-如何接手一坨烂业务代码?如何在烂业务代码中成长?
- 111结束语-聊一聊机遇、方向、能力、努力!
- 91开源与项目实战之项目实战-项目实战一:设计实现一个支持各种算法的限流框架(设计)
- 92开源与项目实战之项目实战-项目实战一:设计实现一个支持各种算法的限流框架(实现)
- 93开源与项目实战之项目实战-项目实战二:设计实现一个通用的接口幂等框架(分析)
- 94开源与项目实战之项目实战-项目实战二:设计实现一个通用的接口幂等框架(设计)
- 95开源与项目实战之项目实战-项目实战二:设计实现一个通用的接口幂等框架(实现)
- 96开源与项目实战之项目实战-项目实战三:设计实现一个支持自定义规则的灰度发布组件(分析)
- 97开源与项目实战之项目实战-项目实战三:设计实现一个支持自定义规则的灰度发布组件(设计)
- 98开源与项目实战之项目实战-项目实战三:设计实现一个支持自定义规则的灰度发布组件(实现)
- 99开源与项目实战之总结课-总结回顾:在实际软件开发中常用的设计思想、原则和模式
- 02
- 01入门篇-为什么要学习数据结构和算法?
- 02入门篇-如何抓住重点,系统高效地学习数据结构与算法?
- 03入门篇-复杂度分析(上):如何分析、统计算法的执行效率和资源消耗?
- 04入门篇-复杂度分析(下):浅析最好、最坏、平均、均摊时间复杂度
- 05基础篇-数组:为什么很多编程语言中数组都从0开始编号?
- 06基础篇-链表(上):如何实现LRU缓存淘汰算法
- 07基础篇-链表(下):如何轻松写出正确的链表代码?
- 08基础篇-栈:如何实现浏览器的前进和后退功能?
- 09基础篇-队列:队列在线程池等有限资源池中的应用
- 10基础篇-递归:如何用三行代码找到“最终推荐人”?
- 11基础篇-排序(上):为什么插入排序比冒泡排序更受欢迎?
- 12基础篇-排序(下):如何用快排思想在O(n)内查找第K大元素?
- 13基础篇-线性排序:如何根据年龄给100万用户数据排序?
- 14基础篇-排序优化:如何实现一个通用的、高性能的排序函数?
- 15基础篇-二分查找(上):如何用最省内存的方式实现快速查找功能?
- 16基础篇-二分查找(下):如何快速定位IP对应的省份地址?
- 17基础篇-跳表:为什么Redis一定要用跳表来实现有序集合?
- 18基础篇-散列表(上):Word文档中的单词拼写检查功能是如何实现的?
- 19基础篇-散列表(中):如何打造一个工业级水平的散列表?
- 20基础篇-散列表(下):为什么散列表和链表经常会一起使用?
- 21基础篇-哈希算法(上):如何防止数据库中的用户信息被脱库?
- 22基础篇-哈希算法(下):哈希算法在分布式系统中有哪些应用?
- 23基础篇-二叉树基础(上):什么样的二叉树适合用数组来存储?
- 24基础篇-二叉树基础(下):有了如此高效的散列表,为什么还需要二叉树?
- 25基础篇-红黑树(上):为什么工程中都用红黑树这种二叉树?
- 26基础篇-红黑树(下):掌握这些技巧,你也可以实现一个红黑树
- 27基础篇-递归树:如何借助树来求解递归算法的时间复杂度?
- 28基础篇-堆和堆排序:为什么说堆排序没有快速排序快?
- 29基础篇-堆的应用:如何快速获取到Top 10最热门的搜索关键词?
- 30基础篇-图的表示:如何存储微博、微信等社交网络中的好友关系?
- 03
- 31基础篇-深度和广度优先搜索:如何找出社交网络中的三度好友关系?
- 32基础篇-字符串匹配基础(上):如何借助哈希算法实现高效字符串匹配?
- 33基础篇-字符串匹配基础(中):如何实现文本编辑器中的查找功能?
- 34基础篇-字符串匹配基础(下):如何借助BM算法轻松理解KMP算法?
- 35基础篇-Trie树:如何实现搜索引擎的搜索关键词提示功能?
- 36基础篇-AC自动机:如何用多模式串匹配实现敏感词过滤功能?
- 37基础篇-贪心算法:如何用贪心算法实现Huffman压缩编码?
- 38基础篇-分治算法:谈一谈大规模计算框架MapReduce中的分治思想
- 39基础篇-回溯算法:从电影《蝴蝶效应》中学习回溯算法的核心思想
- 40基础篇-初识动态规划:如何巧妙解决“双十一”购物时的凑单问题?
- 41基础篇-动态规划理论:一篇文章带你彻底搞懂最优子结构、无后效性和重复子问题
- 42基础篇-动态规划实战:如何实现搜索引擎中的拼写纠错功能?
- 43高级篇-拓扑排序:如何确定代码源文件的编译依赖关系?
- 44高级篇-最短路径:地图软件是如何计算出最优出行路径的?
- 45高级篇-位图:如何实现网页爬虫中的URL去重功能?
- 46高级篇-概率统计:如何利用朴素贝叶斯算法过滤垃圾短信?
- 47高级篇-向量空间:如何实现一个简单的音乐推荐系统?
- 48高级篇-B+树:MySQL数据库索引是如何实现的?
- 49高级篇-搜索:如何用A搜索算法实现游戏中的寻路功能?
- 50高级篇-索引:如何在海量数据中快速查找某个数据?
- 51高级篇-并行算法:如何利用并行处理提高算法的执行效率?
- 52实战篇-算法实战(一):剖析Redis常用数据类型对应的数据结构
- 53实战篇-算法实战(二):剖析搜索引擎背后的经典数据结构和算法
- 54实战篇-算法实战(三):剖析高性能队列Disruptor背后的数据结构和算法
- 55实战篇-算法实战(四):剖析微服务接口鉴权限流背后的数据结构和算法
- 56实战篇-算法实战(五):如何用学过的数据结构和算法实现一个短网址系统?
- 57加餐:不定期福利-第一期 数据结构与算法学习书单
- 58加餐:不定期福利-第二期 王争:羁绊前行的,不是肆虐的狂风,而是内心的迷茫
- 59加餐:不定期福利-第三期 测一测你的算法阶段学习成果
- 60加餐:不定期福利-第四期 刘超:我是怎么学习《数据结构与算法之美》的?
- 61加餐:不定期福利-总结课 在实际开发中,如何权衡选择使用哪种数据结构和算法?
- 62加餐:不定期福利-《数据结构与算法之美》学习指导手册
- 04
- 00开篇词-照着做,你也能成为架构师!
- 63加餐:春节7天练-Day 1:数组和链表
- 64加餐:春节7天练-Day 2:栈、队列和递归
- 65加餐:春节7天练-Day 3:排序和二分查找
- 66加餐:春节7天练-Day 4:散列表和字符串
- 67加餐:春节7天练-Day 5:二叉树和堆
- 68加餐:春节7天练-Day 6:图
- 69加餐:春节7天练-Day 7:贪心、分治、回溯和动态规划
- 70打卡召集令:60 天攻克数据结构与算法
- 71打卡召集令:第一阶段知识总结
- 72打卡召集令:第二阶段知识总结
- 73打卡召集令:第三阶段知识总结
- 74打卡召集令:第四阶段知识总结
- 05
- 01基础架构-架构到底是指什么?
- 02基础架构-架构设计的历史背景
- 03基础架构-架构设计的目的
- 04基础架构-复杂度来源:高性能
- 05基础架构-复杂度来源:高可用
- 06基础架构-复杂度来源:可扩展性
- 07基础架构-复杂度来源:低成本、安全、规模
- 08基础架构-架构设计三原则
- 09基础架构-架构设计原则案例
- 10基础架构-架构设计流程:识别复杂度
- 11基础架构-架构设计流程:设计备选方案
- 12基础架构-架构设计流程:评估和选择备选方案
- 13基础架构-架构设计流程:详细方案设计
- 14高性能架构模式-高性能数据库集群:读写分离
- 15高性能架构模式-高性能数据库集群:分库分表
- 16高性能架构模式-高性能NoSQL
- 17高性能架构模式-高性能缓存架构
- 18高性能架构模式-单服务器高性能模式:PPC与TPC
- 19高性能架构模式-单服务器高性能模式:Reactor与Proactor
- 20高性能架构模式-高性能负载均衡:分类及架构
- 21高性能架构模式-高性能负载均衡:算法
- 22高可用架构模式-想成为架构师,你必须知道CAP理论
- 23高可用架构模式-想成为架构师,你必须掌握的CAP细节
- 24高可用架构模式-FMEA方法,排除架构可用性隐患的利器
- 25高可用架构模式-高可用存储架构:双机架构
- 26高可用架构模式-高可用存储架构:集群和分区
- 27高可用架构模式-如何设计计算高可用架构?
- 28高可用架构模式-业务高可用的保障:异地多活架构
- 29高可用架构模式-异地多活设计4大技巧
- 30高可用架构模式-异地多活设计4步走
- 31高可用架构模式-如何应对接口级的故障?
- 06
- 00学习攻略-如何才能学好并发编程?
- 00开篇词-你为什么需要学习并发编程?
- 32可扩展架构模式-可扩展架构的基本思想和模式
- 33可扩展架构模式-传统的可扩展架构模式:分层架构和SOA
- 34可扩展架构模式-深入理解微服务架构:银弹 or 焦油坑?
- 35可扩展架构模式-微服务架构最佳实践 - 方法篇
- 36可扩展架构模式-微服务架构最佳实践 - 基础设施篇
- 37可扩展架构模式-微内核架构详解
- 38架构实战-架构师应该如何判断技术演进的方向
- 39架构实战-互联网技术演进的模式
- 40架构实战-互联网架构模板:“存储层”技术
- 41架构实战-互联网架构模板:“开发层”和“服务层”技术
- 42架构实战-互联网架构模板:“网络层”技术
- 43架构实战-互联网架构模板:“用户层”和“业务层”技术
- 44架构实战-互联网架构模板:“平台”技术
- 45架构实战-架构重构内功心法第一式:有的放矢
- 46架构实战-架构重构内功心法第二式:合纵连横
- 47架构实战-架构重构内功心法第三式:运筹帷幄
- 48架构实战-再谈开源项目:如何选择、使用以及二次开发?
- 49架构实战-谈谈App架构的演进
- 50架构实战-架构实战:架构设计文档模板
- 51架构实战-如何画出优秀的软件系统架构图?
- 52加餐-单服务器高性能模式性能对比
- 53加餐-扒一扒中台皇帝的外衣
- 54加餐-ChatGPT来临,架构师何去何从?
- 07
- 01并发理论基础-可见性、原子性和有序性问题:并发编程Bug的源头
- 02并发理论基础-Java内存模型:看Java如何解决可见性和有序性问题
- 03并发理论基础-互斥锁(上):解决原子性问题
- 04并发理论基础-互斥锁(下):如何用一把锁保护多个资源?
- 05并发理论基础-一不小心就死锁了,怎么办?
- 06并发理论基础-用“等待-通知”机制优化循环等待
- 07并发理论基础-安全性、活跃性以及性能问题
- 08并发理论基础-管程:并发编程的万能钥匙
- 09并发理论基础-Java线程(上):Java线程的生命周期
- 10并发理论基础-Java线程(中):创建多少线程才是合适的?
- 11并发理论基础-Java线程(下):为什么局部变量是线程安全的?
- 12并发理论基础-如何用面向对象思想写好并发程序?
- 13并发理论基础-理论基础模块热点问题答疑
- 14并发工具类-Lock和Condition(上):隐藏在并发包中的管程
- 15并发工具类-Lock和Condition(下):Dubbo如何用管程实现异步转同步?
- 16并发工具类-Semaphore:如何快速实现一个限流器?
- 17并发工具类-ReadWriteLock:如何快速实现一个完备的缓存?
- 18并发工具类-StampedLock:有没有比读写锁更快的锁?
- 19并发工具类-CountDownLatch和CyclicBarrier:如何让多线程步调一致?
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
3,546 files changed
+483070
-0
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
0 commit comments