PageSourceSearch

https://gerrymczzz.github.io/

html gerrymczzz.github.io collected 2026-10-03 09:14:11 UTC 20,451 bytes, 709 lines download raw bytes

1
2
3<!DOCTYPE html>
4<html lang="zh-CN" data-default-color-scheme=auto>
5
6
7
8<head>
9  <meta charset="UTF-8">
10
11  <link rel="apple-touch-icon" sizes="76x76" href="https://avatars.githubusercontent.com/u/55075474?v=4">
12  <link rel="icon" href="https://avatars.githubusercontent.com/u/55075474?v=4">
13  
14
15  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5.0, shrink-to-fit=no">
16  <meta http-equiv="x-ua-compatible" content="ie=edge">
17  
18  <meta name="theme-color" content="#2f4154">
19  <meta name="author" content="GerryMC">
20  <meta name="keywords" content="">
21  
22    <meta property="og:type" content="website">
23<meta property="og:title">
24<meta property="og:url" content="https://gerrymc.top/index.html">
25<meta property="og:site_name">
26<meta property="og:locale" content="zh_CN">
27<meta property="article:author" content="GerryMC">
28<meta name="twitter:card" content="summary_large_image">
29  
30  
31  
32  <title></title>
33
34  <link  rel="stylesheet" href="https://lib.baomitu.com/twitter-bootstrap/4.6.1/css/bootstrap.min.css" />
35
36
37
38
39
40<!-- 主题依赖的图标库,不要自行修改 -->
41<!-- Do not modify the link that theme dependent icons -->
42
43<link rel="stylesheet" href="//at.alicdn.com/t/c/font_1749284_5i9bdhy70f8.css">
44
45
46
47<link rel="stylesheet" href="//at.alicdn.com/t/c/font_1736178_k526ubmyhba.css">
48
49
50<link  rel="stylesheet" href="/css/main.css" />
51
52
53  <link id="highlight-css" rel="stylesheet" href="/css/highlight.css" />
54  
55    <link id="highlight-css-dark" rel="stylesheet" href="/css/highlight-dark.css" />
56  
57
58
59
60
61  
61<script id="fluid-configs">
62    var Fluid = window.Fluid || {};
63    Fluid.ctx = Object.assign({}, Fluid.ctx)
64    var CONFIG = {"hostname":"gerrymc.top","root":"/","version":"1.9.8","typing":{"enable":true,"typeSpeed":70,"cursorChar":"_","loop":false,"scope":[]},"anchorjs":{"enable":true,"element":"h1,h2,h3,h4,h5,h6","placement":"left","visible":"hover","icon":""},"progressbar":{"enable":true,"height_px":3,"color":"#29d","options":{"showSpinner":false,"trickleSpeed":100}},"code_language":{"enable":true,"default":"TEXT"},"copy_btn":true,"image_caption":{"enable":true},"image_zoom":{"enable":true,"img_url_replace":["",""]},"toc":{"enable":true,"placement":"right","headingSelector":"h1,h2,h3,h4,h5,h6","collapseDepth":0},"lazyload":{"enable":true,"loading_img":"/img/loading.gif","onlypost":false,"offset_factor":2},"web_analytics":{"enable":true,"follow_dnt":true,"baidu":null,"google":{"measurement_id":null},"tencent":{"sid":null,"cid":null},"leancloud":{"app_id":"LyT8mpSI2Jq9CRhOtNOgBXkE-9Nh9j0Va","app_key":"fUOlkXhD9wcmxOTed9NdlqPH","server_url":"https://lyt8mpsi.lc-cn-n1-shared.com","path":"window.location.pathname","ignore_local":false},"umami":{"src":null,"website_id":null,"domains":null,"start_time":"2024-01-01T00:00:00.000Z","token":null,"api_server":null}},"search_path":"/local-search.xml","include_content_in_search":true};
65
66    if (CONFIG.web_analytics.follow_dnt) {
67      var dntVal = navigator.doNotTrack || window.doNotTrack || navigator.msDoNotTrack;
68      Fluid.ctx.dnt = dntVal && (dntVal.startsWith('1') || dntVal.startsWith('yes') || dntVal.startsWith('on'));
69    }
70  </script>
70
71  
71<script  src="/js/utils.js" ></script>
71
72  
72<script  src="/js/color-schema.js" ></script>
72
73  
74
75  
76
77  
78
79  
80
81  
82
83  
84    
85  
86
87
88
89  
90<meta name="generator" content="Hexo 7.3.0"></head>
91
92
93<body>
94  
95
96  <header>
97    
98
99<div class="header-inner" style="height: 100vh;">
100  <nav id="navbar" class="navbar fixed-top  navbar-expand-lg navbar-dark scrolling-navbar">
101  <div class="container">
102    <a class="navbar-brand" href="/">
103      <strong></strong>
104    </a>
105
106    <button id="navbar-toggler-btn" class="navbar-toggler" type="button" data-toggle="collapse"
107            data-target="#navbarSupportedContent"
108            aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
109      <div class="animated-icon"><span></span><span></span><span></span></div>
110    </button>
111
112    <!-- Collapsible content -->
113    <div class="collapse navbar-collapse" id="navbarSupportedContent">
114      <ul class="navbar-nav ml-auto text-center">
115        
116          
117          
118          
119          
120            <li class="nav-item">
121              <a class="nav-link" href="/" target="_self">
122                <i class="iconfont icon-home-fill"></i>
123                <span>首页</span>
124              </a>
125            </li>
126          
127        
128          
129          
130          
131          
132            <li class="nav-item">
133              <a class="nav-link" href="/archives/" target="_self">
134                <i class="iconfont icon-archive-fill"></i>
135                <span>归档</span>
136              </a>
137            </li>
138          
139        
140          
141          
142          
143          
144            <li class="nav-item">
145              <a class="nav-link" href="/categories/" target="_self">
146                <i class="iconfont icon-category-fill"></i>
147                <span>分类</span>
148              </a>
149            </li>
150          
151        
152          
153          
154          
155          
156            <li class="nav-item">
157              <a class="nav-link" href="/tags/" target="_self">
158                <i class="iconfont icon-tags-fill"></i>
159                <span>标签</span>
160              </a>
161            </li>
162          
163        
164          
165          
166          
167          
168            <li class="nav-item">
169              <a class="nav-link" href="/links/" target="_self">
170                <i class="iconfont icon-link-fill"></i>
171                <span>友链</span>
172              </a>
173            </li>
174          
175        
176          
177          
178          
179          
180            <li class="nav-item">
181              <a class="nav-link" href="/about/" target="_self">
182                <i class="iconfont icon-user-fill"></i>
183                <span>关于</span>
184              </a>
185            </li>
186          
187        
188        
189          <li class="nav-item" id="search-btn">
190            <a class="nav-link" target="_self" href="javascript:;" data-toggle="modal" data-target="#modalSearch" aria-label="Search">
191              <i class="iconfont icon-search"></i>
192            </a>
193          </li>
194          
195        
196        
197          <li class="nav-item" id="color-toggle-btn">
198            <a class="nav-link" target="_self" href="javascript:;" aria-label="Color Toggle">
199              <i class="iconfont icon-dark" id="color-toggle-icon"></i>
200            </a>
201          </li>
202        
203      </ul>
204    </div>
205  </div>
206</nav>
207
208  
209
210<div id="banner" class="banner" parallax=true
211     style="background: url('https://fluid.s3.bitiful.net/bg/vdysjx.png?w=1920&fmt=webp') no-repeat center center; background-size: cover;">
212  <div class="full-bg-img">
213    <div class="mask flex-center" style="background-color: rgba(0, 0, 0, 0.3)">
214      <div class="banner-text text-center fade-in-up">
215        <div class="h2">
216          
217            <span id="subtitle" data-typed-text="学如逆水行舟,不进则退"></span>
218          
219        </div>
220
221        
222      </div>
223
224      
225        <div class="scroll-down-bar">
226          <i class="iconfont icon-arrowdown"></i>
227        </div>
228      
229    </div>
230  </div>
231</div>
232
233</div>
234
235  </header>
236
237  <main>
238    
239      <div class="container nopadding-x-md">
240        <div id="board"
241          style="margin-top: 0">
242          
243          <div class="container">
244            <div class="row">
245              <div class="col-12 col-md-10 m-auto">
246                
247
248
249  <div class="row mx-auto index-card">
250    
251    
252    <article class="col-12 col-md-12 mx-auto index-info">
253      <h2 class="index-header">
254        
255        <a href="/2025/11/10/jianli/" target="_self">
256          
257        </a>
258      </h2>
259
260      
261      <a class="index-excerpt index-excerpt__noimg" href="/2025/11/10/jianli/" target="_self">
262        <div>
263          个人信息 姓名:张明 | 年龄:32岁 | 工作年限:7å¹´   电话:138****1234 | 邮箱:[email protected]   技术博客
263:https://blog.techstack.com | GitHub:github.com&#x2F;zhangm-dev   求职意向:Java高级开发工程师&#x2F;技术专家 | 期望薪资:35K-45K  技术能力矩阵   类别
264        </div>
265      </a>
266
267      <div class="index-btm post-metas">
268        
269          <div class="post-meta mr-3">
270            <i class="iconfont icon-date"></i>
271            <time datetime="2025-11-10 23:37" pubdate>
272              2025-11-10
273            </time>
274          </div>
275        
276        
277        
278      </div>
279    </article>
280  </div>
281
282  <div class="row mx-auto index-card">
283    
284    
285      <div class="col-12 col-md-4 m-auto index-img">
286        <a href="/2025/06/05/javaweb/" target="_self">
287          <img src="http://eb118-file.cdn.bcebos.com/upload/52a3d4efed3f4597b3f71d0a9188bd80_2169211077.png?" srcset="/img/loading.gif" lazyload alt="Java Web开发技术演进深度解析:从Servlet到Spring Boot的源码级剖析">
288        </a>
289      </div>
290    
291    <article class="col-12 col-md-8 mx-auto index-info">
292      <h2 class="index-header">
293        
294        <a href="/2025/06/05/javaweb/" target="_self">
295          Java Web开发技术演进深度解析:从Servlet到Spring Boot的源码级剖析
296        </a>
297      </h2>
298
299      
300      <a class="index-excerpt " href="/2025/06/05/javaweb/" target="_self">
301        <div>
302          Java Web开发技术演进深度解析:从Servlet到Spring Boot的源码级剖析一、Servlet技术内核分析1. Servlet接口设计12345678// javax.servlet.Servlet 核心接口public interface Servlet &#123;    void init(ServletConfig config) throws ServletExceptio
303        </div>
304      </a>
305
306      <div class="index-btm post-metas">
307        
308          <div class="post-meta mr-3">
309            <i class="iconfont icon-date"></i>
310            <time datetime="2025-06-05 00:00" pubdate>
311              2025-06-05
312            </time>
313          </div>
314        
315        
316          <div class="post-meta mr-3 d-flex align-items-center">
317            <i class="iconfont icon-category"></i>
318            
319
320<span class="category-chains">
321  
322  
323    
324      <span class="category-chain">
325        
326  <a href="/categories/JAVA/" class="category-chain-item">JAVA</a>
327  
328  
329
330      </span>
331    
332  
333</span>
334
335          </div>
336        
337        
338          <div class="post-meta">
339            <i class="iconfont icon-tags"></i>
340            
341              <a href="/tags/JAVA/">#JAVA</a>
342            
343              <a href="/tags/%E7%9F%A5%E8%AF%86%E4%BD%93%E7%B3%BB/">#知识体系</a>
344            
345          </div>
346        
347      </div>
348    </article>
349  </div>
350
351  <div class="row mx-auto index-card">
352    
353    
354      <div class="col-12 col-md-4 m-auto index-img">
355        <a href="/2021/01/15/aliyun_sms/" target="_self">
356          <img src="http://eb118-file.cdn.bcebos.com/upload/52a3d4efed3f4597b3f71d0a9188bd80_2169211077.png?" srcset="/img/loading.gif" lazyload alt="Java使用阿里云短信服务">
357        </a>
358      </div>
359    
360    <article class="col-12 col-md-8 mx-auto index-info">
361      <h2 class="index-header">
362        
363        <a href="/2021/01/15/aliyun_sms/" target="_self">
364          Java使用阿里云短信服务
365        </a>
366      </h2>
367
368      
369      <a class="index-excerpt " href="/2021/01/15/aliyun_sms/" target="_self">
370        <div>
371          一、准备工作首先要开通阿里云的短信服务,然后在控制台中找到短信服务。进入后就是以下界面。其中我们需要4个东西:accessKeyId、accessKeySecret、短信模板和短信签名。
372        </div>
373      </a>
374
375      <div class="index-btm post-metas">
376        
377          <div class="post-meta mr-3">
378            <i class="iconfont icon-date"></i>
379            <time datetime="2021-01-15 00:00" pubdate>
380              2021-01-15
381            </time>
382          </div>
383        
384        
385          <div class="post-meta mr-3 d-flex align-items-center">
386            <i class="iconfont icon-category"></i>
387            
388
389<span class="category-chains">
390  
391  
392    
393      <span class="category-chain">
394        
395  <a href="/categories/JAVA%E5%B7%A5%E5%85%B7/" class="category-chain-item">JAVA工具</a>
396  
397  
398
399      </span>
400    
401  
402</span>
403
404          </div>
405        
406        
407          <div class="post-meta">
408            <i class="iconfont icon-tags"></i>
409            
410              <a href="/tags/JAVA/">#JAVA</a>
411            
412              <a href="/tags/%E5%B0%8F%E5%B7%A5%E5%85%B7/">#小工具</a>
413            
414          </div>
415        
416      </div>
417    </article>
418  </div>
419
420  <div class="row mx-auto index-card">
421    
422    
423      <div class="col-12 col-md-4 m-auto index-img">
424        <a href="/2021/01/12/java_info_filter/" target="_self">
425          <img src="http://eb118-file.cdn.bcebos.com/upload/52a3d4efed3f4597b3f71d0a9188bd80_2169211077.png?" srcset="/img/loading.gif" lazyload alt="Java正则表达式过滤手机号、身份证等常用信息">
426        </a>
427      </div>
428    
429    <article class="col-12 col-md-8 mx-auto index-info">
430      <h2 class="index-header">
431        
432        <a href="/2021/01/12/java_info_filter/" target="_self">
433          Java正则表达式过滤手机号、身份证等常用信息
434        </a>
435      </h2>
436
437      
438      <a class="index-excerpt " href="/2021/01/12/java_info_filter/" target="_self">
439        <div>
440          背景在我们日常开发中,常常会用到一些固定信息,如:手机号、身份证等。也会对账户名,密码等信息作特定的限制。那么就需要过滤掉一些垃圾信息,保证数据的准确性。这里我们通过正则表达式对字符串进行匹配过滤。 正则表达式正则表达式可以用字符串来描述规则,并用来匹配字符串。比如:”\\d”表示可以匹配一位0~9的数字,其中第一个”&quot;是转义字符。如果想匹配多位字符需要在表达式后面加”{最小位数,最大位
441        </div>
442      </a>
443
444      <div class="index-btm post-metas">
445        
446          <div class="post-meta mr-3">
447            <i class="iconfont icon-date"></i>
448            <time datetime="2021-01-12 00:00" pubdate>
449              2021-01-12
450            </time>
451          </div>
452        
453        
454          <div class="post-meta mr-3 d-flex align-items-center">
455            <i class="iconfont icon-category"></i>
456            
457
458<span class="category-chains">
459  
460  
461    
462      <span class="category-chain">
463        
464  <a href="/categories/JAVA%E5%B7%A5%E5%85%B7/" class="category-chain-item">JAVA工具</a>
465  
466  
467
468      </span>
469    
470  
471</span>
472
473          </div>
474        
475        
476          <div class="post-meta">
477            <i class="iconfont icon-tags"></i>
478            
479              <a href="/tags/JAVA/">#JAVA</a>
480            
481              <a href="/tags/%E5%B0%8F%E5%B7%A5%E5%85%B7/">#小工具</a>
482            
483          </div>
484        
485      </div>
486    </article>
487  </div>
488
489  <div class="row mx-auto index-card">
490    
491    
492      <div class="col-12 col-md-4 m-auto index-img">
493        <a href="/2021/01/05/snowflake/" target="_self">
494          <img src="http://eb118-file.cdn.bcebos.com/upload/52a3d4efed3f4597b3f71d0a9188bd80_2169211077.png?" srcset="/img/loading.gif" lazyload alt="Java使用雪花id">
495        </a>
496      </div>
497    
498    <article class="col-12 col-md-8 mx-auto index-info">
499      <h2 class="index-header">
500        
501        <a href="/2021/01/05/snowflake/" target="_self">
502          Java使用雪花id
503        </a>
504      </h2>
505
506      
507      <a class="index-excerpt " href="/2021/01/05/snowflake/" target="_self">
508        <div>
509          概述雪花ID即SnowFlakeID,通常雪花ID是和分布式一起使用的。借鉴一下别人的介绍:SnowFlake是twitter公司内部分布式项目采用的ID生成算法,开源后广受国内大厂的好评。由这种算法生成的ID,我们就叫做SnowFlakeID SnowFlakeID的最大的特性就是天然去中心化,通过时间戳、工作机器编号两个变量进行配置后,通过SnowFlake算法会生成唯一的递增ID。在任何机器
510        </div>
511      </a>
512
513      <div class="index-btm post-metas">
514        
515          <div class="post-meta mr-3">
516            <i class="iconfont icon-date"></i>
517            <time datetime="2021-01-05 00:00" pubdate>
518              2021-01-05
519            </time>
520          </div>
521        
522        
523          <div class="post-meta mr-3 d-flex align-items-center">
524            <i class="iconfont icon-category"></i>
525            
526
527<span class="category-chains">
528  
529  
530    
531      <span class="category-chain">
532        
533  <a href="/categories/JAVA%E5%B7%A5%E5%85%B7/" class="category-chain-item">JAVA工具</a>
534  
535  
536
537      </span>
538    
539  
540</span>
541
542          </div>
543        
544        
545          <div class="post-meta">
546            <i class="iconfont icon-tags"></i>
547            
548              <a href="/tags/JAVA/">#JAVA</a>
549            
550              <a href="/tags/%E5%B0%8F%E5%B7%A5%E5%85%B7/">#小工具</a>
551            
552          </div>
553        
554      </div>
555    </article>
556  </div>
557
558
559
560
561
562              </div>
563            </div>
564          </div>
565        </div>
566      </div>
567    
568
569    
570      <a id="scroll-top-button" aria-label="TOP" href="#" role="button">
571        <i class="iconfont icon-arrowup" aria-hidden="true"></i>
572      </a>
573    
574
575    
576      <div class="modal fade" id="modalSearch" tabindex="-1" role="dialog" aria-labelledby="ModalLabel"
577     aria-hidden="true">
578  <div class="modal-dialog modal-dialog-scrollable modal-lg" role="document">
579    <div class="modal-content">
580      <div class="modal-header text-center">
581        <h4 class="modal-title w-100 font-weight-bold">搜索</h4>
582        <button type="button" id="local-search-close" class="close" data-dismiss="modal" aria-label="Close">
583          <span aria-hidden="true">&times;</span>
584        </button>
585      </div>
586      <div class="modal-body mx-3">
587        <div class="md-form mb-5">
588          <input type="text" id="local-search-input" class="form-control validate">
589          <label data-error="x" data-success="v" for="local-search-input">关键词</label>
590        </div>
591        <div class="list-group" id="local-search-result"></div>
592      </div>
593    </div>
594  </div>
595</div>
596
597    
598
599    
600  </main>
601
602  <footer>
603    <div class="footer-inner">
604  
605    <div class="footer-content">
606       <a href="https://hexo.io" target="_blank" rel="nofollow noopener"><span>Hexo</span></a> <i class="iconfont icon-love"></i> <a href="https://github.com/fluid-dev/hexo-theme-fluid" target="_blank" rel="nofollow noopener"><span>Fluid</span></a> 
607    </div>
608  
609  
610    <div class="statistics">
611  
612  
613
614  
615    
616      <span id="leancloud-site-pv-container" style="display: none">
617        总访问量 
618        <span id="leancloud-site-pv"></span>
619         次
620      </span>
621    
622    
623      <span id="leancloud-site-uv-container" style="display: none">
624        总访客数 
625        <span id="leancloud-site-uv"></span>
626         人
627      </span>
628    
629    
630
631  
632
633</div>
634
635  
636  
637</div>
638
639  </footer>
640
641  <!-- Scripts -->
642  
643  
643<script  src="https://lib.baomitu.com/nprogress/0.2.0/nprogress.min.js" ></script>
643
644  <link  rel="stylesheet" href="https://lib.baomitu.com/nprogress/0.2.0/nprogress.min.css" />
645
646  
646<script>
647    NProgress.configure({"showSpinner":false,"trickleSpeed":100})
648    NProgress.start()
649    window.addEventListener('load', function() {
650      NProgress.done();
651    })
652  </script>
652
653
654
655<script  src="https://lib.baomitu.com/jquery/3.6.4/jquery.min.js" ></script>
vendor: 1 bytes, line 655
655
656<script  src="https://lib.baomitu.com/twitter-bootstrap/4.6.1/js/bootstrap.min.js" ></script>
vendor: 1 bytes, line 656
656
657<script  src="/js/events.js" ></script>
vendor: 1 bytes, line 657
657
658<script  src="/js/plugins.js" ></script>
658
659
660
661  
661<script  src="https://lib.baomitu.com/typed.js/2.0.12/typed.min.js" ></script>
661
662  
662<script>
663    (function (window, document) {
664      var typing = Fluid.plugins.typing;
665      var subtitle = document.getElementById('subtitle');
666      if (!subtitle || !typing) {
667        return;
668      }
669      var text = subtitle.getAttribute('data-typed-text');
670      
671        typing(text);
672      
673    })(window, document);
674  </script>
674
675
676
677
678
679  
680    
680<script  src="/js/img-lazyload.js" ></script>
680
681  
682
683
684
685
686  
686<script defer src="/js/leancloud.js" ></script>
686
687
688  
688<script  src="/js/local-search.js" ></script>
688
689
690
691
692
693  
694<script src="/js/custom.js"></script>
694
695
696
697
698<!-- 主题的启动项,将它保持在最底部 -->
699<!-- the boot of the theme, keep it at the bottom -->
700<script  src="/js/boot.js" ></script>
700
701
702
703  
704
705  <noscript>
706    <div class="noscript-warning">博客在允许 JavaScript 运行的环境下浏览效果更佳</div>
707  </noscript>
708</body>
709</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.