PageSourceSearch

https://woodwhales.github.io/tags/

html woodwhales.github.io collected 2026-10-03 10:10:51 UTC 41,462 bytes, 1,207 lines download raw bytes

1<!DOCTYPE html>
2
3
4
5
6<html class="theme-next muse" lang="zh-Hans">
7<head>
8  <meta charset="UTF-8"/>
9<meta http-equiv="X-UA-Compatible" content="IE=edge" />
10<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"/>
11<meta name="theme-color" content="#fff">
12<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-1815293530059355"
13     crossorigin="anonymous"></script>
13
14
15
16
17
18
19
20
21
22<meta http-equiv="Cache-Control" content="no-transform" />
23<meta http-equiv="Cache-Control" content="no-siteapp" />
24
25
26
27  <meta name="google-site-verification" content="3uDNOuCQu6inuHg_QHas_nknR5rEe5WHetNJ6bVEwVA" />
28
29
30
31  <meta name="msvalidate.01" content="DCCE27951FD510E830BDD5D014EB15B4" />
32
33
34
35
36
37
38
39
40
41
42
43
44  
45  
46  <link href="/lib/fancybox/source/jquery.fancybox.css?v=2.1.5" rel="stylesheet" type="text/css" />
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    <link href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic|Roboto Slab:300,300italic,400,400italic,700,700italic|Roboto Mono:300,300italic,400,400italic,700,700italic&subset=latin,latin-ext" rel="stylesheet" type="text/css">
85  
86
87
88
89
90
91
92<link href="/lib/font-awesome/css/font-awesome.min.css?v=4.6.2" rel="stylesheet" type="text/css" />
93
94<link href="/css/main.css?v=5.1.4" rel="stylesheet" type="text/css" />
95
96
97  <link rel="apple-touch-icon" sizes="180x180" href="/images/apple-touch-icon-next.png?v=5.1.4">
98
99
100  <link rel="icon" type="image/png" sizes="32x32" href="/uploads/favicon-32x32.ico?v=5.1.4">
101
102
103  <link rel="icon" type="image/png" sizes="16x16" href="/uploads/favicon-16x16.ico?v=5.1.4">
104
105
106  <link rel="mask-icon" href="/images/logo.svg?v=5.1.4" color="#fff">
107
108
109
110
111
112  <meta name="keywords" content="woodwhales, 木鲸鱼, Java, 设计, 博客" />
113
114
115
116
117
118
119
120
121
122
123<meta name="description" content="好记性不如烂笔头">
124<meta property="og:type" content="website">
125<meta property="og:title" content="标签">
126<meta property="og:url" content="https://woodwhales.cn/tags/index.html">
127<meta property="og:site_name" content="woodwhale&#39;s blog">
128<meta property="og:description" content="好记性不如烂笔头">
129<meta property="og:locale">
130<meta property="article:published_time" content="2018-12-22T13:36:20.000Z">
131<meta property="article:modified_time" content="2025-04-06T14:52:05.941Z">
132<meta property="article:author" content="木鲸鱼">
133<meta property="article:tag" content="Java,编程,技术,设计,博客,建站,木鲸鱼,开源,折腾,woodwhales,blog,程序员">
134<meta name="twitter:card" content="summary">
135
136
137
138<script type="text/javascript" id="hexo.configurations">
139  var NexT = window.NexT || {};
140  var CONFIG = {
141    root: '',
142    scheme: 'Muse',
143    version: '5.1.4',
144    sidebar: {"position":"left","display":"hide","offset":12,"b2t":false,"scrollpercent":true,"onmobile":false},
145    fancybox: true,
146    tabs: true,
147    motion: {"enable":false,"async":false,"transition":{"post_block":"fadeIn","post_header":"slideDownIn","post_body":"slideDownIn","coll_header":"slideLeftIn","sidebar":"slideUpIn"}},
148    duoshuo: {
149      userId: 'undefined',
150      author: '博主'
151    },
152    algolia: {
153      applicationID: '',
154      apiKey: '',
155      indexName: '',
156      hits: {"per_page":10},
157      labels: {"input_placeholder":"Search for Posts","hits_empty":"We didn't find any results for the search: ${query}","hits_stats":"${hits} results found in ${time} ms"}
158    }
159  };
160</script>
160
161
162
163
164  <link rel="canonical" href="https://woodwhales.cn/tags/"/>
165
166
167
168
169<script async src="https://fundingchoicesmessages.google.com/i/pub-1815293530059355?ers=1" nonce="iiDO3i5ZgRmrRRl65XssBQ"></script>
169<script nonce="iiDO3i5ZgRmrRRl65XssBQ">(function() {function signalGooglefcPresent() {if (!window.frames['googlefcPresent']) {if (document.body) {const iframe = document.createElement('iframe'); iframe.style = 'width: 0; height: 0; border: none; z-index: -1000; left: -1000px; top: -1000px;'; iframe.style.display = 'none'; iframe.name = 'googlefcPresent'; document.body.appendChild(iframe);} else {setTimeout(signalGooglefcPresent, 0);}}}signalGooglefcPresent();})();</script>
169
170
171  <title>标签 | woodwhale's blog</title>
172  
173
174
175
176
177
178
179
180
181<meta name="generator" content="Hexo 7.0.0">
182<style>.github-emoji { position: relative; display: inline-block; width: 1.2em; min-height: 1.2em; overflow: hidden; vertical-align: top; color: transparent; }  .github-emoji > span { position: relative; z-index: 10; }  .github-emoji img, .github-emoji .fancybox { margin: 0 !important; padding: 0 !important; border: none !important; outline: none !important; text-decoration: none !important; user-select: none !important; cursor: auto !important; }  .github-emoji img { height: 1.2em !important; width: 1.2em !important; position: absolute !important; left: 50% !important; top: 50% !important; transform: translate(-50%, -50%) !important; user-select: none !important; cursor: auto !important; } .github-emoji-fallback { color: inherit; } .github-emoji-fallback img { opacity: 0 !important; }</style>
183</head>
184
185<body itemscope itemtype="http://schema.org/WebPage" lang="zh-Hans">
186
187	<div class="bg_content">
188		<canvas id="canvas"></canvas>
189	</div>
190
191  
192  
193    
194  
195
196  <div class="container sidebar-position-left page-post-detail">
197    <div class="headband"></div>
198
199    <header id="header" class="header" itemscope itemtype="http://schema.org/WPHeader">
200      <div class="header-inner"><div class="site-brand-wrapper">
201  <div class="site-meta ">
202    
203
204    <div class="custom-logo-site-title">
205      <a href="/"  class="brand" rel="start">
206        <span class="logo-line-before"><i></i></span>
207        <span class="site-title">woodwhale's blog</span>
208        <span class="logo-line-after"><i></i></span>
209      </a>
210    </div>
211      
212        <p class="site-subtitle">技术改变生活</p>
213      
214  </div>
215
216  <div class="site-nav-toggle">
217    <button>
218      <span class="btn-bar"></span>
219      <span class="btn-bar"></span>
220      <span class="btn-bar"></span>
221    </button>
222  </div>
223</div>
224
225<nav class="site-nav">
226  
227
228  
229    <ul id="menu" class="menu">
230      
231        
232        <li class="menu-item menu-item-home">
233          <a href="/" rel="section">
234            
235              <i class="menu-item-icon fa fa-fw fa-home"></i> <br />
236            
237            首页
238          </a>
239        </li>
240      
241        
242        <li class="menu-item menu-item-archives">
243          <a href="/archives/" rel="section">
244            
245              <i class="menu-item-icon fa fa-fw fa-archive"></i> <br />
246            
247            归档
248          </a>
249        </li>
250      
251        
252        <li class="menu-item menu-item-categories">
253          <a href="/categories/" rel="section">
254            
255              <i class="menu-item-icon fa fa-fw fa-th"></i> <br />
256            
257            分类
258          </a>
259        </li>
260      
261        
262        <li class="menu-item menu-item-tags">
263          <a href="/tags/" rel="section">
264            
265              <i class="menu-item-icon fa fa-fw fa-tags"></i> <br />
266            
267            标签
268          </a>
269        </li>
270      
271        
272        <li class="menu-item menu-item-tools">
273          <a href="/tools/" rel="section">
274            
275              <i class="menu-item-icon fa fa-fw fa-cogs"></i> <br />
276            
277            工具
278          </a>
279        </li>
280      
281        
282        <li class="menu-item menu-item-resources">
283          <a href="/resources/" rel="section">
284            
285              <i class="menu-item-icon fa fa-fw fa-gift"></i> <br />
286            
287            福利
288          </a>
289        </li>
290      
291        
292        <li class="menu-item menu-item-setup">
293          <a href="/setup/" rel="section">
294            
295              <i class="menu-item-icon fa fa-fw fa-power-off"></i> <br />
296            
297            装机
298          </a>
299        </li>
300      
301        
302        <li class="menu-item menu-item-works">
303          <a href="/works/" rel="section">
304            
305              <i class="menu-item-icon fa fa-fw fa-bars"></i> <br />
306            
307            作品
308          </a>
309        </li>
310      
311        
312        <li class="menu-item menu-item-about">
313          <a href="/about/" rel="section">
314            
315              <i class="menu-item-icon fa fa-fw fa-futbol-o"></i> <br />
316            
317            关于
318          </a>
319        </li>
320      
321
322      
323        <li class="menu-item menu-item-search">
324          
325            <a href="javascript:;" class="popup-trigger">
326          
327            
328              <i class="menu-item-icon fa fa-search fa-fw"></i> <br />
329            
330            搜索
331          </a>
332        </li>
333      
334    </ul>
335  
336
337  
338    <div class="site-search">
339      
340  <div class="popup search-popup local-search-popup">
341  <div class="local-search-header clearfix">
342    <span class="search-icon">
343      <i class="fa fa-search"></i>
344    </span>
345    <span class="popup-btn-close">
346      <i class="fa fa-times-circle"></i>
347    </span>
348    <div class="local-search-input-wrapper">
349      <input autocomplete="off"
350             placeholder="搜索..." spellcheck="false"
351             type="text" id="local-search-input">
352    </div>
353  </div>
354  <div id="local-search-result"></div>
355</div>
356
357
358
359    </div>
360  
361</nav>
362
363
364
365 </div>
366    </header>
367
368    <main id="main" class="main">
369      <div class="main-inner">
370        <div class="content-wrap">
371          <div id="content" class="content">
372            
373
374  <div id="posts" class="posts-expand">
375    
376    
377    
378    <div class="post-block page">
379      <header class="post-header">
380
381	<h1 class="post-title" itemprop="name headline">标签</h1>
382
383
384
385</header>
386
387      
388      
389      
390      <div class="post-body">
391        
392        
393          <div class="tag-cloud">
394			<!--
395			<div class="tag-cloud-title">
396                目前共计 84 个标签
397            </div>
398			-->
399            <div class="tag-cloud-tags" id="tags">
400              <a href="/tags/AIoT/" style="font-size: 13px; color: #9733ee">AIoT</a> <a href="/tags/C-%E8%AF%AD%E8%A8%80/" style="font-size: 13px; color: #9733ee">C 语言</a> <a href="/tags/DDD/" style="font-size: 13px; color: #9733ee">DDD</a> <a href="/tags/ElasticSearch/" style="font-size: 17.5px; color: #b13bbe">ElasticSearch</a> <a href="/tags/FTP/" style="font-size: 13px; color: #9733ee">FTP</a> <a href="/tags/Guava-EventBus/" style="font-size: 13px; color: #9733ee">Guava EventBus</a> <a href="/tags/HashMap/" style="font-size: 13px; color: #9733ee">HashMap</a> <a href="/tags/IDEA%E8%AE%BE%E7%BD%AE/" style="font-size: 13px; color: #9733ee">IDEA设置</a> <a href="/tags/JDK-1-8/" style="font-size: 13px; color: #9733ee">JDK 1.8</a> <a href="/tags/JDK21/" style="font-size: 13px; color: #9733ee">JDK21</a> <a href="/tags/JNI/" style="font-size: 13px; color: #9733ee">JNI</a> <a href="/tags/JVM-%E6%BA%90%E7%A0%81/" style="font-size: 13px; color: #9733ee">JVM 源码</a> <a href="/tags/Java-%E7%9A%84%E5%9B%9B%E7%A7%8D%E5%BC%95%E7%94%A8/" style="font-size: 13px; color: #9733ee">Java 的四种引用</a> <a href="/tags/JavaWeb/" style="font-size: 13px; color: #9733ee">JavaWeb</a> <a href="/tags/Java%E5%B0%8F%E5%B7%A5%E5%85%B7/" style="font-size: 13px; color: #9733ee">Java小工具</a> <a href="/tags/JetLinks/" style="font-size: 13px; color: #9733ee">JetLinks</a> <a href="/tags/Kafka/" style="font-size: 13px; color: #9733ee">Kafka</a> <a href="/tags/LRU%E7%AE%97%E6%B3%95/" style="font-size: 13px; color: #9733ee">LRU算法</a> <a href="/tags/Linux/" style="font-size: 13px; color: #9733ee">Linux</a> <a href="/tags/Maven-Project/" style="font-size: 13px; color: #9733ee">Maven Project</a> <a href="/tags/Minio/" style="font-size: 13px; color: #9733ee">Minio</a> <a href="/tags/MyBatis/" style="font-size: 13px; color: #9733ee">MyBatis</a> <a href="/tags/MySQL/" style="font-size: 17.5px; color: #b13bbe">MySQL</a> <a href="/tags/Ndoe-js/" style="font-size: 13px; color: #9733ee">Ndoe.js</a> <a href="/tags/PlantUML/" style="font-size: 13px; color: #9733ee">PlantUML</a> <a href="/tags/PostgreSQL/" style="font-size: 13px; color: #9733ee">PostgreSQL</a> <a href="/tags/Python%E5%87%BD%E6%95%B0/" style="font-size: 13px; color: #9733ee">Python函数</a> <a href="/tags/RabbitMQ/" style="font-size: 13px; color: #9733ee">RabbitMQ</a> <a href="/tags/Restful/" style="font-size: 13px; color: #9733ee">Restful</a> <a href="/tags/STS%E8%AE%BE%E7%BD%AE/" style="font-size: 13px; color: #9733ee">STS设置</a> <a href="/tags/Spring-Boot/" style="font-size: 22px; color: #cb428f">Spring Boot</a> <a href="/tags/Spring-Security/" style="font-size: 31px; color: #ff512f">Spring Security</a> <a href="/tags/Spring-%E6%BA%90%E7%A0%81%E7%BC%96%E8%AF%91/" style="font-size: 13px; color: #9733ee">Spring 源码编译</a> <a href="/tags/String-intern/" style="font-size: 13px; color: #9733ee">String#intern</a> <a href="/tags/anaconda/" style="font-size: 13px; color: #9733ee">anaconda</a> <a href="/tags/centos/" style="font-size: 13px; color: #9733ee">centos</a> <a href="/tags/confluence/" style="font-size: 13px; color: #9733ee">confluence</a> <a href="/tags/docker/" style="font-size: 26.5px; color: #e54a5f">docker</a> <a href="/tags/dubbo/" style="font-size: 17.5px; color: #b13bbe">dubbo</a> <a href="/tags/git/" style="font-size: 13px; color: #9733ee">git</a> <a href="/tags/gradle/" style="font-size: 13px; color: #9733ee">gradle</a> <a href="/tags/groovy/" style="font-size: 13px; color: #9733ee">groovy</a> <a href="/tags/harbor/" style="font-size: 13px; color: #9733ee">harbor</a> <a href="/tags/java/" style="font-size: 13px; color: #9733ee">java</a> <a href="/tags/jpa/" style="font-size: 13px; color: #9733ee">jpa</a> <a href="/tags/kafka/" style="font-size: 13px; color: #9733ee">kafka</a> <a href="/tags/layui/" style="font-size: 13px; color: #9733ee">layui</a> <a href="/tags/mvnrepository/" style="font-size: 13px; color: #9733ee">mvnrepository</a> <a href="/tags/mybatis-Plus/" style="font-size: 13px; color: #9733ee">mybatis Plus</a> <a href="/tags/mycat/" style="font-size: 17.5px; color: #b13bbe">mycat</a> <a href="/tags/mysql5-7%E5%AE%89%E8%A3%85/" style="font-size: 13px; color: #9733ee">mysql5.7安装</a> <a href="/tags/nginx/" style="font-size: 13px; color: #9733ee">nginx</a> <a href="/tags/postgis/" style="font-size: 13px; color: #9733ee">postgis</a> <a href="/tags/redis/" style="font-size: 17.5px; color: #b13bbe">redis</a> <a href="/tags/rocketmq/" style="font-size: 13px; color: #9733ee">rocketmq</a> <a href="/tags/spring-boot-starter/" style="font-size: 13px; color: #9733ee">spring-boot-starter</a> <a href="/tags/swagger/" style="font-size: 13px; color: #9733ee">swagger</a> <a href="/tags/vsCode-C-C-%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA/" style="font-size: 13px; color: #9733ee">vsCode C/C++ 环境搭建</a> <a href="/tags/vue/" style="font-size: 13px; color: #9733ee">vue</a> <a href="/tags/xshell/" style="font-size: 13px; color: #9733ee">xshell</a> <a href="/tags/yolov8/" style="font-size: 13px; color: #9733ee">yolov8</a> <a href="/tags/zookeeper/" style="font-size: 13px; color: #9733ee">
400zookeeper</a> <a href="/tags/%E4%BB%A3%E7%A0%81%E8%A7%84%E8%8C%83/" style="font-size: 13px; color: #9733ee">代码规范</a> <a href="/tags/%E5%8D%9A%E5%AE%A2/" style="font-size: 13px; color: #9733ee">博客</a> <a href="/tags/%E5%9F%BA%E7%A1%80%E5%8E%9F%E7%90%86/" style="font-size: 31px; color: #ff512f">基础原理</a> <a href="/tags/%E5%AD%97%E4%BD%93/" style="font-size: 13px; color: #9733ee">字体</a> <a href="/tags/%E5%AE%89%E5%85%A8/" style="font-size: 13px; color: #9733ee">安全</a> <a href="/tags/%E5%AE%9A%E6%97%B6%E4%BB%BB%E5%8A%A1/" style="font-size: 13px; color: #9733ee">定时任务</a> <a href="/tags/%E5%AF%86%E7%A0%81/" style="font-size: 13px; color: #9733ee">密码</a> <a href="/tags/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/" style="font-size: 26.5px; color: #e54a5f">并发编程</a> <a href="/tags/%E6%8E%92%E5%BA%8F%E7%AE%97%E6%B3%95/" style="font-size: 13px; color: #9733ee">排序算法</a> <a href="/tags/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/" style="font-size: 13px; color: #9733ee">数据结构</a> <a href="/tags/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/" style="font-size: 13px; color: #9733ee">机器学习</a> <a href="/tags/%E6%9E%84%E5%BB%BA%E5%B7%A5%E5%85%B7%E8%AE%BE%E7%BD%AE/" style="font-size: 13px; color: #9733ee">构建工具设置</a> <a href="/tags/%E6%B6%88%E6%81%AF%E4%B8%AD%E9%97%B4%E4%BB%B6/" style="font-size: 13px; color: #9733ee">消息中间件</a> <a href="/tags/%E7%89%A9%E8%81%94%E7%BD%91/" style="font-size: 13px; color: #9733ee">物联网</a> <a href="/tags/%E7%AE%97%E6%B3%95/" style="font-size: 13px; color: #9733ee">算法</a> <a href="/tags/%E7%BA%AA%E5%BF%B5%E5%B7%A6%E8%80%B3%E6%9C%B5%E8%80%97%E5%AD%90/" style="font-size: 13px; color: #9733ee">纪念左耳朵耗子</a> <a href="/tags/%E7%BB%84%E4%BB%B6%E6%B3%A8%E5%86%8C/" style="font-size: 13px; color: #9733ee">组件注册</a> <a href="/tags/%E7%BB%84%E4%BB%B6%E8%A3%85%E9%85%8D/" style="font-size: 13px; color: #9733ee">组件装配</a> <a href="/tags/%E7%BC%96%E7%A8%8B%E9%9A%8F%E6%83%B3/" style="font-size: 17.5px; color: #b13bbe">编程随想</a> <a href="/tags/%E8%BD%AC%E8%A1%8C/" style="font-size: 22px; color: #cb428f">转行</a> <a href="/tags/%E9%87%8D%E8%A3%85%E7%B3%BB%E7%BB%9F/" style="font-size: 13px; color: #9733ee">重装系统</a> <a href="/tags/%E9%9A%8F%E7%AC%94%E6%9D%82%E8%B0%88/" style="font-size: 13px; color: #9733ee">随笔杂谈</a>
401            </div>
402          </div>
403        
404      </div>
405      
406      
407      
408    </div>
409    
410    
411    
412  </div>
413
414
415          </div>
416          
417
418
419          
420
421  
422    <div class="comments" id="comments">
423    </div>
424  
425
426
427
428<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-1815293530059355"
429     crossorigin="anonymous"></script>
429
430
431        </div>
432        
433          
434  
435  <div class="sidebar-toggle">
436    <div class="sidebar-toggle-line-wrap">
437      <span class="sidebar-toggle-line sidebar-toggle-line-first"></span>
438      <span class="sidebar-toggle-line sidebar-toggle-line-middle"></span>
439      <span class="sidebar-toggle-line sidebar-toggle-line-last"></span>
440    </div>
441  </div>
442
443  <aside id="sidebar" class="sidebar">
444    
445    <div class="sidebar-inner">
446
447      
448
449      
450
451      <section class="site-overview-wrap sidebar-panel sidebar-panel-active">
452        <div class="site-overview">
453          <div class="site-author motion-element" itemprop="author" itemscope itemtype="http://schema.org/Person">
454            
455              <img class="site-author-image" itemprop="image"
456                src="/uploads/avatar-woodwhale.png"
457                alt="woodwhales" />
458            
459              <p class="site-author-name" itemprop="name">woodwhales</p>
460              <p class="site-description motion-element" itemprop="description"></p>
461          </div>
462
463          <nav class="site-state motion-element">
464
465            
466              <div class="site-state-item site-state-posts">
467              
468                <a href="/archives/%7C%7C%20archive">
469              
470                  <span class="site-state-item-count">103</span>
471                  <span class="site-state-item-name">日志</span>
472                </a>
473              </div>
474            
475
476            
477              
478              
479              <div class="site-state-item site-state-categories">
480                <a href="/categories/index.html">
481                  <span class="site-state-item-count">64</span>
482                  <span class="site-state-item-name">分类</span>
483                </a>
484              </div>
485            
486
487            
488              
489              
490              <div class="site-state-item site-state-tags">
491                <a href="/tags/index.html">
492                  <span class="site-state-item-count">84</span>
493                  <span class="site-state-item-name">标签</span>
494                </a>
495              </div>
496            
497
498          </nav>
499
500          
501
502          
503            <div class="links-of-author motion-element">
504                
505                  <span class="links-of-author-item">
506                    <a href="https://github.com/woodwhales" target="_blank" title="GitHub">
507                      
508                        <i class="fa fa-fw fa-github"></i>GitHub</a>
509                  </span>
510                
511                  <span class="links-of-author-item">
512                    <a href="mailto:[email protected]" target="_blank" title="E-Mail">
513                      
514                        <i class="fa fa-fw fa-envelope"></i>E-Mail</a>
515                  </span>
516                
517                  <span class="links-of-author-item">
518                    <a href="https://juejin.im/user/5b1f7a2f518825137f0d31d1" target="_blank" title="掘金">
519                      
520                        <i class="fa fa-fw fa-book"></i>掘金</a>
521                  </span>
522                
523                  <span class="links-of-author-item">
524                    <a href="https://www.cnblogs.com/mujingyu/" target="_blank" title="博客园">
525                      
526                        <i class="fa fa-fw fa-laptop"></i>博客园</a>
527                  </span>
528                
529            </div>
530          
531
532          
533          
534
535          
536          
537            <div class="links-of-blogroll motion-element links-of-blogroll-inline">
538              <div class="links-of-blogroll-title">
539                <i class="fa  fa-fw fa-globe"></i>
540                神奇的链接
541              </div>
542              <ul class="links-of-blogroll-list">
543                
544                  <li class="links-of-blogroll-item">
545                    <a href="https://music.cloudcoders.cn" title="开源音乐播放器" rel="external nofollow" target="_blank">开源音乐播放器</a>
546                  </li>
547                
548                  <li class="links-of-blogroll-item">
549                    <a href="https://image.woodwhales.cn/" title="woodwhales-image-store" rel="external nofollow" target="_blank">woodwhales-image-store</a>
550                  </li>
551                
552                  <li class="links-of-blogroll-item">
553                    <a href="http://www.bilibili.com/video/av6211226" title="尼古拉·特斯拉:发明了现代世界的人" rel="external nofollow" target="_blank">尼古拉·特斯拉:发明了现代世界的人</a>
554                  </li>
555                
556                  <li class="links-of-blogroll-item">
557                    <a href="https://www.bilibili.com/video/av21376839" title="计算机科学速成课:Crash Course" rel="external nofollow" target="_blank">计算机科学速成课:Crash Course</a>
558                  </li>
559                
560              </ul>
561			  
562			  <div id="days"></div>
563<script>
564	function show_date_time(){
565	window.setTimeout("show_date_time()", 1000);
566	BirthDay=new Date("12/21/2018 00:00:00");
567	today=new Date();
568	timeold=(today.getTime()-BirthDay.getTime());
569	sectimeold=timeold/1000
570	secondsold=Math.floor(sectimeold);
571	msPerDay=24*60*60*1000
572	e_daysold=timeold/msPerDay
573	daysold=Math.floor(e_daysold);
574	e_hrsold=(e_daysold-daysold)*24;
575	hrsold=setzero(Math.floor(e_hrsold));
576	e_minsold=(e_hrsold-hrsold)*60;
577	minsold=setzero(Math.floor((e_hrsold-hrsold)*60));
578	seconds=setzero(Math.floor((e_minsold-minsold)*60));
579	document.getElementById('days').innerHTML="已运行 "+daysold+" 天 "+hrsold+" 小时 "+minsold+" 分 "+seconds+" 秒";
580	}
581	function setzero(i){
582	if (i<10)
583	{i="0" + i};
584	return i;
585	}
586	show_date_time();
587</script>
587
588            </div>
589          
590
591          <!--<div id="days"></div>
592<script>
593	function show_date_time(){
594	window.setTimeout("show_date_time()", 1000);
595	BirthDay=new Date("12/21/2018 00:00:00");
596	today=new Date();
597	timeold=(today.getTime()-BirthDay.getTime());
598	sectimeold=timeold/1000
599	secondsold=Math.floor(sectimeold);
600	msPerDay=24*60*60*1000
601	e_daysold=timeold/msPerDay
602	daysold=Math.floor(e_daysold);
603	e_hrsold=(e_daysold-daysold)*24;
604	hrsold=setzero(Math.floor(e_hrsold));
605	e_minsold=(e_hrsold-hrsold)*60;
606	minsold=setzero(Math.floor((e_hrsold-hrsold)*60));
607	seconds=setzero(Math.floor((e_minsold-minsold)*60));
608	document.getElementById('days').innerHTML="已运行 "+daysold+" 天 "+hrsold+" 小时 "+minsold+" 分 "+seconds+" 秒";
609	}
610	function setzero(i){
611	if (i<10)
612	{i="0" + i};
613	return i;
614	}
615	show_date_time();
616</script>
616-->
617        </div>
618      </section>
619
620      
621
622      
623
624    </div>
625	
625<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-1815293530059355"
626     crossorigin="anonymous"></script>
626
627  </aside>
628
629
630        
631      </div>
632    </main>
633
634    <footer id="footer" class="footer">
635      <div class="footer-inner">
636        
636<script async src="https://busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>
636
637<div class="copyright">&copy; 2018 &mdash; <span itemprop="copyrightYear">2025</span>
638  <span class="with-love" id="heart">
639    <i class="fa fa-heart"></i>
640  </span>
641  <span class="author" itemprop="copyrightHolder">木鲸鱼</span>
642  
643</div>
644
645
646
647
648
649
650
651
652
653        
654<div class="busuanzi-count">
655  
655<script async src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>
655
656
657  
658    <span class="site-uv">
659      <i class="fa fa-user-circle-o"></i> 访问人数
660      <span class="busuanzi-value" id="busuanzi_value_site_uv"></span>
661      人
662    </span>
663  
664
665  
666    <span class="site-pv">
667      <i class="fa fa-eye"></i> 访问总量
668      <span class="busuanzi-value" id="busuanzi_value_site_pv"></span>
669      次
670    </span>
671  
672</div>
673
674
675
676
677
678
679
680
681        
682      </div>
683    </footer>
684
685    
686      <div class="back-to-top">
687        <i class="fa fa-arrow-up"></i>
688        
689          <span id="scrollpercent"><span>0</span>%</span>
690        
691      </div>
692    
693
694    
695
696  </div>
697
698  
699
700<script type="text/javascript">
701  if (Object.prototype.toString.call(window.Promise) !== '[object Function]') {
702    window.Promise = null;
703  }
704</script>
704
705
706
707
708
709
710
711
712
713
714  
715
716
717
718
719
720
721
722
723
724
725
726
727  
728  
729    
729<script type="text/javascript" src="/lib/jquery/index.js?v=2.1.3"></script>
729
730  
731
732  
733  
734    
734<script type="text/javascript" src="/lib/fastclick/lib/fastclick.min.js?v=1.0.6"></script>
734
735  
736
737  
738  
739    
739<script type="text/javascript" src="/lib/jquery_lazyload/jquery.lazyload.js?v=1.9.7"></script>
739
740  
741
742  
743  
744    
744<script type="text/javascript" src="/lib/velocity/velocity.min.js?v=1.2.1"></script>
744
745  
746
747  
748  
749    
749<script type="text/javascript" src="/lib/velocity/velocity.ui.min.js?v=1.2.1"></script>
749
750  
751
752  
753  
754    
754<script type="text/javascript" src="/lib/fancybox/source/jquery.fancybox.pack.js?v=2.1.5"></script>
754
755  
756
757
758  
759
760
761  
761<script type="text/javascript" src="/js/src/utils.js?v=5.1.4"></script>
761
762
763  
763<script type="text/javascript" src="/js/src/motion.js?v=5.1.4"></script>
763
764
765
766
767  
768  
769
770  
771  
771<script type="text/javascript" src="/js/src/scrollspy.js?v=5.1.4"></script>
vendor: 1 bytes, line 771
771
772<script type="text/javascript" src="/js/src/post-details.js?v=5.1.4"></script>
772
773
774
775
776  
777
778
779  
779<script type="text/javascript" src="/js/src/bootstrap.js?v=5.1.4"></script>
779
780
781
782
783  
784
785
786  
787
788
789
790
791	
792
793
794
795
796
797  
798
799
800
801
802
803  
804
805
806
807
808
809
810
811
812  
812<script src="//code.bdstatic.com/npm/[email protected]/dist/av-min.js"></script>
812
813  
813<script src="//unpkg.com/valine/dist/Valine.min.js"></script>
813
814
815  
815<script type="text/javascript">
816    var GUEST = ['nick','mail','link'];
817    var guest = 'nick,mail,link';
818    guest = guest.split(',').filter(item=>{
819      return GUEST.indexOf(item)>-1;
820    });
821    new Valine({
822        el: '#comments' ,
823        verify: false,
824        notify: true,
825        appId: 'WWd60b61wU67AeJzg0yzDD1E-gzGzoHsz',
826        appKey: 'QjMAV3Hw76n6nhrDaxLtfoPE',
827        placeholder: '网络一线牵珍惜,珍惜这段缘\n 您可以填写邮箱,回复评论时,您会收到邮件通知。',
828        avatar:'mm',
829        guest_info:guest,
830        pageSize:'10' || 10,
831        serverURLs: 'https://wwd60b61.lc-cn-n1-shared.com'
832    });
833  </script>
833
834
835
836  
837
838  
838<script type="text/javascript">
839    // Popup Window;
840    var isfetched = false;
841    var isXml = true;
842    // Search DB path;
843    var search_path = "search.xml";
844    if (search_path.length === 0) {
845      search_path = "search.xml";
846    } else if (/json$/i.test(search_path)) {
847      isXml = false;
848    }
849    var path = "/" + search_path;
850    // monitor main search box;
851
852    var onPopupClose = function (e) {
853      $('.popup').hide();
854      $('#local-search-input').val('');
855      $('.search-result-list').remove();
856      $('#no-result').remove();
857      $(".local-search-pop-overlay").remove();
858      $('body').css('overflow', '');
859    }
860
861    function proceedsearch() {
862      $("body")
863        .append('<div class="search-popup-overlay local-search-pop-overlay"></div>')
864        .css('overflow', 'hidden');
865      $('.search-popup-overlay').click(onPopupClose);
866      $('.popup').toggle();
867      var $localSearchInput = $('#local-search-input');
868      $localSearchInput.attr("autocapitalize", "none");
869      $localSearchInput.attr("autocorrect", "off");
870      $localSearchInput.focus();
871    }
872
873    // search function;
874    var searchFunc = function(path, search_id, content_id) {
875      'use strict';
876
877      // start loading animation
878      $("body")
879        .append('<div class="search-popup-overlay local-search-pop-overlay">' +
880          '<div id="search-loading-icon">' +
881          '<i class="fa fa-spinner fa-pulse fa-5x fa-fw"></i>' +
882          '</div>' +
883          '</div>')
884        .css('overflow', 'hidden');
885      $("#search-loading-icon").css('margin', '20% auto 0 auto').css('text-align', 'center');
886
887      $.ajax({
888        url: path,
889        dataType: isXml ? "xml" : "json",
890        async: true,
891        success: function(res) {
892          // get the contents from search data
893          isfetched = true;
894          $('.popup').detach().appendTo('.header-inner');
895          var datas = isXml ? $("entry", res).map(function() {
896            return {
897              title: $("title", this).text(),
898              content: $("content",this).text(),
899              url: $("url" , this).text()
900            };
901          }).get() : res;
902          var input = document.getElementById(search_id);
903          var resultContent = document.getElementById(content_id);
904          var inputEventFunction = function() {
905            var searchText = input.value.trim().toLowerCase();
906            var keywords = searchText.split(/[\s\-]+/);
907            if (keywords.length > 1) {
908              keywords.push(searchText);
909            }
910            var resultItems = [];
911            if (searchText.length > 0) {
912              // perform local searching
913              datas.forEach(function(data) {
914                var isMatch = false;
915                var hitCount = 0;
916                var searchTextCount = 0;
917                var title = data.title.trim();
918                var titleInLowerCase = title.toLowerCase();
919                var content = data.content.trim().replace(/<[^>]+>/g,"");
920                var contentInLowerCase = content.toLowerCase();
921                var articleUrl = decodeURIComponent(data.url);
922                var indexOfTitle = [];
923                var indexOfContent = [];
924                // only match articles with not empty titles
925                if(title != '') {
926                  keywords.forEach(function(keyword) {
927                    function getIndexByWord(word, text, caseSensitive) {
928                      var wordLen = word.length;
929                      if (wordLen === 0) {
930                        return [];
931                      }
932                      var startPosition = 0, position = [], index = [];
933                      if (!caseSensitive) {
934                        text = text.toLowerCase();
935                        word = word.toLowerCase();
936                      }
937                      while ((position = text.indexOf(word, startPosition)) > -1) {
938                        index.push({position: position, word: word});
939                        startPosition = position + wordLen;
940                      }
941                      return index;
942                    }
943
944                    indexOfTitle = indexOfTitle.concat(getIndexByWord(keyword, titleInLowerCase, false));
945                    indexOfContent = indexOfContent.concat(getIndexByWord(keyword, contentInLowerCase, false));
946                  });
947                  if (indexOfTitle.length > 0 || indexOfContent.length > 0) {
948                    isMatch = true;
949                    hitCount = indexOfTitle.length + indexOfContent.length;
950                  }
951                }
952
953                // show search results
954
955                if (isMatch) {
956                  // sort index by position of keyword
957
958                  [indexOfTitle, indexOfContent].forEach(function (index) {
959                    index.sort(function (itemLeft, itemRight) {
960                      if (itemRight.position !== itemLeft.position) {
961                        return itemRight.position - itemLeft.position;
962                      } else {
963                        return itemLeft.word.length - itemRight.word.length;
964                      }
965                    });
966                  });
967
968                  // merge hits into slices
969
970                  function mergeIntoSlice(text, start, end, index) {
971                    var item = index[index.length - 1];
972                    var position = item.position;
973                    var word = item.word;
974                    var hits = [];
975                    var searchTextCountInSlice = 0;
976                    while (position + word.length <= end && index.length != 0) {
977                      if (word === searchText) {
978                        searchTextCountInSlice++;
979                      }
980                      hits.push({position: position, length: word.length});
981                      var wordEnd = position + word.length;
982
983                      // move to next position of hit
984
985                      index.pop();
986                      while (index.length != 0) {
987                        item = index[index.length - 1];
988                        position = item.position;
989                        word = item.word;
990                        if (wordEnd > position) {
991                          index.pop();
992                        } else {
993                          break;
994                        }
995                      }
996                    }
997                    searchTextCount += searchTextCountInSlice;
998                    return {
999                      hits: hits,
1000                      start: start,
1001                      end: end,
1002                      searchTextCount: searchTextCountInSlice
1003                    };
1004                  }
1005
1006                  var slicesOfTitle = [];
1007                  if (indexOfTitle.length != 0) {
1008                    slicesOfTitle.push(mergeIntoSlice(title, 0, title.length, indexOfTitle));
1009                  }
1010
1011                  var slicesOfContent = [];
1012                  while (indexOfContent.length != 0) {
1013                    var item = indexOfContent[indexOfContent.length - 1];
1014                    var position = item.position;
1015                    var word = item.word;
1016                    // cut out 100 characters
1017                    var start = position - 20;
1018                    var end = position + 80;
1019                    if(start < 0){
1020                      start = 0;
1021                    }
1022                    if (end < position + word.length) {
1023                      end = position + word.length;
1024                    }
1025                    if(end > content.length){
1026                      end = content.length;
1027                    }
1028                    slicesOfContent.push(mergeIntoSlice(content, start, end, indexOfContent));
1029                  }
1030
1031                  // sort slices in content by search text's count and hits' count
1032
1033                  slicesOfContent.sort(function (sliceLeft, sliceRight) {
1034                    if (sliceLeft.searchTextCount !== sliceRight.searchTextCount) {
1035                      return sliceRight.searchTextCount - sliceLeft.searchTextCount;
1036                    } else if (sliceLeft.hits.length !== sliceRight.hits.length) {
1037                      return sliceRight.hits.length - sliceLeft.hits.length;
1038                    } else {
1039                      return sliceLeft.start - sliceRight.start;
1040                    }
1041                  });
1042
1043                  // select top N slices in content
1044
1045                  var upperBound = parseInt('1');
1046                  if (upperBound >= 0) {
1047                    slicesOfContent = slicesOfContent.slice(0, upperBound);
1048                  }
1049
1050                  // highlight title and content
1051
1052                  function highlightKeyword(text, slice) {
1053                    var result = '';
1054                    var prevEnd = slice.start;
1055                    slice.hits.forEach(function (hit) {
1056                      result += text.substring(prevEnd, hit.position);
1057                      var end = hit.position + hit.length;
1058                      result += '<b class="search-keyword">' + text.substring(hit.position, end) + '</b>';
1059                      prevEnd = end;
1060                    });
1061                    result += text.substring(prevEnd, slice.end);
1062                    return result;
1063                  }
1064
1065                  var resultItem = '';
1066
1067                  if (slicesOfTitle.length != 0) {
1068                    resultItem += "<li><a href='" + articleUrl + "' class='search-result-title'>" + highlightKeyword(title, slicesOfTitle[0]) + "</a>";
1069                  } else {
1070                    resultItem += "<li><a href='" + articleUrl + "' class='search-result-title'>" + title + "</a>";
1071                  }
1072
1073                  slicesOfContent.forEach(function (slice) {
1074                    resultItem += "<a href='" + articleUrl + "'>" +
1075                      "<p class=\"search-result\">" + highlightKeyword(content, slice) +
1076                      "...</p>" + "</a>";
1077                  });
1078
1079                  resultItem += "</li>";
1080                  resultItems.push({
1081                    item: resultItem,
1082                    searchTextCount: searchTextCount,
1083                    hitCount: hitCount,
1084                    id: resultItems.length
1085                  });
1086                }
1087              })
1088            };
1089            if (keywords.length === 1 && keywords[0] === "") {
1090              resultContent.innerHTML = '<div id="no-result"><i class="fa fa-search fa-5x" /></div>'
1091            } else if (resultItems.length === 0) {
1092              resultContent.innerHTML = '<div id="no-result"><i class="fa fa-frown-o fa-5x" /></div>'
1093            } else {
1094              resultItems.sort(function (resultLeft, resultRight) {
1095                if (resultLeft.searchTextCount !== resultRight.searchTextCount) {
1096                  return resultRight.searchTextCount - resultLeft.searchTextCount;
1097                } else if (resultLeft.hitCount !== resultRight.hitCount) {
1098                  return resultRight.hitCount - resultLeft.hitCount;
1099                } else {
1100                  return resultRight.id - resultLeft.id;
1101                }
1102              });
1103              var searchResultList = '<ul class=\"search-result-list\">';
1104              resultItems.forEach(function (result) {
1105                searchResultList += result.item;
1106              })
1107              searchResultList += "</ul>";
1108              resultContent.innerHTML = searchResultList;
1109            }
1110          }
1111
1112          if ('auto' === 'auto') {
1113            input.addEventListener('input', inputEventFunction);
1114          } else {
1115            $('.search-icon').click(inputEventFunction);
1116            input.addEventListener('keypress', function (event) {
1117              if (event.keyCode === 13) {
1118                inputEventFunction();
1119              }
1120            });
1121          }
1122
1123          // remove loading animation
1124          $(".local-search-pop-overlay").remove();
1125          $('body').css('overflow', '');
1126
1127          proceedsearch();
1128        }
1129      });
1130    }
1131
1132    // handle and trigger popup window;
1133    $('.popup-trigger').click(function(e) {
1134      e.stopPropagation();
1135      if (isfetched === false) {
1136        searchFunc(path, 'local-search-input', 'local-search-result');
1137      } else {
1138        proceedsearch();
1139      };
1140    });
1141
1142    $('.popup-btn-close').click(onPopupClose);
1143    $('.popup').click(function(e){
1144      e.stopPropagation();
1145    });
1146    $(document).on('keyup', function (event) {
1147      var shouldDismissSearchPopup = event.which === 27 &&
1148        $('.search-popup').is(':visible');
1149      if (shouldDismissSearchPopup) {
1150        onPopupClose();
1151      }
1152    });
1153  </script>
1153
1154
1155
1156
1157
1158
1159  
1160
1161  
1162
1163  
1164<script>
1165(function(){
1166    var bp = document.createElement('script');
1167    var curProtocol = window.location.protocol.split(':')[0];
1168    if (curProtocol === 'https') {
1169        bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
1170    }
1171    else {
1172        bp.src = 'http://push.zhanzhang.baidu.com/push.js';
1173    }
1174    var s = document.getElementsByTagName("script")[0];
1175    s.parentNode.insertBefore(bp, s);
1176})();
1177</script>
1177
1178
1179
1180  
1181  
1182
1183  
1184
1185  
1186
1187  
1188
1189  
1190  <!-- 代码块复制功能 -->
1191  <!-- 代码块复制功能 -->
1192<script type="text/javascript" src="/js/src/clipboard.min.js"></script>
1192  
1193<script type="text/javascript" src="/js/src/clipboard-use.js"></script>
1193
1194  
1195  <!-- 音乐 
1196  <link rel="stylesheet" href="/dist/APlayer.min.css">
1197<div id="aplayer"></div>
1198<script type="text/javascript" src="/dist/APlayer.min.js"></script>
vendor: 1 bytes, line 1198
1198
1199<script type="text/javascript" src="/dist/music.js"></script>
1199
1200  -->
1201
1202  <!-- 动态背景 
1203  
1203<script type="text/javascript" src="/js/src/dynamic_bg.js"></script>
1203
1204  -->
1205  
1206</body>
1207</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.