{"id":15069215,"url":"https://github.com/c-rainstorm/blog","last_synced_at":"2025-05-16T18:04:04.703Z","repository":{"id":37742969,"uuid":"78080793","full_name":"c-rainstorm/blog","owner":"c-rainstorm","description":"本仓库存放个人博客的 markdown 源文件","archived":false,"fork":false,"pushed_at":"2022-09-24T08:42:17.000Z","size":5504,"stargazers_count":1022,"open_issues_count":1,"forks_count":327,"subscribers_count":106,"default_branch":"master","last_synced_at":"2025-04-12T16:53:13.798Z","etag":null,"topics":["blog","database","interview","java","jvm","os","tomcat"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/c-rainstorm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-01-05T04:57:06.000Z","updated_at":"2025-03-17T13:32:11.000Z","dependencies_parsed_at":"2023-01-17T17:00:50.120Z","dependency_job_id":null,"html_url":"https://github.com/c-rainstorm/blog","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/c-rainstorm%2Fblog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/c-rainstorm%2Fblog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/c-rainstorm%2Fblog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/c-rainstorm%2Fblog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/c-rainstorm","download_url":"https://codeload.github.com/c-rainstorm/blog/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254582902,"owners_count":22095518,"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","database","interview","java","jvm","os","tomcat"],"created_at":"2024-09-25T01:41:05.277Z","updated_at":"2025-05-16T18:04:04.635Z","avatar_url":"https://github.com/c-rainstorm.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# 个人博客\n\n本仓库下存放个人博客的源文件。持续更新，欢迎 `star`。\n\n如果大家觉得那里写的不合适的可以给我提 `Issue`\n\n---\n\n## Stargazers over time\n\n[![Stargazers over time](https://starchart.cc/c-rainstorm/blog.svg)](https://starchart.cc/c-rainstorm/blog)\n\n\n## 目录简介\n\n\u003ca href=\".\"\u003e.\u003c/a\u003e\u003cbr\u003e\n        ├── \u003ca href=\"./README.md\"\u003eREADME.md\u003c/a\u003e\u003cbr\u003e\n        ├── \u003ca href=\"./algo/\"\u003ealgo\u003c/a\u003e\u003cbr\u003e\n        │   ├── \u003ca href=\"./algo/leetcode-148-Sort-List(%E5%8D%95%E9%93%BE%E8%A1%A8%E6%8E%92%E5%BA%8F).md\"\u003eleetcode-148-Sort-List(单链表排序).md\u003c/a\u003e\u003cbr\u003e\n        │   └── \u003ca href=\"./algo/%E5%B8%B8%E8%A7%81%E6%8E%92%E5%BA%8F%E7%AE%97%E6%B3%95%E5%AE%9E%E7%8E%B0.md\"\u003e常见排序算法实现.md\u003c/a\u003e\u003cbr\u003e\n        ├── \u003ca href=\"./common/\"\u003ecommon\u003c/a\u003e\u003cbr\u003e\n        │   ├── \u003ca href=\"./common/MQ%E5%9F%BA%E6%9C%AC%E5%8E%9F%E7%90%86.md\"\u003eMQ基本原理.md\u003c/a\u003e\u003cbr\u003e\n        │   └── \u003ca href=\"./common/unicodeStandard.md\"\u003eunicodeStandard.md\u003c/a\u003e\u003cbr\u003e\n        ├── \u003ca href=\"./database/\"\u003edatabase\u003c/a\u003e\u003cbr\u003e\n        │   └── \u003ca href=\"./database/Mysql-clear-database.md\"\u003eMysql-clear-database.md\u003c/a\u003e\u003cbr\u003e\n        ├── \u003ca href=\"./devops/\"\u003edevops\u003c/a\u003e\u003cbr\u003e\n        │   └── \u003ca href=\"./devops/%E6%9C%AC%E6%9C%BA%E6%90%AD%E5%BB%BA%E4%B8%89%E8%8A%82%E7%82%B9k8s%E9%9B%86%E7%BE%A4.md\"\u003e本机搭建三节点k8s集群.md\u003c/a\u003e\u003cbr\u003e\n        ├── \u003ca href=\"./interview/\"\u003einterview\u003c/a\u003e\u003cbr\u003e\n        │   ├── \u003ca href=\"./interview/%E9%98%BF%E9%87%8C%E4%B8%80%E9%9D%A2%E6%80%BB%E7%BB%93.md\"\u003e阿里一面总结.md\u003c/a\u003e\u003cbr\u003e\n        │   ├── \u003ca href=\"./interview/%E9%98%BF%E9%87%8C%E4%BA%8C%E9%9D%A2%E5%87%86%E5%A4%87.md\"\u003e阿里二面准备.md\u003c/a\u003e\u003cbr\u003e\n        │   ├── \u003ca href=\"./interview/%E9%9D%A2%E8%AF%95%E7%9B%B8%E5%85%B3%E7%9F%A5%E8%AF%86%E6%80%BB%E7%BB%93.md\"\u003e面试相关知识总结.md\u003c/a\u003e\u003cbr\u003e\n        │   ├── \u003ca href=\"./interview/%E9%9D%A2%E8%AF%95%E9%A2%98%E7%9B%AE%E5%88%86%E7%B1%BB%E5%8F%8A%E4%B8%BE%E4%BE%8B.md\"\u003e面试题目分类及举例.md\u003c/a\u003e\u003cbr\u003e\n        │   └── \u003ca href=\"./interview/%E5%B2%97%E4%BD%8D%E8%A6%81%E6%B1%82%E6%80%BB%E7%BB%93%E5%8F%8A%E5%BE%85%E5%AD%A6%E4%B9%A0%E6%8A%80%E6%9C%AF%E6%B1%87%E6%80%BB.md\"\u003e岗位要求总结及待学习技术汇总.md\u003c/a\u003e\u003cbr\u003e\n        ├── \u003ca href=\"./java/\"\u003ejava\u003c/a\u003e\u003cbr\u003e\n        │   ├── \u003ca href=\"./java/Bean%E7%9A%84%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F.md\"\u003eBean的生命周期.md\u003c/a\u003e\u003cbr\u003e\n        │   ├── \u003ca href=\"./java/Effective-Java.md\"\u003eEffective-Java.md\u003c/a\u003e\u003cbr\u003e\n        │   ├── \u003ca href=\"./java/Spring-SpringMVC-Mybatis%E6%95%B4%E5%90%88.md\"\u003eSpring-SpringMVC-Mybatis整合.md\u003c/a\u003e\u003cbr\u003e\n        │   ├── \u003ca href=\"./java/Spring-%E5%AE%B9%E5%99%A8%E7%9A%84%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F.md\"\u003eSpring-容器的生命周期.md\u003c/a\u003e\u003cbr\u003e\n        │   ├── \u003ca href=\"./java/ThreadPoolExecutor%E6%BA%90%E7%A0%81%E5%89%96%E6%9E%90.md\"\u003eThreadPoolExecutor源码剖析.md\u003c/a\u003e\u003cbr\u003e\n        │   ├── \u003ca href=\"./java/cache/\"\u003ecache\u003c/a\u003e\u003cbr\u003e\n        │   │   ├── \u003ca href=\"./java/cache/caffeine.zh.md\"\u003ecaffeine.zh.md\u003c/a\u003e\u003cbr\u003e\n        │   │   ├── \u003ca href=\"./java/cache/guava_cache.zh.md\"\u003eguava_cache.zh.md\u003c/a\u003e\u003cbr\u003e\n        │   │   └── \u003ca href=\"./java/cache/jsr107.zh.md\"\u003ejsr107.zh.md\u003c/a\u003e\u003cbr\u003e\n        │   ├── \u003ca href=\"./java/code-generate/\"\u003ecode-generate\u003c/a\u003e\u003cbr\u003e\n        │   │   └── \u003ca href=\"./java/code-generate/javapoet.zh.md\"\u003ejavapoet.zh.md\u003c/a\u003e\u003cbr\u003e\n        │   ├── \u003ca href=\"./java/java.lang.String.md\"\u003ejava.lang.String.md\u003c/a\u003e\u003cbr\u003e\n        │   ├── \u003ca href=\"./java/java.math.BigDecimal.md\"\u003ejava.math.BigDecimal.md\u003c/a\u003e\u003cbr\u003e\n        │   ├── \u003ca href=\"./java/source-code/\"\u003esource-code\u003c/a\u003e\u003cbr\u003e\n        │   │   └── \u003ca href=\"./java/source-code/jdk/\"\u003ejdk\u003c/a\u003e\u003cbr\u003e\n        │   │   \u0026nbsp;\u0026nbsp;\u0026nbsp; ├── \u003ca href=\"./java/source-code/jdk/collection/\"\u003ecollection\u003c/a\u003e\u003cbr\u003e\n        │   │   \u0026nbsp;\u0026nbsp;\u0026nbsp; │   ├── \u003ca href=\"./java/source-code/jdk/collection/collection.md\"\u003ecollection.md\u003c/a\u003e\u003cbr\u003e\n        │   │   \u0026nbsp;\u0026nbsp;\u0026nbsp; │   ├── \u003ca href=\"./java/source-code/jdk/collection/list-arraylist.md\"\u003elist-arraylist.md\u003c/a\u003e\u003cbr\u003e\n        │   │   \u0026nbsp;\u0026nbsp;\u0026nbsp; │   ├── \u003ca href=\"./java/source-code/jdk/collection/list-copyonwritearraylist.md\"\u003elist-copyonwritearraylist.md\u003c/a\u003e\u003cbr\u003e\n        │   │   \u0026nbsp;\u0026nbsp;\u0026nbsp; │   ├── \u003ca href=\"./java/source-code/jdk/collection/list-linkedlist.md\"\u003elist-linkedlist.md\u003c/a\u003e\u003cbr\u003e\n        │   │   \u0026nbsp;\u0026nbsp;\u0026nbsp; │   ├── \u003ca href=\"./java/source-code/jdk/collection/list-stack.md\"\u003elist-stack.md\u003c/a\u003e\u003cbr\u003e\n        │   │   \u0026nbsp;\u0026nbsp;\u0026nbsp; │   ├── \u003ca href=\"./java/source-code/jdk/collection/list-vector.md\"\u003elist-vector.md\u003c/a\u003e\u003cbr\u003e\n        │   │   \u0026nbsp;\u0026nbsp;\u0026nbsp; │   ├── \u003ca href=\"./java/source-code/jdk/collection/map-concurrenthashmap.md\"\u003emap-concurrenthashmap.md\u003c/a\u003e\u003cbr\u003e\n        │   │   \u0026nbsp;\u0026nbsp;\u0026nbsp; │   ├── \u003ca href=\"./java/source-code/jdk/collection/map-enummap.md\"\u003emap-enummap.md\u003c/a\u003e\u003cbr\u003e\n        │   │   \u0026nbsp;\u0026nbsp;\u0026nbsp; │   ├── \u003ca href=\"./java/source-code/jdk/collection/map-hashmap.md\"\u003emap-hashmap.md\u003c/a\u003e\u003cbr\u003e\n        │   │   \u0026nbsp;\u0026nbsp;\u0026nbsp; │   ├── \u003ca href=\"./java/source-code/jdk/collection/map-identityhashmap.md\"\u003emap-identityhashmap.md\u003c/a\u003e\u003cbr\u003e\n        │   │   \u0026nbsp;\u0026nbsp;\u0026nbsp; │   ├── \u003ca href=\"./java/source-code/jdk/collection/map-linkedhashmap.md\"\u003emap-linkedhashmap.md\u003c/a\u003e\u003cbr\u003e\n        │   │   \u0026nbsp;\u0026nbsp;\u0026nbsp; │   └── \u003ca href=\"./java/source-code/jdk/collection/map-weakhashmap.md\"\u003emap-weakhashmap.md\u003c/a\u003e\u003cbr\u003e\n        │   │   \u0026nbsp;\u0026nbsp;\u0026nbsp; └── \u003ca href=\"./java/source-code/jdk/lang/\"\u003elang\u003c/a\u003e\u003cbr\u003e\n        │   │   \u0026nbsp;\u0026nbsp;\u0026nbsp; \u0026nbsp;\u0026nbsp;\u0026nbsp; ├── \u003ca href=\"./java/source-code/jdk/lang/integer.md\"\u003einteger.md\u003c/a\u003e\u003cbr\u003e\n        │   │   \u0026nbsp;\u0026nbsp;\u0026nbsp; \u0026nbsp;\u0026nbsp;\u0026nbsp; └── \u003ca href=\"./java/source-code/jdk/lang/ref/\"\u003eref\u003c/a\u003e\u003cbr\u003e\n        │   │   \u0026nbsp;\u0026nbsp;\u0026nbsp; \u0026nbsp;\u0026nbsp;\u0026nbsp; \u0026nbsp;\u0026nbsp;\u0026nbsp; └── \u003ca href=\"./java/source-code/jdk/lang/ref/reference.md\"\u003ereference.md\u003c/a\u003e\u003cbr\u003e\n        │   ├── \u003ca href=\"./java/test/\"\u003etest\u003c/a\u003e\u003cbr\u003e\n        │   │   └── \u003ca href=\"./java/test/awaitility.zh.md\"\u003eawaitility.zh.md\u003c/a\u003e\u003cbr\u003e\n        │   ├── \u003ca href=\"./java/%E5%9B%BE%E8%A7%A3JavaCollectionFramework.md\"\u003e图解JavaCollectionFramework.md\u003c/a\u003e\u003cbr\u003e\n        │   ├── \u003ca href=\"./java/%E8%B0%88%E8%B0%88Java%E7%B1%BB%E5%8A%A0%E8%BD%BD%E6%9C%BA%E5%88%B6.md\"\u003e谈谈Java类加载机制.md\u003c/a\u003e\u003cbr\u003e\n        │   └── \u003ca href=\"./java/%E8%B0%88%E8%B0%88Java%E7%BA%BF%E7%A8%8B%E7%8A%B6%E6%80%81%E8%BD%AC%E6%8D%A2.md\"\u003e谈谈Java线程状态转换.md\u003c/a\u003e\u003cbr\u003e\n        ├── \u003ca href=\"./jvm/\"\u003ejvm\u003c/a\u003e\u003cbr\u003e\n        │   ├── \u003ca href=\"./jvm/%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3Java%E8%99%9A%E6%8B%9F%E6%9C%BA.md\"\u003e深入理解Java虚拟机.md\u003c/a\u003e\u003cbr\u003e\n        │   └── \u003ca href=\"./jvm/%E8%AE%B0%E4%B8%80%E6%AC%A1%E7%B1%BB%E5%8A%A0%E8%BD%BD%E6%97%B6%E6%9C%BA%E7%9A%84%E5%9D%91.md\"\u003e记一次类加载时机的坑.md\u003c/a\u003e\u003cbr\u003e\n        ├── \u003ca href=\"./os/\"\u003eos\u003c/a\u003e\u003cbr\u003e\n        │   └── \u003ca href=\"./os/FileSystem-Ext4.md\"\u003eFileSystem-Ext4.md\u003c/a\u003e\u003cbr\u003e\n        ├── \u003ca href=\"./tomcat/\"\u003etomcat\u003c/a\u003e\u003cbr\u003e\n        │   ├── \u003ca href=\"./tomcat/%E8%B0%88%E8%B0%88%20Tomcat%20%E6%9E%B6%E6%9E%84%E5%8F%8A%E5%90%AF%E5%8A%A8%E8%BF%87%E7%A8%8B%5B%E5%90%AB%E9%83%A8%E7%BD%B2%5D.md\"\u003e谈谈 Tomcat 架构及启动过程[含部署].md\u003c/a\u003e\u003cbr\u003e\n        │   └── \u003ca href=\"./tomcat/%E8%B0%88%E8%B0%88Tomcat%E8%AF%B7%E6%B1%82%E5%A4%84%E7%90%86%E6%B5%81%E7%A8%8B.md\"\u003e谈谈Tomcat请求处理流程.md\u003c/a\u003e\u003cbr\u003e\n        └── \u003ca href=\"./tools/\"\u003etools\u003c/a\u003e\u003cbr\u003e\n        \u0026nbsp;\u0026nbsp;\u0026nbsp; ├── \u003ca href=\"./tools/compile-install-lastest-Git.md\"\u003ecompile-install-lastest-Git.md\u003c/a\u003e\u003cbr\u003e\n        \u0026nbsp;\u0026nbsp;\u0026nbsp; ├── \u003ca href=\"./tools/enable-IPv6.md\"\u003eenable-IPv6.md\u003c/a\u003e\u003cbr\u003e\n        \u0026nbsp;\u0026nbsp;\u0026nbsp; ├── \u003ca href=\"./tools/linux%E5%B8%B8%E7%94%A8%E9%97%AE%E9%A2%98%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88%E6%B1%87%E6%80%BB.md\"\u003elinux常用问题解决方案汇总.md\u003c/a\u003e\u003cbr\u003e\n        \u0026nbsp;\u0026nbsp;\u0026nbsp; ├── \u003ca href=\"./tools/log4j2.md\"\u003elog4j2.md\u003c/a\u003e\u003cbr\u003e\n        \u0026nbsp;\u0026nbsp;\u0026nbsp; └── \u003ca href=\"./tools/%E7%A7%91%E5%AD%A6%E4%B8%8A%E7%BD%91%E4%B9%8B%E4%BB%A3%E7%90%86%E6%9C%8D%E5%8A%A1%E5%99%A8%E9%85%8D%E7%BD%AE.md\"\u003e科学上网之代理服务器配置.md\u003c/a\u003e\u003cbr\u003e\n        \u003cbr\u003e\u003cbr\u003e\n        \u003c/p\u003e\n        \u003cp\u003e\n\n## Tips:\n\n- 为方便查阅博客，可以在浏览器安装 [Octotree](https://github.com/buunguyen/octotree) 插件\n- 目录生成方式\n  1. blog 根目录执行【`tree -H . . -I 'out|res'`】，得到HTML输出\n  2. 将 `body` 里目录部分复制过来\n\n## 版权声明\n\n\u003ca rel=\"license\" href=\"http://creativecommons.org/licenses/by-nc-nd/3.0/\"\u003e\u003cimg alt=\"Creative Commons License\" style=\"border-width:0\" src=\"https://i.creativecommons.org/l/by-nc-nd/3.0/88x31.png\" /\u003e\u003c/a\u003e\u003cbr /\u003eThis work is licensed under a \u003ca rel=\"license\" href=\"http://creativecommons.org/licenses/by-nc-nd/3.0/\"\u003eCreative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License\u003c/a\u003e.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fc-rainstorm%2Fblog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fc-rainstorm%2Fblog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fc-rainstorm%2Fblog/lists"}