{"id":19836518,"url":"https://github.com/guobinhit/cg-blog","last_synced_at":"2025-04-05T08:09:46.764Z","repository":{"id":44877653,"uuid":"91632767","full_name":"guobinhit/cg-blog","owner":"guobinhit","description":":octocat:   Welcome to my blog, watch, star and fork. In my blog, you can know the latest techniques and anecdotes.","archived":false,"fork":false,"pushed_at":"2021-12-08T06:28:01.000Z","size":89069,"stargazers_count":504,"open_issues_count":4,"forks_count":178,"subscribers_count":69,"default_branch":"master","last_synced_at":"2025-03-29T07:09:41.564Z","etag":null,"topics":["blog","cg","coder","guobinhit","life"],"latest_commit_sha":null,"homepage":"https://guobinhit.github.io/cg-blog/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/guobinhit.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-05-18T00:45:20.000Z","updated_at":"2025-02-18T15:27:20.000Z","dependencies_parsed_at":"2022-09-06T01:12:03.136Z","dependency_job_id":null,"html_url":"https://github.com/guobinhit/cg-blog","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guobinhit%2Fcg-blog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guobinhit%2Fcg-blog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guobinhit%2Fcg-blog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guobinhit%2Fcg-blog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/guobinhit","download_url":"https://codeload.github.com/guobinhit/cg-blog/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247305935,"owners_count":20917208,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blog","cg","coder","guobinhit","life"],"created_at":"2024-11-12T12:11:35.116Z","updated_at":"2025-04-05T08:09:46.742Z","avatar_url":"https://github.com/guobinhit.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CHARIES GAVIN'S BLOG\n\n![author](https://img.shields.io/badge/author-chariesgavin-blueviolet.svg)![last commit](https://img.shields.io/github/last-commit/guobinhit/cg-blog.svg)![issues](https://img.shields.io/github/issues/guobinhit/cg-blog.svg)![stars](https://img.shields.io/github/stars/guobinhit/cg-blog.svg)![forks](\thttps://img.shields.io/github/forks/guobinhit/cg-blog.svg)![license](https://img.shields.io/github/license/guobinhit/cg-blog.svg)\n\n**欢迎来到我的博客，在这里大家可以随意`watch`、`star`和`fork`此项目！**\n\n## 最新博文\n\n- **New article 1**：[详述 synchronized 和 volatile 的实现原理以及两者的区别](https://github.com/guobinhit/cg-blog/blob/master/articles/others/synchronized-volatile-principle-difference.md)\n- **New article 2**：[详述 Spring Boot 中内嵌 Tomcat 的实现原理](https://github.com/guobinhit/cg-blog/blob/master/articles/others/spring-boot-nested-tomcat-principle.md)\n- **New article 3**：[详述 ThreadLocal 的实现原理及其使用方法](https://github.com/guobinhit/cg-blog/blob/master/articles/others/threadlocal-priciple-usage.md)\n\n\n\n## 文章分类（快速定位）\n - [史上最简单系列教程](#史上最简单系列教程)\n - [非技术那些事儿](#非技术那些事儿)\n - [编程语言](#编程语言)\n - [设计模式](https://github.com/guobinhit/design-pattern)\n - [Java技巧](https://github.com/guobinhit/java-skills)\n - [支付系统](#支付系统)\n - [翻译系列](#翻译系列)\n - [工具及其他](#工具及其他)\n - [Akka中文指南](https://github.com/guobinhit/akka-guide)\n - [Guava中文指南](https://github.com/guobinhit/guava-guide)\n - [超实用的「Exception」和「Error」解决案例](https://github.com/guobinhit/cg-blog/blob/master/articles/solutioncase/README.md)\n \n\n\n## 史上最简单系列教程\n\n- [史上最简单的 Linux 教程](https://github.com/guobinhit/cg-blog/blob/master/articles/linux/README.md)\n- [史上最简单的 MySQL 教程](https://github.com/guobinhit/mysql-tutorial)\n- [史上最简单的 GitHub 教程](https://github.com/guobinhit/cg-blog/blob/master/articles/github/README.md)\n- [史上最简单的 IntelliJ IDEA 教程](https://github.com/guobinhit/intellij-idea-tutorial/blob/master/README.md)\n\n\n## 编程语言\n\n- [详述 DB2 分页查询及 Java 实现](https://github.com/guobinhit/cg-blog/blob/master/articles/program/db2-java.md)\n- [详述 Java 中的别名现象](https://github.com/guobinhit/cg-blog/blob/master/articles/program/alias.md)\n- [用 Java 实现拦截器 Interceptor 的拦截功能](https://github.com/guobinhit/cg-blog/blob/master/articles/program/interceptor.md)\n- [网络爬虫二三事儿](https://github.com/guobinhit/cg-blog/blob/master/articles/program/net-spider.md)\n- [详述 Java 语言中的 String、StringBuffer 和 StringBuilder 的使用方法及区别](https://github.com/guobinhit/cg-blog/blob/master/articles/program/string-buffer-builder.md)\n- [详述获取字节码文件及其内容的方法](https://github.com/guobinhit/cg-blog/blob/master/articles/program/class-byte-file.md)\n- [详述 Java 语言中的格式化输出](https://github.com/guobinhit/cg-blog/blob/master/articles/program/format-system.md)\n- [详述 String 类中的 空串 和 Null 串](https://github.com/guobinhit/cg-blog/blob/master/articles/program/kong-and-null.md)\n- [详述 Java 语言中 equals 和 == 的区别](https://github.com/guobinhit/cg-blog/blob/master/articles/program/equals-hd.md)\n- [关于构造方法的那些事儿](https://github.com/guobinhit/cg-blog/blob/master/articles/program/structure.md)\n- [详述 TCP 和 UDP 的定义、区别及模拟演示](https://github.com/guobinhit/cg-blog/blob/master/articles/program/udp-tcp.md)\n- [用 Java 模拟 TCP 传输的客户端和服务端](https://github.com/guobinhit/cg-blog/blob/master/articles/program/java-to-tcp.md)\n- [用 Java 模拟 UDP 传输的发送端和接收端](https://github.com/guobinhit/cg-blog/blob/master/articles/program/java-to-udp.md)\n\n## 支付系统\n\n\n- [支付宝钱包系统架构内部剖析](https://github.com/guobinhit/cg-blog/blob/master/articles/netpayment/alipay.md)\n- [去哪儿网支付系统架构演进](https://github.com/guobinhit/cg-blog/blob/master/articles/netpayment/qunar.md)\n- [解析「三户模型」及建立账户模型](https://github.com/guobinhit/cg-blog/blob/master/articles/netpayment/threemodel.md)\n- [详述支付路由的设计方案](https://github.com/guobinhit/cg-blog/blob/master/articles/netpayment/payrouter.md) \n- [详述支付网关的设计原则](https://github.com/guobinhit/cg-blog/blob/master/articles/netpayment/gateway.md)\n- [详述快捷支付产品功能及设计要点](https://github.com/guobinhit/cg-blog/blob/master/articles/netpayment/fastpay.md)\n- [详述银行卡支付方式](https://github.com/guobinhit/cg-blog/blob/master/articles/netpayment/bankpay.md)\n- [支付系统中的对账处理](https://github.com/guobinhit/cg-blog/blob/master/articles/netpayment/accounting.md)\n- [支付网关设计精要（Ping++ 联合创始人 赵宇）](https://github.com/guobinhit/cg-blog/blob/master/articles/tools-and-others/pay-gateway.md)\n- [互联网支付系统整体架构详解](https://github.com/guobinhit/cg-blog/blob/master/articles/others/net-pay.md)\n\n\n## 翻译系列\n\n\n- [Elasticsearch 5.x 版本中的冷热数据架构](https://github.com/guobinhit/cg-blog/blob/master/articles/translation/elasticsearch/hot-warm-architecture-in-elasticsearch-5-x.md)\n - [Elasticsearch 6.6 官方文档 之「集群」](https://github.com/guobinhit/cg-blog/blob/master/articles/translation/elasticsearch/modules-cluster.md)\n- [Elasticsearch 6.6 官方文档 之「索引分片分配」](https://github.com/guobinhit/cg-blog/blob/master/articles/translation/elasticsearch/index-modules-allocation.md)\n- [Elasticsearch 6.6 官方文档 之「快照和还原」](https://github.com/guobinhit/cg-blog/blob/master/articles/translation/elasticsearch/modules-snapshots.md)\n- [Elasticsearch 6.6 官方文档 之「节点」](https://github.com/guobinhit/cg-blog/blob/master/articles/translation/elasticsearch/modules-node.md)\n\n\n\n\n\n\n## 工具及其他\n\n- [详述 synchronized 和 volatile 的实现原理以及两者的区别](https://github.com/guobinhit/cg-blog/blob/master/articles/others/synchronized-volatile-principle-difference.md)\n- [详述 Spring Boot 中内嵌 Tomcat 的实现原理](https://github.com/guobinhit/cg-blog/blob/master/articles/others/spring-boot-nested-tomcat-principle.md)\n- [详述 ThreadLocal 的实现原理及其使用方法](https://github.com/guobinhit/cg-blog/blob/master/articles/others/threadlocal-priciple-usage.md)\n- [详述 JDK 和 CGLIB 动态代理的实现原理以及两者的区别](https://github.com/guobinhit/cg-blog/blob/master/articles/others/dynamic-proxy.md)\n- [深入理解 JVM 垃圾回收机制及其实现原理](https://github.com/guobinhit/cg-blog/blob/master/articles/others/jvm-garbage-collection-mechanism.md)\n- [分库分表？如何做到永不迁移数据和避免热点？](https://github.com/guobinhit/cg-blog/blob/master/articles/others/sub-warehouse-and-sub-table.md)\n- [来来来，我们聊一聊，为什么不建议使用递归操作？](https://github.com/guobinhit/cg-blog/blob/master/articles/others/why-recursion-is-not-recommended.md)\n- [调度服务 ScheduledExecutorService 经常卡顿问题的排查及解决方法](https://github.com/guobinhit/cg-blog/blob/master/articles/others/schedule-issue.md)\n- [记一次 JVM CPU 使用率飙高问题的排查过程](https://github.com/guobinhit/cg-blog/blob/master/articles/others/jvm-cpu-issue.md)\n- [如何画出一张合格的技术架构图？](https://github.com/guobinhit/cg-blog/blob/master/articles/others/project-structure-picture.md)\n- [详述 Elasticsearch 安装 HDFS 插件存储及快照还原的方法](https://github.com/guobinhit/cg-blog/blob/master/articles/others/es-hdfs-plugins.md)\n- [详述 Elasticsearch 集群的搭建步骤及方法](https://github.com/guobinhit/cg-blog/blob/master/articles/others/build-es-cluster.md)\n- [快速搭建 HDFS 系统（超详细版）](https://github.com/guobinhit/cg-blog/blob/master/articles/others/build-hdfs-cluster.md)\n- [关于 toLocaleDateString 方法的实践分享](https://github.com/guobinhit/cg-blog/blob/master/articles/others/toLocaleDateString.md)\n- [Linux 命令之 find：查找文件](https://github.com/guobinhit/cg-blog/blob/master/articles/linux/tutorials/find.md)\n- [终极对决！Dubbo 和 Spring Cloud 微服务架构到底孰优孰劣？](https://github.com/guobinhit/cg-blog/blob/master/articles/others/dubbo-cloud.md)\n- [Linux 命令之 chmod：修改权限](https://github.com/guobinhit/cg-blog/blob/master/articles/linux/tutorials/chmod.md)\n- [详述 SSH 的原理及其应用](https://github.com/guobinhit/cg-blog/blob/master/articles/others/detail-ssh.md)\n- [详述 iTerm2 配色及免密登录 SSH 的方法](https://github.com/guobinhit/cg-blog/blob/master/articles/others/iterm2.md)\n- [论「版本号」的正确使用方式](https://github.com/guobinhit/cg-blog/blob/master/articles/others/version.md)\n- [详述 Mac 系统下安装及卸载 Python 的方法](https://github.com/guobinhit/cg-blog/blob/master/articles/others/python.md) \n- [在 Win10 系统下安装 JDK 及配置环境变量的方法](https://github.com/guobinhit/cg-blog/blob/master/articles/others/installjdk.md)\n- [详述 Maven 依赖范围及依赖调节原则](https://github.com/guobinhit/cg-blog/blob/master/articles/others/maven-dependency.md) \n- [详述 tomcat 的 server.xml 配置文件](https://github.com/guobinhit/cg-blog/blob/master/articles/others/tomcat.md) \n- [超简单的 VIM 练级攻略](https://github.com/guobinhit/cg-blog/blob/master/articles/others/vim-better.md) \n- [解读 Maven 安装目录](https://github.com/guobinhit/cg-blog/blob/master/articles/others/maven.md)\n- [详述 PO VO BO DTO DAO 和 POJO 的概念及区别](https://github.com/guobinhit/cg-blog/blob/master/articles/others/xxo.md) \n- [来自「Head First 设计模式」的程序设计原则](https://github.com/guobinhit/cg-blog/blob/master/articles/others/headfirst.md)\n- [19+ JavaScript 常用的简写技巧](https://github.com/guobinhit/cg-blog/blob/master/articles/others/19plus-js.md) \n- [详述 IaaS、PaaS 和 SaaS 的含义及区别](https://github.com/guobinhit/cg-blog/blob/master/articles/others/iaas-paas-saas.md)\n- [详述“进程、线程和协程”的区别](https://github.com/guobinhit/cg-blog/blob/master/articles/others/jin-xian-xie-cheng.md) \n- [详述如何退出 Vim 编辑器](https://github.com/guobinhit/cg-blog/blob/master/articles/others/vim.md)\n- [详述 hosts 文件的作用及修改 hosts 文件的方法](https://github.com/guobinhit/cg-blog/blob/master/articles/others/hosts.md)\n- [详述 Cookie 与 Session 的区别](https://github.com/guobinhit/cg-blog/blob/master/articles/others/cookie-and-session.md)\n- [@interface 注解详述](https://github.com/guobinhit/cg-blog/blob/master/articles/others/interface-annotation.md) \n- [@Deprecated 注解详述](https://github.com/guobinhit/cg-blog/blob/master/articles/others/deprecated.md)\n- [@SuppressWarnings 注解详述](https://github.com/guobinhit/cg-blog/blob/master/articles/others/suppress-warnings.md) \n\n\n## 非技术那些事儿\n\n- [百度的春晚战事](https://github.com/guobinhit/cg-blog/blob/master/articles/anecdotes/baidu-chunwan-war.md)\n- [藏在县城的万亿生意](https://github.com/guobinhit/cg-blog/blob/master/articles/anecdotes/countryside-millions.md)\n- [专访 7-ELEVEn 执行董事：为什么我们是便利店第一品牌](https://github.com/guobinhit/cg-blog/blob/master/articles/anecdotes/7-ELEVEn.md)\n- [流感下的北京中年](https://github.com/guobinhit/cg-blog/blob/master/articles/anecdotes/influenza.md)\n- [滴滴总裁柳青年会演讲：乘风破浪的旅途，成长是唯一道路](https://github.com/guobinhit/cg-blog/blob/master/articles/anecdotes/liuqing.md)\n- [张小龙：微信不做信息流，重点做好小程序](https://github.com/guobinhit/cg-blog/blob/master/articles/anecdotes/zxlwx.md)\n- [美团 CEO 王兴：从 0 到干到 300 亿美金，格局上输了，再多努力都不可能赢](https://github.com/guobinhit/cg-blog/blob/master/articles/anecdotes/wangxing.md)\n- [快手 CEO 宿华：在毛细血管的末梢记录变化的世界](https://github.com/guobinhit/cg-blog/blob/master/articles/anecdotes/suhua.md)\n- [马化腾教你做产品：改掉这七点，让产品自己说话](https://github.com/guobinhit/cg-blog/blob/master/articles/anecdotes/pony-product.md)\n- [腾讯副总裁曾宇：谈谈腾讯的技术价值观与技术人才修炼](https://github.com/guobinhit/cg-blog/blob/master/articles/anecdotes/zengyu.md)\n- [创新工场汪华：OMO 时代，谁是下一个领跑者？](https://github.com/guobinhit/cg-blog/blob/master/articles/anecdotes/wanghua.md)\n- [猎豹移动 CEO 傅盛：后互联网时代 ，“中国模式”弯道超车](https://github.com/guobinhit/cg-blog/blob/master/articles/anecdotes/cheetah.md)\n- [旷视 CEO 印奇：靠“刷脸”折腾出 120 亿的大生意](https://github.com/guobinhit/cg-blog/blob/master/articles/anecdotes/megvii.md)\n- [左耳朵耗子：程序员如何用技术变现?](https://github.com/guobinhit/cg-blog/blob/master/articles/anecdotes/skill-to-money.md)\n- [刘强东：死掉的创业公司，几乎都违背这 4 点最基本的经济常识](https://github.com/guobinhit/cg-blog/blob/master/articles/anecdotes/liuqiangdong.md)\n- [迅雷创始人程浩：AI 创业必知 6 大核心问题，如何选择赛道、搭配团队和应对巨头挑战](https://github.com/guobinhit/cg-blog/blob/master/articles/anecdotes/thunder.md)\n- [马云：阿里必须是一家创造未来的公司，必须成为国家和世界创新的发动机](https://github.com/guobinhit/cg-blog/blob/master/articles/anecdotes/mayun.md)\n- [特斯拉 CEO 马斯克：年轻人成功的秘诀，只有这 5 点](https://github.com/guobinhit/cg-blog/blob/master/articles/anecdotes/tesla.md)\n- [轮子哥：回顾我走过的编程之路](https://github.com/guobinhit/cg-blog/blob/master/articles/anecdotes/wheel-bro.md)\n- [阿里与腾讯人的区别，就是明教与武当的反差](https://github.com/guobinhit/cg-blog/blob/master/articles/anecdotes/ali-tencent.md)\n- [我所知道的 11 条领导力（Ping++ CEO 金亦冶）](https://github.com/guobinhit/cg-blog/blob/master/articles/anecdotes/pingceo-eleven.md)\n- [百度 CEO 李彦宏：未来三五十年人工智能可能是世界经济发展主要推动力](https://github.com/guobinhit/cg-blog/blob/master/articles/anecdotes/baidu-ceo-ai.md)\n- [光线传媒副总裁刘同：我们为什么要读大学？](https://github.com/guobinhit/cg-blog/blob/master/articles/anecdotes/liutong.md)\n- [对话美团 CEO 王兴：太多人关注边界，而不关注核心](https://github.com/guobinhit/cg-blog/blob/master/articles/anecdotes/meituan-ceo-wangxing.md)\n- [美丽心灵：纪念 John Nash 夫妇](https://github.com/guobinhit/cg-blog/blob/master/articles/anecdotes/john-nash.md)\n- [工科大学之母｜哈尔滨工业大学究竟分出了哪些学校？](https://github.com/guobinhit/cg-blog/blob/master/articles/anecdotes/hit.md) \n- [今日头条 CEO 张一鸣：面试了 2000 个年轻人，混得好的都有这 5 种特质](https://github.com/guobinhit/cg-blog/blob/master/articles/anecdotes/zhangyiming.md)\n- [雅虎终于死了：从市值 1000 亿到贱卖 48 亿，到最后连名字都没保住](https://github.com/guobinhit/cg-blog/blob/master/articles/anecdotes/yahoo.md)\n- [数学史上的三次危机](https://github.com/guobinhit/cg-blog/blob/master/articles/anecdotes/math-three-cirsis.md)\n- [世界上最「不务正业」的 5 个科学家](https://github.com/guobinhit/cg-blog/blob/master/articles/anecdotes/bwzy-five.md)\n- [我回阿里的 29 个月](https://github.com/guobinhit/cg-blog/blob/master/articles/anecdotes/return-ali.md) \n- [马化腾：这个市场不是拼钱、拼流量，而是拼团队、拼使命感和危机感](https://github.com/guobinhit/cg-blog/blob/master/articles/anecdotes/mahuateng.md)\n- [献给青春的歌 · 致「 腾讯QQ 18 岁」](https://github.com/guobinhit/cg-blog/blob/master/articles/anecdotes/qq-ten.md)\n- [有一种生活叫向死而生](https://github.com/guobinhit/cg-blog/blob/master/articles/anecdotes/death-to-live.md)\n- [揭秘 · 阿里云第一女神 — 清宵](https://github.com/guobinhit/cg-blog/blob/master/articles/anecdotes/ali-qingxiao.md)\n- [程序员，如何从平庸走向理想？](https://github.com/guobinhit/cg-blog/blob/master/articles/anecdotes/coder-to-better.md)\n- [他出身草根，却是 Google 资深工程师](https://github.com/guobinhit/cg-blog/blob/master/articles/anecdotes/david-byttow.md)\n- [左耳朵耗子：技术人员的发展之路](https://github.com/guobinhit/cg-blog/blob/master/articles/anecdotes/developer-road.md)\n- [SaaS 公司融资的「22条军规」](https://github.com/guobinhit/cg-blog/blob/master/articles/anecdotes/saas-22.md)\n- [做了 3 年企业级 SaaS，我收获的 10 点心得（Ping++ CEO 金亦冶）](https://github.com/guobinhit/cg-blog/blob/master/articles/anecdotes/pingplus-ceo-ten.md)\n- [在 Google 工作 10 年，到底能学到啥？](https://github.com/guobinhit/cg-blog/blob/master/articles/anecdotes/google-ten-years.md)\n\n\n------------\n\n在此，附上一句格言，望共勉：**好学若饥，谦卑若愚**。\n\n\n- [↑↑↑   返回顶部（RETURN THE TOP）  ↑↑↑](#最新博文)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fguobinhit%2Fcg-blog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fguobinhit%2Fcg-blog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fguobinhit%2Fcg-blog/lists"}