在GitHub上搭建静态博客

Create Hexo Blog

This post is an guidance of building static blog on github pages, my personal blog is generated with Hexo NexT theme.

Run time :

Ubuntu 16.04
Node.js

Install Node.js

Because nvm (node version manager) is the best tool to install Node.js, you should get nvmbefore installing stable node.js :

$ curl https://raw.github.com/creationix/nvm/master/install.sh | sh
$ wget -qO- https://raw.github.com/creationix/nvm/master/install.sh | sh
$ nvm install stable # install stable node.js (which include npm/Node Package Manager)

Install Hexo (Static Blog Generator in Node.js)

Hexo, an excellent blog framework, can help you build a beautiful static site within several minutes. The recommended language is Markdown when you post your passage.

$ npm install -g hexo-cli

Initialize a Hexo Site

Now, it’s time to initialize your first Hexo site :

$ hexo init yourblog # 'yourblog' is a file to sotre your blog project
$ cd yourblog # all operations is executed under this directory
$ npm install # install some module, whose info is stored in `yourblog/package.josn`

Once initialised, here’s what your project folder will look like :

.
├── _config.yml
├── package.json
├── scaffolds
├── source
|   ├── _drafts
|   └── _posts
└── themes

yourblog/_config.yml is a site configuration file, you can customize your site info here.

source/_posts is used to store your posts, you can write posts here after reading Hexo doc and Markdown tutorial. And hexo init command creates a Hello-World post for you, you will deploy this post in github pages.

You can download your favorite blog themes in themes , then activate one from theme in yourblog/_config.yml , and you can also modify your themes in themes according to your preference.

Now, let’s start a local server to run your blog :

$ hexo server # execute this command in your blog path

By default, this is at http://localhost:4000/.

Install NexT Theme

All blog themes should be placed in yourblog/themes, and the latest version NexT theme from Github public repository is recommended.

$ cd yourblog
$ git clone https://github.com/iissnan/hexo-theme-next themes/next # necessary to learn [git](https://git-scm.com/doc)

Landscape theme is applied by default, So you have to enable NexT theme like this by edit yourblog/_config.yml:

theme: next # a space before next

Now, you can run NexT theme blog in local machine by hexo s.

Next, you should create your personal github pages to host your static blog.

Create User Pages in Github

In github pages, there three types of gh-pages: User Pages, Organization Pages and Project Pages. User & Organization Pages are created for user and organization, Project Pages serve for project repositories. If you’d like to create Organization Pages and Project Pages or to learn details about them, see this User, Organization, and Project Pages.

User Pages live in a special repository dedicated to GitHub Pages files. You will need to name this repository with the account name.

You must use the username.github.io naming scheme.

Content from the master branch will be used to build and publish your GitHub Pages site.

@DevDocshelp.github.com/articles/user-organization-and-project-pages

By default, you create master branch of User Pages repository by this step:

Create User Pages Repository

Deploy Blog

Hexo provides a fast and easy command to help users to deploy blogs through git or other methods. But you have to install corresponding deployer and configure yourblog/_config.yml(take git type as example):

$ npm install hexo-deployer-git --save # please execute this command under your hexo project

Then edit yourblog/_config.yml like this:

deploy:
  type: git
    repo: [email protected]:username/username.github.io.git #please edit according to your github user name
    branch: master

Right now, you can use hexo d or hexo deploy to deploy you static blog. Https://username.github.io is the home page of your github user pages.

Configure/Modify NexT Theme

Change Scheme

NexT provides three schemes of theme: Muse, Mist and Pisces, can be assign by editing yourblog/themes/next/_config.yml :

#scheme: Muse  #default
#scheme: Mist
scheme: Pisces #recommanded

Menu

Besides, menu can also be personalized :

yourblog/themes/next/_config.yml
menu:
  home: /
  archives: /archives #created by default
  categories: /categories
  tags: /tags

Then, you need to create categories and tags :

$ cd yourblog
$ hexo new page tags
$ hexo new page categories

Editing yourblog/source/categories/index.md and yourblog/source/tags/index.md to add counterpart types:

---
title: Tags #Category
date: 2016-08-25 12:50:01
type: "tags" #categories
---

Favicon

Put your favicon.ico into hexo-site/source/ directory or cloud storage and add url to configuration.

favicon: http://ocb49zgcj.bkt.clouddn.com/favicon.ico

More theme configurations are listed here, which guides you setting fonts, syntax highlight scheme and so on.

Configure Hexo

yourblog/_config.yml is site configuration, you can setting avatar, author name, site description, Comment Plugin, Search Engine, etc.

Avatar & Author Name & Site Description

Add avatar author description item in Hexo _config.yml:

yourblog/_config.yml

avatar: http://example.com/avatar.png # or relative path /images/avatar.png, please place avatar in yourblog/source/images/

author: your author name

description: 革命尚未成功,同志仍需努力

Comment Plugin

By default, Hexo supports DISQUS comment system, NexT supports duoshuo commetn system. Adding disqus short name or duoshuo short name in yourblog/_config.yml to activate one of them.

disqus_shortname: your-disqus-shortname
duoshuo_shortname: your-duoshuo-shortname
# short names are created by signing up an account in DISQUS or DuoShuo.

Local Search Engine

Before adding local search engine in yourblog/_config.yml, please install hexo-generator-search :

$ npm install hexo-generator-search --save # executed in yourblog/

Then, adding these items:

yourblog/_config.yml
search:
  path: search.xml
  field: post
url: http://Captain-Alan.top # edit according to your site directory

More configurations can be find in this blog.

Create First Post

Initialize a Post

Posts are created by a command executed under yourblog/:

$ hexo new post 
$ hexo new post "Building Blog on Github Pages with Hexo" # example
</code></pre> 
 <p>Then, you can edit your first post by markdown language and tag plugins, like this:</p> 
 <p></p> 
 <div class="image-package"> 
  <div class="image-container" style="max-width: 361px; max-height: 243px;"> 
   <div class="image-view"> 
    <a href="http://img.e-com-net.com/image/info10/efc03671b0ac4962a2eacc6e5063560e.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info10/efc03671b0ac4962a2eacc6e5063560e.jpg" width="361" height="243" alt="在GitHub上搭建静态博客_第1张图片" style="border:1px solid black;"></a> 
   </div> 
  </div> 
  <div class="image-caption">
    Markdown Language and Tag Plugins 
  </div> 
 </div> 
 <p></p> 
 <p>Just several sentences, it is rendered as standard HTML:</p> 
 <p></p> 
 <div class="image-package"> 
  <div class="image-container" style="max-width: 540px; max-height: 243px;"> 
   <div class="image-view"> 
    <a href="http://img.e-com-net.com/image/info10/d0085feaf113426eaf6632565fc0d99f.png" target="_blank"><img src="http://img.e-com-net.com/image/info10/d0085feaf113426eaf6632565fc0d99f.png" width="540" height="243" alt="在GitHub上搭建静态博客_第2张图片" style="border:1px solid black;"></a> 
   </div> 
  </div> 
  <div class="image-caption">
    Markdown Language and Tag Plugins Renderings 
  </div> 
 </div> 
 <p></p> 
 <p>If you want to learn more about tag plugins syntax rules, you may visit this post.</p> 
 <h3>Front-matter</h3> 
 <p>Once the post is created, several lines at the very beginning of an article, starting & ending with <code>---</code>, are called <code>Front-matter</code>. There are 4 important settings you should know:</p> 
 <p><strong>title</strong> : your post title, default assigned by command</p> 
 <p><strong>date</strong> : your post created time, default assigned by hexo when executing command</p> 
 <p><strong>categories</strong> : we often assign a category for each post, hexo will create pages for each category</p> 
 <p><strong>tags</strong> : each post can be assigned one or several tags, hexo will create pages for each tag.</p> 
 <p>If you have multiple tags for a post, you can write your Front-matter like this:</p> 
 <pre><code>tags: [Hexo, NexT Theme, Static Blog, Github Pages]
</code></pre> 
 <h2>Quickly Generate & Deploy</h2> 
 <p>These 3 scripts may help you quickly generate your blog and deploy in github pages.</p> 
 <h3>Compress Scripts</h3> 
 <p><strong>gulpfile.js</strong> is used to compress scripts. While before execute this script, you should install several plugins:</p> 
 <pre><code>$ npm install gulp --save # all commands executed under youblog/
$ npm install gulp-htmlclean --save
$ npm install gulp-htmlmin --save
$ npm install ulp-imagemin --save
$ npm install gulp-minify-css --save
$ npm install gulp-uglify --save
</code></pre> 
 <pre><code>yourblog/gulpfile.js
var gulp = require('gulp');
var minifycss = require('gulp-minify-css');
var uglify = require('gulp-uglify');
var htmlmin = require('gulp-htmlmin');
var htmlclean = require('gulp-htmlclean');
// requre gulp-imagemin module
var imagemin = require('gulp-imagemin')
// compress css under youblog/public/
gulp.task('minify-css', function() {
    return gulp.src('./public/**/*.css')
        .pipe(minifycss())
        .pipe(gulp.dest('./public'));
});
// compress html under yourblog/public/
gulp.task('minify-html', function() {
  return gulp.src('./public/**/*.html')
    .pipe(htmlclean())
    .pipe(htmlmin({
         removeComments: true,
         minifyJS: true,
         minifyCSS: true,
         minifyURLs: true,
    }))
    .pipe(gulp.dest('./public'))
});
// compress js under youblog/public/
gulp.task('minify-js', function() {
    return gulp.src('./public/**/*.js')
        .pipe(uglify())
        .pipe(gulp.dest('./public'));
});
// compress images
// command  `gulp images` to compress images
gulp.task('images', function () {
    // 1. find images
    gulp.src('./photos/*.*')
    // 2. compress images
        .pipe(imagemin({
            progressive: true
        }))
    // 3. save as 
        .pipe(gulp.dest('dist/images'))
});
// command `gulp` to compress html, css, js, images
gulp.task('default', [
    'minify-html','minify-css','minify-js','images'
]);
</code></pre> 
 <h3>Generate & Deploy</h3> 
 <p>This <code>yourblog/deploy.sh</code> is consisted of several commands, which can help you easily deploy.</p> 
 <pre><code>#!/usr/bin/env bash
hexo clean # clean yourblog/public file and db.json
hexo g # generate yourblog/public
gulp # compress your scripts
hexo d # upbload/deploy to github
</code></pre> 
 <p>Before executing <code>./deploy.sh</code> in <code>yourblog/</code>, you should grant deploy.sh execute permissions:</p> 
 <pre><code>$ chmod +x deploy.sh
</code></pre> 
 <h3>Push Whole Blog Project</h3> 
 <p>If you want to store your blog project in a new branch <code>page-hexo-source</code>, <code>yourblog/UploadtoGH.sh</code> may easily solve.</p> 
 <pre><code>#!/usr/bin/env bash
curtime=$(date +%Y-%m-%d-%H%M)
git add .
git commit -m $curtime
git push -u origin page-hexo-source # branch named by yourself
</code></pre> 
 <p>Before executing this scripts, you should create a branch <code>page-hexo-source</code> and switch to it.</p> 
 <pre><code>$ git branch page-hexo-source
$ git checkout page-hexo-source
$ chmod +x UploadtoGH.sh
</code></pre> 
 <p>THX for reading!</p> 
</article>
                            </div>
                        </div>
                    </div>
                    <!--PC和WAP自适应版-->
                    <div id="SOHUCS" sid="1282112230116048896"></div>
                    <script type="text/javascript" src="/views/front/js/chanyan.js"></script>
                    <!-- 文章页-底部 动态广告位 -->
                    <div class="youdao-fixed-ad" id="detail_ad_bottom"></div>
                </div>
                <div class="col-md-3">
                    <div class="row" id="ad">
                        <!-- 文章页-右侧1 动态广告位 -->
                        <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_1"> </div>
                        </div>
                        <!-- 文章页-右侧2 动态广告位 -->
                        <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_2"></div>
                        </div>
                        <!-- 文章页-右侧3 动态广告位 -->
                        <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_3"></div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <div class="container">
        <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(在GitHub上搭建静态博客)</h4>
        <div id="paradigm-article-related">
            <div class="recommend-post mb30">
                <ul class="widget-links">
                    <li><a href="/article/1881230934003478528.htm"
                           title="数据类型 char" target="_blank">数据类型 char</a>
                        <span class="text-muted">泥土编程</span>
<a class="tag" taget="_blank" href="/search/c%E8%AF%AD%E8%A8%80/1.htm">c语言</a>
                        <div>char(字符型)字符类型可以表示单个字符,字符类型是char,char是1个字节(可以存字母或者数字),多个字符称为字符串,在C语言中使用char数组表示,数组不是基本数据类型,而是构造类型。字符类型使用细节\n字符常量是用单引号('')括起来的单个字符。例如:charc1='a';charc3='9';\n\nC中还允许使用转义字符‘\\’来将其后的字符转变为特殊字符型常量。例如:charc3</div>
                    </li>
                    <li><a href="/article/1881230805678747648.htm"
                           title="【一点分享】Python数据分析(1):Jupyterlab搭建,练习Python和Sql的神器。" target="_blank">【一点分享】Python数据分析(1):Jupyterlab搭建,练习Python和Sql的神器。</a>
                        <span class="text-muted">或许能用上</span>
<a class="tag" taget="_blank" href="/search/Python/1.htm">Python</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a>
                        <div>在之前Mysql专栏分享过程中,一直用的Sequel客户端进行sql编写和说明注解,及时执行的结果不能保存,得写一条sql截图一次,麻烦。而Jupyterlab就可以很好解决这个问题,代码过程与执行结果都会相邻挨着保留,随时可以查看,导出或截图都非常方便。而且,Jupyterlab还天然支持Python环境,学Python甚是方便,单步执行和结果就是亮点。其他的shell等各种语言环境也可以安装插</div>
                    </li>
                    <li><a href="/article/1881230301619875840.htm"
                           title="adb devices 出现offline的无敌解决办法" target="_blank">adb devices 出现offline的无敌解决办法</a>
                        <span class="text-muted">马丁•路德•王</span>
<a class="tag" taget="_blank" href="/search/uiautomator2/1.htm">uiautomator2</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a>
                        <div>1.在跑自动化的时候电脑连了10个手机,执行半小时之后就出现offline的情况,网上找了N多办法,最后还是要放大招C:\Users\有赞>adbdevicesListofdevicesattached7d6lsctcibau228poffline8d69dqaql22h2hkrdevicecafewkivpf6p2222devicececelntkrwe22222offlinemfdexo55e</div>
                    </li>
                    <li><a href="/article/1881230046799130624.htm"
                           title="LeetCode 771. 宝石与石头" target="_blank">LeetCode 771. 宝石与石头</a>
                        <span class="text-muted">不玩return的马可乐</span>
<a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95%2F%E9%A2%98%E5%BA%93/1.htm">算法/题库</a><a class="tag" taget="_blank" href="/search/leetcode/1.htm">leetcode</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E8%81%8C%E5%9C%BA%E5%92%8C%E5%8F%91%E5%B1%95/1.htm">职场和发展</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a>
                        <div>在本篇博客中,我们将探讨如何解决LeetCode上的第771题——宝石与石头。这个问题涉及到字符串的处理和集合的使用,是一个典型的编程问题,适合初学者练习。解题思路解决这个问题的关键在于如何高效地检查stones中的每个字符是否在jewels中。我们可以通过以下步骤来实现:使用集合存储宝石类型:首先,将jewels中的所有字符存储在一个集合中,这样可以在O(1)时间内检查一个字符是否是宝石。遍历石</div>
                    </li>
                    <li><a href="/article/1881229914024243200.htm"
                           title="colyseus/auth 模块详解" target="_blank">colyseus/auth 模块详解</a>
                        <span class="text-muted">maply</span>
<a class="tag" taget="_blank" href="/search/Colyseus/1.htm">Colyseus</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E6%B8%B8%E6%88%8F%E7%A8%8B%E5%BA%8F/1.htm">游戏程序</a><a class="tag" taget="_blank" href="/search/%E6%B8%B8%E6%88%8F%E5%BC%95%E6%93%8E/1.htm">游戏引擎</a><a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a>
                        <div>@colyseus/auth模块详解@colyseus/auth是Colyseus提供的一个模块,用于处理用户认证和授权操作,尤其是在构建多人在线游戏和实时应用时,帮助开发者轻松实现与Colyseus服务器的身份验证集成。以下是它的详细介绍:功能@colyseus/auth模块为开发者提供了以下功能:用户注册和登录支持通过电子邮件、用户名、密码等方式注册用户,并提供基于凭证的登录功能。第三方认证支</div>
                    </li>
                    <li><a href="/article/1881229916637294592.htm"
                           title="如何利用 Dexie.js 管理前端状态或持久化复杂数据" target="_blank">如何利用 Dexie.js 管理前端状态或持久化复杂数据</a>
                        <span class="text-muted">maply</span>
<a class="tag" taget="_blank" href="/search/Node.js/1.htm">Node.js</a><a class="tag" taget="_blank" href="/search/vue/1.htm">vue</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E7%8A%B6%E6%80%81%E6%A8%A1%E5%BC%8F/1.htm">状态模式</a><a class="tag" taget="_blank" href="/search/Dexie.js/1.htm">Dexie.js</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E7%8A%B6%E6%80%81%E7%AE%A1%E7%90%86/1.htm">前端状态管理</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E7%8A%B6%E6%80%81%E6%8C%81%E4%B9%85%E5%8C%96/1.htm">前端状态持久化</a><a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a>
                        <div>使用Dexie.js管理前端状态或持久化复杂数据Dexie.js是一个功能强大的IndexedDB封装库,不仅适用于简单的离线存储,还非常适合管理前端状态和持久化复杂数据。以下是如何利用Dexie.js管理前端状态或持久化复杂数据的详细介绍:1.Dexie.js管理前端状态的优势数据持久化:将应用状态存储在浏览器中,即使刷新页面或关闭浏览器,状态仍然存在。异步数据操作:支持异步读取和写入,提高性能</div>
                    </li>
                    <li><a href="/article/1881229661774606336.htm"
                           title="URI 未注册(设置 语言和框架 架构和 DTD)" target="_blank">URI 未注册(设置 语言和框架 架构和 DTD)</a>
                        <span class="text-muted">m0_74825260</span>
<a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>一、问题描述:在springboot项目中的resources中新建mybatis-config.xml文件时,从mybatis文档中复制的代码报错:URI未注册(设置|语言和框架|架构和DTD)二、解决:在Springboot项目的设置->架构和DTD中添加红色的网址(http://mybatis.org/dtd/mybatis-3-config.dtd)</div>
                    </li>
                    <li><a href="/article/1881229409541746688.htm"
                           title="SpringBoot3使用Swagger3" target="_blank">SpringBoot3使用Swagger3</a>
                        <span class="text-muted">m0_74825260</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                        <div>SpringBoot3使用Swagger3项目中的后端接口进行简单的前端展示一、依赖引入二、快速启动1.在application.yml中配置2.或者properties文件,则配置3.启动项目访问swagger三、使用注解标注接口Swagger配置文件Swagger注解迁移举例五种常用@Api@ApiOperation@ApiImplicitParam@ApiModel@ApiModelProp</div>
                    </li>
                    <li><a href="/article/1881228398890643456.htm"
                           title="spring和mybatis面试题" target="_blank">spring和mybatis面试题</a>
                        <span class="text-muted">阿贾克斯的黎明</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/mybatis/1.htm">mybatis</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                        <div>一、Spring框架相关面试题简述Spring的核心概念和主要功能。回答要点:Spring的核心是控制反转(IoC)和面向切面编程(AOP)。主要功能包括依赖注入、事务管理、面向切面编程、MVC框架支持等。答案:Spring的核心概念是控制反转(IoC)和面向切面编程(AOP)。IoC是一种设计思想,将对象的创建和管理交给容器来处理,而不是在代码中显式地创建对象。AOP是一种编程思想,将横切关注点</div>
                    </li>
                    <li><a href="/article/1881228269173403648.htm"
                           title="基于YOLOv5、YOLOv8和YOLOv10的自助售货机商品检测:深度学习实践与应用" target="_blank">基于YOLOv5、YOLOv8和YOLOv10的自助售货机商品检测:深度学习实践与应用</a>
                        <span class="text-muted">2025年数学建模美赛</span>
<a class="tag" taget="_blank" href="/search/YOLO/1.htm">YOLO</a><a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E7%9B%AE%E6%A0%87%E8%B7%9F%E8%B8%AA/1.htm">目标跟踪</a><a class="tag" taget="_blank" href="/search/%E7%9B%AE%E6%A0%87%E6%A3%80%E6%B5%8B/1.htm">目标检测</a>
                        <div>引言自助售货机已经成为现代零售和自动化销售领域的重要组成部分。在自助售货机中,商品的检测与管理至关重要。通过精准的商品检测技术,售货机可以在商品售出后自动更新库存,并提供准确的商品信息反馈。然而,在复杂的环境下进行商品检测是一个具有挑战性的问题,尤其是在商品种类繁多、摆放方式多样以及光照条件变化较大的情况下。近年来,基于深度学习的目标检测算法,特别是YOLO(YouOnlyLookOnce)系列模</div>
                    </li>
                    <li><a href="/article/1881228268502315008.htm"
                           title="Python BI 数据清洗和整合:提升数据质量的关键步骤" target="_blank">Python BI 数据清洗和整合:提升数据质量的关键步骤</a>
                        <span class="text-muted">菜狗小测试</span>
<a class="tag" taget="_blank" href="/search/Python%E6%8A%80%E6%9C%AF%E4%B8%93%E6%A0%8F/1.htm">Python技术专栏</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>在商业智能(BI)领域,数据是核心资产。然而,原始数据往往存在各种问题,如缺失值、重复数据、数据格式不一致等。数据清洗和整合是将这些原始数据转化为高质量、可用数据的关键过程。在这篇博客中,我们将使用Python来展示如何进行BI数据的清洗和整合,并详细讲解代码。一、数据清洗和整合的重要性在BI项目中,不准确或不一致的数据可能导致错误的分析结果和决策。数据清洗可以去除数据中的噪声和错误,而整合则能将</div>
                    </li>
                    <li><a href="/article/1881228016290426880.htm"
                           title="第15章:Python TDD应对货币类开发变化(二)" target="_blank">第15章:Python TDD应对货币类开发变化(二)</a>
                        <span class="text-muted">Tester_孙大壮</span>
<a class="tag" taget="_blank" href="/search/%E6%B5%8B%E8%AF%95%E9%A9%B1%E5%8A%A8%E5%BC%80%E5%8F%91/1.htm">测试驱动开发</a><a class="tag" taget="_blank" href="/search/%E9%A9%B1%E5%8A%A8%E5%BC%80%E5%8F%91/1.htm">驱动开发</a>
                        <div>写在前面这本书是我们老板推荐过的,我在《价值心法》的推荐书单里也看到了它。用了一段时间Cursor软件后,我突然思考,对于测试开发工程师来说,什么才更有价值呢?如何让AI工具更好地辅助自己写代码,或许优质的单元测试是一个切入点。就我个人而言,这本书确实很有帮助。第一次读的时候,很多细节我都不太懂,但将书中内容应用到工作中后,我受益匪浅。比如面对一些让人抓狂的代码设计时,书里的方法能让我逐步深入理解</div>
                    </li>
                    <li><a href="/article/1881227637767073792.htm"
                           title="如何使用python爬图片" target="_blank">如何使用python爬图片</a>
                        <span class="text-muted">小雨帅</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>一、说明使用Python爬取图片(或其他类型的文件)通常是为了自动化从互联网上下载图片的过程,这样可以节省人工下载的时间和精力,尤其是在需要大量图片时,下面将介绍两种方法,方法二步骤稍微多些,但可以爬取防爬虫的网站上的图片。二、准备安装python,谷歌浏览器,下载chromedriver,注意chromedriver的版本必须兼容谷歌浏览器,否则在运行python代码时会报错,在windows操</div>
                    </li>
                    <li><a href="/article/1881227638224252928.htm"
                           title="第2章:Python TDD构建Dollar类基础" target="_blank">第2章:Python TDD构建Dollar类基础</a>
                        <span class="text-muted">Tester_孙大壮</span>
<a class="tag" taget="_blank" href="/search/%E6%B5%8B%E8%AF%95%E9%A9%B1%E5%8A%A8%E5%BC%80%E5%8F%91/1.htm">测试驱动开发</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a>
                        <div>写在前面这本书是我们老板推荐过的,我在《价值心法》的推荐书单里也看到了它。用了一段时间Cursor软件后,我突然思考,对于测试开发工程师来说,什么才更有价值呢?如何让AI工具更好地辅助自己写代码,或许优质的单元测试是一个切入点。就我个人而言,这本书确实很有帮助。第一次读的时候,很多细节我都不太懂,但将书中内容应用到工作中后,我受益匪浅。比如面对一些让人抓狂的代码设计时,书里的方法能让我逐步深入理解</div>
                    </li>
                    <li><a href="/article/1881226630651768832.htm"
                           title="Java 网络编程(二)—— TCP流套接字编程" target="_blank">Java 网络编程(二)—— TCP流套接字编程</a>
                        <span class="text-muted">熵减玩家</span>
<a class="tag" taget="_blank" href="/search/JavaSE/1.htm">JavaSE</a><a class="tag" taget="_blank" href="/search/%E8%BF%9B%E9%98%B6/1.htm">进阶</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/tcp/1.htm">tcp</a>
                        <div>TCP和UDP的区别在传输层,TCP协议是有连接的,可靠传输,面向字节流,全双工而UDP协议是无连接的,不可靠传输,面向数据报,全双工有连接和无连接的区别是在进行网络通信的时候,通信双方有没有保存对端的地址信息,即假设A和B进行通信,A保存了B的地址信息,B也保存了A的地址信息,此时双方都知道和谁建立了连接,这就是有连接的通信,在之前的UDP数据报套接字编程中就提到过UDP是无连接的,所以在发送数</div>
                    </li>
                    <li><a href="/article/1881226126794223616.htm"
                           title="IDEA出现URI is not registered (Settings | Languages & Frameworks | Schemas and DTDs)" target="_blank">IDEA出现URI is not registered (Settings | Languages & Frameworks | Schemas and DTDs)</a>
                        <span class="text-muted">Monly21</span>
<a class="tag" taget="_blank" href="/search/IDEA/1.htm">IDEA</a><a class="tag" taget="_blank" href="/search/intellij-idea/1.htm">intellij-idea</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/ide/1.htm">ide</a>
                        <div>在IDEA的xml资源文件中出现URIisnotregistered错误在Settings中增加一个新的DTDs</div>
                    </li>
                    <li><a href="/article/1881225243486384128.htm"
                           title="超越 EasyExcel 的新一代 Excel 处理神器" target="_blank">超越 EasyExcel 的新一代 Excel 处理神器</a>
                        <span class="text-muted">了尘风镜</span>
<a class="tag" taget="_blank" href="/search/excel/1.htm">excel</a><a class="tag" taget="_blank" href="/search/windows/1.htm">windows</a>
                        <div>简介FastExcel是由原EasyExcel作者在阿里巴巴宣布停止维护EasyExcel之后推出的升级版框架。它继承了EasyExcel的所有优点,并且在性能和功能上进行了显著的提升和创新。FastExcel的特点高性能读写:FastExcel专注于性能优化,能够高效处理大规模的Excel数据,显著降低内存占用。简单易用:提供了简洁直观的API,使得开发者可以轻松集成到项目中,无论是简单的Exc</div>
                    </li>
                    <li><a href="/article/1881224487114960896.htm"
                           title="SpringBoot使用令牌桶算法+拦截器+自定义注解+自定义异常实现简单的限流" target="_blank">SpringBoot使用令牌桶算法+拦截器+自定义注解+自定义异常实现简单的限流</a>
                        <span class="text-muted">Java精选</span>
<a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/boot/1.htm">boot</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                        <div>令牌桶在高并发的情况下,限流是后端常用的手段之一,可以对系统限流、接口限流、用户限流等,本文就使用令牌桶算法+拦截器+自定义注解+自定义异常实现限流的demo。令牌桶思想大小固定的令牌桶可自行以恒定的速率源源不断地产生令牌。如果令牌不被消耗,或者被消耗的速度小于产生的速度,令牌就会不断地增多,直到把桶填满。后面再产生的令牌就会从桶中溢出。最后桶中可以保存的最大令牌数永远不会超过桶的大小。然后每个访</div>
                    </li>
                    <li><a href="/article/1881223353528807424.htm"
                           title="【分类】【损失函数】处理类别不平衡:CEFL 和 CEFL2 损失函数的实现与应用" target="_blank">【分类】【损失函数】处理类别不平衡:CEFL 和 CEFL2 损失函数的实现与应用</a>
                        <span class="text-muted">丶2136</span>
<a class="tag" taget="_blank" href="/search/AI/1.htm">AI</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E7%B1%BB/1.htm">分类</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E6%8D%9F%E5%A4%B1%E5%87%BD%E6%95%B0/1.htm">损失函数</a>
                        <div>引言在深度学习中的分类问题中,类别不平衡问题是常见的挑战之一。尤其在面部表情分类任务中,不同表情类别的样本数量可能差异较大,比如“开心”表情的样本远远多于“生气”表情。面对这种情况,普通的交叉熵损失函数容易导致模型过拟合到大类样本,忽略少数类样本。为了有效解决类别不平衡问题,Class-balancedExponentialFocalLoss(CEFL)和Class-balancedExponen</div>
                    </li>
                    <li><a href="/article/1881223350366302208.htm"
                           title="【Docker】在 CentOS 上安装 Docker 的完整指南" target="_blank">【Docker】在 CentOS 上安装 Docker 的完整指南</a>
                        <span class="text-muted">丶2136</span>
<a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/docker/1.htm">docker</a><a class="tag" taget="_blank" href="/search/docker/1.htm">docker</a><a class="tag" taget="_blank" href="/search/centos/1.htm">centos</a>
                        <div>目录一、准备工作二、检查系统版本三、安装Docker1.依赖包安装2.添加Docker仓库3.安装Docker四、启动与测试Docker1.启动Docker服务2.验证Docker是否安装成功3.运行HelloWorld容器五、设置Docker自动启动六、常用Docker命令七、卸载Docker总结Docker是现代软件开发中不可或缺的工具,它提供了一种轻量级的虚拟化解决方案,帮助开发者更方便地打</div>
                    </li>
                    <li><a href="/article/1881223224147111936.htm"
                           title="【Docker】在 Ubuntu 上安装 Docker 的详细指南" target="_blank">【Docker】在 Ubuntu 上安装 Docker 的详细指南</a>
                        <span class="text-muted">丶2136</span>
<a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/docker/1.htm">docker</a><a class="tag" taget="_blank" href="/search/docker/1.htm">docker</a><a class="tag" taget="_blank" href="/search/ubuntu/1.htm">ubuntu</a>
                        <div>目录一、准备工作二、检查系统版本三、安装Docker1.安装必要的依赖2.添加Docker的官方GPG密钥3.添加Docker的APT源4.更新APT包索引5.安装DockerCE6.验证Docker是否安装成功四、启动与测试Docker1.启动Docker服务2.运行HelloWorld容器五、设置Docker自动启动1.启用Docker服务2.检查服务状态3.启动Docker服务(如未运行)4</div>
                    </li>
                    <li><a href="/article/1881223097743372288.htm"
                           title="软件工程练习:模块化,单元测试,回归测试,TDD" target="_blank">软件工程练习:模块化,单元测试,回归测试,TDD</a>
                        <span class="text-muted">SoftwareTeacher</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8%80/1.htm">编程语言</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AE/1.htm">大数据</a>
                        <div>这是《构建之法》实战教学的一部分。适合作为同学们的第二个程序作业。第一个程序作业:请看“概论”一章的练习,或者老师的题目,例如这个。作业要求:软件工程的作业越来越有意思了,我们在第一个作业中,用各种语言实现了一个命令行的四则运算小程序。我们看看如果要把我们的小程序升级为能稳定运行,解决用户问题的软件,应该怎么做。建议在做下面的题目的时候,采用结对编程的方式,在练习中,让同学们学会模块化编程,信息隐</div>
                    </li>
                    <li><a href="/article/1881222467985403904.htm"
                           title="【Golang 面试题】每日 3 题(三十八)" target="_blank">【Golang 面试题】每日 3 题(三十八)</a>
                        <span class="text-muted">Pandaconda</span>
<a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/Golang/1.htm">Golang</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95%E4%B8%93%E6%A0%8F/1.htm">面试专栏</a><a class="tag" taget="_blank" href="/search/golang/1.htm">golang</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/go/1.htm">go</a><a class="tag" taget="_blank" href="/search/%E7%BB%8F%E9%AA%8C%E5%88%86%E4%BA%AB/1.htm">经验分享</a>
                        <div>✍个人博客:Pandaconda-CSDN博客专栏地址:http://t.csdnimg.cn/UWz06专栏简介:在这个专栏中,我将会分享Golang面试中常见的面试题给大家~❤️如果有收获的话,欢迎点赞收藏,您的支持就是我创作的最大动力112.什么操作叫做原子操作?在并发编程中,原子操作是一种不可中断的操作,要么全部完成,要么全部不完成。这意味着在多线程环境下,原子操作可以保证数据的一致性和可</div>
                    </li>
                    <li><a href="/article/1881221707285458944.htm"
                           title="免费PDF处理工具大揭秘:合并、分割、压缩一键搞定" target="_blank">免费PDF处理工具大揭秘:合并、分割、压缩一键搞定</a>
                        <span class="text-muted">IT技术视界</span>
<a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/PC%E5%AE%9E%E7%94%A8%E5%B7%A5%E5%85%B7/1.htm">PC实用工具</a><a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/IT%E6%8A%80%E6%9C%AF%E8%A7%86%E7%95%8C/1.htm">IT技术视界</a><a class="tag" taget="_blank" href="/search/pdf/1.htm">pdf</a><a class="tag" taget="_blank" href="/search/%E8%BD%AF%E4%BB%B6%E5%B7%A5%E5%85%B7/1.htm">软件工具</a>
                        <div>PDF是一种广泛使用的文件格式,然而,PDF文件的处理并不是那么容易,很多时候,我们需要对PDF文件进行「合并、分割、压缩、转换、编辑」等操作,但是,我们不想「付费」购买软件。那么,有没有一些「免费的客户端工具」,可以帮助我们快速地处理PDF文件呢?答案是有的,今天,我就为您介绍三款实用的PDF客户端工具「软件获取方式在文章的最后」PDF24工具箱:免费且功能丰富PDF24工具箱客户端是一个提供了</div>
                    </li>
                    <li><a href="/article/1881221580894302208.htm"
                           title="Amazon Virtual Private Cloud(VPC)" target="_blank">Amazon Virtual Private Cloud(VPC)</a>
                        <span class="text-muted">HaoHao_010</span>
<a class="tag" taget="_blank" href="/search/aws/1.htm">aws</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a><a class="tag" taget="_blank" href="/search/%E4%BA%91%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">云服务器</a><a class="tag" taget="_blank" href="/search/%E4%BA%91%E8%AE%A1%E7%AE%97/1.htm">云计算</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a>
                        <div>AmazonVirtualPrivateCloud(VPC)是AmazonWebServices(AWS)的一项强大服务,它提供了一个完全隔离的私有网络环境,使得用户能够在云中精细控制网络资源。以下是VPC更详细的功能和扩展内容:1.VPC网络设计和管理VPC允许你完全控制网络配置,包括:IP地址范围:你可以选择适合自己需求的IPv4和IPv6地址范围。例如,你可以选择10.0.0.0/16,为V</div>
                    </li>
                    <li><a href="/article/1881218171709485056.htm"
                           title="VSCode 配置python虚拟环境(激活环境细节)_vscode python conda虚拟环境(1)" target="_blank">VSCode 配置python虚拟环境(激活环境细节)_vscode python conda虚拟环境(1)</a>
                        <span class="text-muted">2401_83817171</span>
<a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E5%91%98/1.htm">程序员</a><a class="tag" taget="_blank" href="/search/vscode/1.htm">vscode</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/conda/1.htm">conda</a>
                        <div>AnacondaPrompt常用命令:1.查看存在的环境:condainfo-e2.创建新环境:condacreate-n环境名python=(python的版本号)3.切换到某个环境:condaactivate环境名4.查看环境中已安装的包:condalist5.在环境中安装包:pipinstall包名6.删除包:pipunstall包名7.删除环境:condaenvremove-n环境名下载库</div>
                    </li>
                    <li><a href="/article/1881217793530064896.htm"
                           title="使用QT+OpenCV+C++完成一个简单的图像处理工具" target="_blank">使用QT+OpenCV+C++完成一个简单的图像处理工具</a>
                        <span class="text-muted">17´</span>
<a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E8%A7%86%E8%A7%89/1.htm">机器视觉</a><a class="tag" taget="_blank" href="/search/Qt/1.htm">Qt</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/qt/1.htm">qt</a><a class="tag" taget="_blank" href="/search/opencv/1.htm">opencv</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/%E5%9B%BE%E5%83%8F%E5%A4%84%E7%90%86/1.htm">图像处理</a>
                        <div>目录前言初始化UI界面qss样式表优化界面QImage和Mat的类型转换按钮功能实现读取图像处理图像保存图像最终效果前言本项目在QtCreator中编写,使用qmake来配置OpenCV库,具体配置方法请看这篇文章从0到机器视觉工程师(六):配置OpenCV和Qt环境-CSDN博客,UI界面使用代码的形式书写。接下来,让我们一起来完成这个项目吧。初始化UI界面代码boolMainWindow::I</div>
                    </li>
                    <li><a href="/article/1881216532407709696.htm"
                           title="Python单元测试之道:从入门到精通的全面指南合集" target="_blank">Python单元测试之道:从入门到精通的全面指南合集</a>
                        <span class="text-muted">雅雅酱o</span>
<a class="tag" taget="_blank" href="/search/log4j/1.htm">log4j</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B/1.htm">编程</a><a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA/1.htm">计算机</a><a class="tag" taget="_blank" href="/search/%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95/1.htm">单元测试</a>
                        <div>深入探讨Python单元测试的各个方面,包括基本概念、基础知识、实践方法、高级话题,如何在实际项目中进行单元测试,单元测试的最佳实践,以及一些有用的工具和资源。python学习资料、教程分享:一、单元测试重要性测试是软件开发中不可或缺的一部分,它能够帮助我们保证代码的质量,减少bug,提高系统的稳定性。在各种测试方法中,单元测试由于其快速、有效的特性,特别受到开发者们的喜欢。本文将全面介绍Pyth</div>
                    </li>
                    <li><a href="/article/1881216149769744384.htm"
                           title="linux制作自定义service服务单元" target="_blank">linux制作自定义service服务单元</a>
                        <span class="text-muted">handsomestWei</span>
<a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a>
                        <div>linux制作自定义service服务单元服务单元简介在Linux系统中,服务单元通常以.service后缀结尾,并存储在/etc/systemd/system目录下。服务单元文件定义了服务的启动顺序、依赖关系、执行命令等参数。使得系统管理员能够方便地启动、停止、重启和管理系统中的各种服务。java服务单元示例服务单元myJava.service文件示例。注意关闭标准输出,避免日志文件占用磁盘空间</div>
                    </li>
                    <li><a href="/article/1881215381478109184.htm"
                           title="如何利用 Python抓取网页数据 其他方式抓取网页数据列举" target="_blank">如何利用 Python抓取网页数据 其他方式抓取网页数据列举</a>
                        <span class="text-muted">数码小沙</span>
<a class="tag" taget="_blank" href="/search/python%E5%AE%9E%E4%BE%8B%E6%93%8D%E4%BD%9C/1.htm">python实例操作</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/php/1.htm">php</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>在Python中可以使用多种方法抓取网页数据,以下是一种常见的方法,使用requests和BeautifulSoup库。一、安装所需库在命令提示符或终端中执行以下命令安装requests和BeautifulSoup库:pipinstallrequestspipinstallbeautifulsoup4二、抓取网页数据步骤发送请求使用requests库发送HTTP请求来获取网页内容。例如:impor</div>
                    </li>
                                <li><a href="/article/46.htm"
                                       title="Maven" target="_blank">Maven</a>
                                    <span class="text-muted">Array_06</span>
<a class="tag" taget="_blank" href="/search/eclipse/1.htm">eclipse</a><a class="tag" taget="_blank" href="/search/jdk/1.htm">jdk</a><a class="tag" taget="_blank" href="/search/maven/1.htm">maven</a>
                                    <div>Maven 
 
Maven是基于项目对象模型(POM), 信息来管理项目的构建,报告和文档的软件项目管理工具。 
Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,而且公司</div>
                                </li>
                                <li><a href="/article/173.htm"
                                       title="ibatis的queyrForList和queryForMap区别" target="_blank">ibatis的queyrForList和queryForMap区别</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/ibatis/1.htm">ibatis</a>
                                    <div>一.说明 
        iBatis的返回值参数类型也有种:resultMap与resultClass,这两种类型的选择可以用两句话说明之: 
        1.当结果集列名和类的属性名完全相对应的时候,则可直接用resultClass直接指定查询结果类</div>
                                </li>
                                <li><a href="/article/300.htm"
                                       title="LeetCode[位运算] - #191 计算汉明权重" target="_blank">LeetCode[位运算] - #191 计算汉明权重</a>
                                    <span class="text-muted">Cwind</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E4%BD%8D%E8%BF%90%E7%AE%97/1.htm">位运算</a><a class="tag" taget="_blank" href="/search/LeetCode/1.htm">LeetCode</a><a class="tag" taget="_blank" href="/search/Algorithm/1.htm">Algorithm</a><a class="tag" taget="_blank" href="/search/%E9%A2%98%E8%A7%A3/1.htm">题解</a>
                                    <div>原题链接:#191 Number of 1 Bits 
要求: 
写一个函数,以一个无符号整数为参数,返回其汉明权重。例如,‘11’的二进制表示为'00000000000000000000000000001011', 故函数应当返回3。 
汉明权重:指一个字符串中非零字符的个数;对于二进制串,即其中‘1’的个数。 
难度:简单 
分析: 
将十进制参数转换为二进制,然后计算其中1的个数即可。 
“</div>
                                </li>
                                <li><a href="/article/427.htm"
                                       title="浅谈java类与对象" target="_blank">浅谈java类与对象</a>
                                    <span class="text-muted">15700786134</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                                    <div>      java是一门面向对象的编程语言,类与对象是其最基本的概念。所谓对象,就是一个个具体的物体,一个人,一台电脑,都是对象。而类,就是对象的一种抽象,是多个对象具有的共性的一种集合,其中包含了属性与方法,就是属于该类的对象所具有的共性。当一个类创建了对象,这个对象就拥有了该类全部的属性,方法。相比于结构化的编程思路,面向对象更适用于人的思维</div>
                                </li>
                                <li><a href="/article/554.htm"
                                       title="linux下双网卡同一个IP" target="_blank">linux下双网卡同一个IP</a>
                                    <span class="text-muted">被触发</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a>
                                    <div>转自: 
http://q2482696735.blog.163.com/blog/static/250606077201569029441/ 
 
由于需要一台机器有两个网卡,开始时设置在同一个网段的IP,发现数据总是从一个网卡发出,而另一个网卡上没有数据流动。网上找了下,发现相同的问题不少: 
一、 
关于双网卡设置同一网段IP然后连接交换机的时候出现的奇怪现象。当时没有怎么思考、以为是生成树</div>
                                </li>
                                <li><a href="/article/681.htm"
                                       title="安卓按主页键隐藏程序之后无法再次打开" target="_blank">安卓按主页键隐藏程序之后无法再次打开</a>
                                    <span class="text-muted">肆无忌惮_</span>
<a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%8D%93/1.htm">安卓</a>
                                    <div>遇到一个奇怪的问题,当SplashActivity跳转到MainActivity之后,按主页键,再去打开程序,程序没法再打开(闪一下),结束任务再开也是这样,只能卸载了再重装。而且每次在Log里都打印了这句话"进入主程序"。后来发现是必须跳转之后再finish掉SplashActivity 
  
本来代码: 
  
// 销毁这个Activity 
fin</div>
                                </li>
                                <li><a href="/article/808.htm"
                                       title="通过cookie保存并读取用户登录信息实例" target="_blank">通过cookie保存并读取用户登录信息实例</a>
                                    <span class="text-muted">知了ing</span>
<a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a>
                                    <div>通过cookie的getCookies()方法可获取所有cookie对象的集合;通过getName()方法可以获取指定的名称的cookie;通过getValue()方法获取到cookie对象的值。另外,将一个cookie对象发送到客户端,使用response对象的addCookie()方法。 
下面通过cookie保存并读取用户登录信息的例子加深一下理解。 
(1)创建index.jsp文件。在改</div>
                                </li>
                                <li><a href="/article/935.htm"
                                       title="JAVA 对象池" target="_blank">JAVA 对象池</a>
                                    <span class="text-muted">矮蛋蛋</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/ObjectPool/1.htm">ObjectPool</a>
                                    <div>原文地址: 
http://www.blogjava.net/baoyaer/articles/218460.html 
Jakarta对象池 
      ☆为什么使用对象池 
  恰当地使用对象池化技术,可以有效地减少对象生成和初始化时的消耗,提高系统的运行效率。Jakarta Commons Pool组件提供了一整套用于实现对象池化</div>
                                </li>
                                <li><a href="/article/1062.htm"
                                       title="ArrayList根据条件+for循环批量删除的方法" target="_blank">ArrayList根据条件+for循环批量删除的方法</a>
                                    <span class="text-muted">alleni123</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                                    <div>场景如下: 
ArrayList<Obj> list 
 
Obj-> createTime, sid. 
 
现在要根据obj的createTime来进行定期清理。(释放内存) 
 
------------------------- 
 
首先想到的方法就是 
 
for(Obj o:list){
  if(o.createTime-currentT>xxx){
 </div>
                                </li>
                                <li><a href="/article/1189.htm"
                                       title="阿里巴巴“耕地宝”大战各种宝" target="_blank">阿里巴巴“耕地宝”大战各种宝</a>
                                    <span class="text-muted">百合不是茶</span>
<a class="tag" taget="_blank" href="/search/%E5%B9%B3%E5%8F%B0%E6%88%98%E7%95%A5/1.htm">平台战略</a>
                                    <div>“耕地保”平台是阿里巴巴和安徽农民共同推出的一个 “首个互联网定制私人农场”,“耕地宝”由阿里巴巴投入一亿 ,主要是用来进行农业方面,将农民手中的散地集中起来 不仅加大农民集体在土地上面的话语权,还增加了土地的流通与 利用率,提高了土地的产量,有利于大规模的产业化的高科技农业的 发展,阿里在农业上的探索将会引起新一轮的产业调整,但是集体化之后农民的个体的话语权 将更少,国家应出台相应的法律法规保护</div>
                                </li>
                                <li><a href="/article/1316.htm"
                                       title="Spring注入有继承关系的类(1)" target="_blank">Spring注入有继承关系的类(1)</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a>
                                    <div>一个类一个类的注入 
1.AClass类 
 
package com.bijian.spring.test2;

public class AClass {

    String a;
    String b;
   
    public String getA() {
        return a;
    }
    public void setA(Strin</div>
                                </li>
                                <li><a href="/article/1443.htm"
                                       title="30岁转型期你能否成为成功人士" target="_blank">30岁转型期你能否成为成功人士</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/%E6%88%90%E5%8A%9F/1.htm">成功</a>
                                    <div>        很多人由于年轻时走了弯路,到了30岁一事无成,这样的例子大有人在。但同样也有一些人,整个职业生涯都发展得很优秀,到了30岁已经成为职场的精英阶层。由于做猎头的原因,我们接触很多30岁左右的经理人,发现他们在职业发展道路上往往有很多致命的问题。在30岁之前,他们的职业生涯表现很优秀,但从30岁到40岁这一段,很多人</div>
                                </li>
                                <li><a href="/article/1570.htm"
                                       title="[Velocity三]基于Servlet+Velocity的web应用" target="_blank">[Velocity三]基于Servlet+Velocity的web应用</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/velocity/1.htm">velocity</a>
                                    <div>什么是VelocityViewServlet 
使用org.apache.velocity.tools.view.VelocityViewServlet可以将Velocity集成到基于Servlet的web应用中,以Servlet+Velocity的方式实现web应用 
  Servlet + Velocity的一般步骤 
1.自定义Servlet,实现VelocityViewServl</div>
                                </li>
                                <li><a href="/article/1697.htm"
                                       title="【Kafka十二】关于Kafka是一个Commit Log Service" target="_blank">【Kafka十二】关于Kafka是一个Commit Log Service</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/service/1.htm">service</a>
                                    <div>Kafka is a distributed, partitioned, replicated commit log service.这里的commit log如何理解? 
  
A message is considered "committed" when all in sync replicas for that partition have applied i</div>
                                </li>
                                <li><a href="/article/1824.htm"
                                       title="NGINX + LUA实现复杂的控制" target="_blank">NGINX + LUA实现复杂的控制</a>
                                    <span class="text-muted">ronin47</span>
<a class="tag" taget="_blank" href="/search/lua+nginx+%E6%8E%A7%E5%88%B6/1.htm">lua nginx 控制</a>
                                    <div>安装lua_nginx_module 模块 
lua_nginx_module 可以一步步的安装,也可以直接用淘宝的OpenResty 
Centos和debian的安装就简单了。。 
这里说下freebsd的安装: 
fetch http://www.lua.org/ftp/lua-5.1.4.tar.gz
tar zxvf lua-5.1.4.tar.gz
cd lua-5.1.4
ma</div>
                                </li>
                                <li><a href="/article/1951.htm"
                                       title="java-14.输入一个已经按升序排序过的数组和一个数字, 在数组中查找两个数,使得它们的和正好是输入的那个数字" target="_blank">java-14.输入一个已经按升序排序过的数组和一个数字, 在数组中查找两个数,使得它们的和正好是输入的那个数字</a>
                                    <span class="text-muted">bylijinnan</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                                    <div>

public class TwoElementEqualSum {

	/**
	 * 第 14 题:
题目:输入一个已经按升序排序过的数组和一个数字,
在数组中查找两个数,使得它们的和正好是输入的那个数字。
要求时间复杂度是 O(n) 。如果有多对数字的和等于输入的数字,输出任意一对即可。
例如输入数组 1 、 2 、 4 、 7 、 11 、 15 和数字 15 。由于 </div>
                                </li>
                                <li><a href="/article/2078.htm"
                                       title="Netty源码学习-HttpChunkAggregator-HttpRequestEncoder-HttpResponseDecoder" target="_blank">Netty源码学习-HttpChunkAggregator-HttpRequestEncoder-HttpResponseDecoder</a>
                                    <span class="text-muted">bylijinnan</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/netty/1.htm">netty</a>
                                    <div>今天看Netty如何实现一个Http Server 
org.jboss.netty.example.http.file.HttpStaticFileServerPipelineFactory: 
 

		pipeline.addLast("decoder", new HttpRequestDecoder());
        pipeline.addLast(&quo</div>
                                </li>
                                <li><a href="/article/2205.htm"
                                       title="java敏感词过虑-基于多叉树原理" target="_blank">java敏感词过虑-基于多叉树原理</a>
                                    <span class="text-muted">cngolon</span>
<a class="tag" taget="_blank" href="/search/%E8%BF%9D%E7%A6%81%E8%AF%8D%E8%BF%87%E8%99%91/1.htm">违禁词过虑</a><a class="tag" taget="_blank" href="/search/%E6%9B%BF%E6%8D%A2%E8%BF%9D%E7%A6%81%E8%AF%8D/1.htm">替换违禁词</a><a class="tag" taget="_blank" href="/search/%E6%95%8F%E6%84%9F%E8%AF%8D%E8%BF%87%E8%99%91/1.htm">敏感词过虑</a><a class="tag" taget="_blank" href="/search/%E5%A4%9A%E5%8F%89%E6%A0%91/1.htm">多叉树</a>
                                    <div>基于多叉树的敏感词、关键词过滤的工具包,用于java中的敏感词过滤 
1、工具包自带敏感词词库,第一次调用时读入词库,故第一次调用时间可能较长,在类加载后普通pc机上html过滤5000字在80毫秒左右,纯文本35毫秒左右。 
  
2、如需自定义词库,将jar包考入WEB-INF工程的lib目录,在WEB-INF/classes目录下建一个 
utf-8的words.dict文本文件,</div>
                                </li>
                                <li><a href="/article/2332.htm"
                                       title="多线程知识" target="_blank">多线程知识</a>
                                    <span class="text-muted">cuishikuan</span>
<a class="tag" taget="_blank" href="/search/%E5%A4%9A%E7%BA%BF%E7%A8%8B/1.htm">多线程</a>
                                    <div> 
  
  T1,T2,T3三个线程工作顺序,按照T1,T2,T3依次进行 
  public class T1 implements Runnable{    
     
       @Override    
      </div>
                                </li>
                                <li><a href="/article/2459.htm"
                                       title="spring整合activemq" target="_blank">spring整合activemq</a>
                                    <span class="text-muted">dalan_123</span>
<a class="tag" taget="_blank" href="/search/java+spring+jms/1.htm">java spring jms</a>
                                    <div>整合spring和activemq需要搞清楚如下的东东1、ConnectionFactory分:     a、spring管理连接到activemq服务器的管理ConnectionFactory也即是所谓产生到jms服务器的链接      b、真正产生到JMS服务器链接的ConnectionFactory还得</div>
                                </li>
                                <li><a href="/article/2586.htm"
                                       title="MySQL时间字段究竟使用INT还是DateTime?" target="_blank">MySQL时间字段究竟使用INT还是DateTime?</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a>
                                    <div>  
环境:Windows XPPHP Version 5.2.9MySQL Server 5.1 
第一步、创建一个表date_test(非定长、int时间) 
CREATE TABLE `test`.`date_test` (`id` INT NOT NULL AUTO_INCREMENT ,`start_time` INT NOT NULL ,`some_content`</div>
                                </li>
                                <li><a href="/article/2713.htm"
                                       title="Parcel: unable to marshal value" target="_blank">Parcel: unable to marshal value</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/marshal/1.htm">marshal</a>
                                    <div>在两个activity直接传递List<xxInfo>时,出现Parcel: unable to marshal value异常。      在MainActivity页面(MainActivity页面向NextActivity页面传递一个List<xxInfo>):       Intent intent = new Intent(this, Next</div>
                                </li>
                                <li><a href="/article/2840.htm"
                                       title="linux进程的查看上(ps)" target="_blank">linux进程的查看上(ps)</a>
                                    <span class="text-muted">eksliang</span>
<a class="tag" taget="_blank" href="/search/linux+ps/1.htm">linux ps</a><a class="tag" taget="_blank" href="/search/linux+ps+-l/1.htm">linux ps -l</a><a class="tag" taget="_blank" href="/search/linux+ps+aux/1.htm">linux ps aux</a>
                                    <div>ps:将某个时间点的进程运行情况选取下来 
转载请出自出处:http://eksliang.iteye.com/admin/blogs/2119469 
http://eksliang.iteye.com 
        ps 这个命令的man page 不是很好查阅,因为很多不同的Unix都使用这儿ps来查阅进程的状态,为了要符合不同版本的需求,所以这个</div>
                                </li>
                                <li><a href="/article/2967.htm"
                                       title="为什么第三方应用能早于System的app启动" target="_blank">为什么第三方应用能早于System的app启动</a>
                                    <span class="text-muted">gqdy365</span>
<a class="tag" taget="_blank" href="/search/System/1.htm">System</a>
                                    <div>Android应用的启动顺序网上有一大堆资料可以查阅了,这里就不细述了,这里不阐述ROM启动还有bootloader,软件启动的大致流程应该是启动kernel -> 运行servicemanager 把一些native的服务用命令启动起来(包括wifi, power, rild, surfaceflinger, mediaserver等等)-> 启动Dalivk中的第一个进程Zygot</div>
                                </li>
                                <li><a href="/article/3094.htm"
                                       title="App Framework发送JSONP请求(3)" target="_blank">App Framework发送JSONP请求(3)</a>
                                    <span class="text-muted">hw1287789687</span>
<a class="tag" taget="_blank" href="/search/jsonp/1.htm">jsonp</a><a class="tag" taget="_blank" href="/search/%E8%B7%A8%E5%9F%9F%E8%AF%B7%E6%B1%82/1.htm">跨域请求</a><a class="tag" taget="_blank" href="/search/%E5%8F%91%E9%80%81jsonp/1.htm">发送jsonp</a><a class="tag" taget="_blank" href="/search/ajax%E8%AF%B7%E6%B1%82/1.htm">ajax请求</a><a class="tag" taget="_blank" href="/search/%E8%B6%8A%E7%8B%B1%E8%AF%B7%E6%B1%82/1.htm">越狱请求</a>
                                    <div>App Framework 中如何发送JSONP请求呢? 
使用jsonp,详情请参考:http://json-p.org/ 
如何发送Ajax请求呢? 
(1)登录 
/***
 * 会员登录
 * @param username
 * @param password
 */
var user_login=function(username,password){
//    aler</div>
                                </li>
                                <li><a href="/article/3221.htm"
                                       title="发福利,整理了一份关于“资源汇总”的汇总" target="_blank">发福利,整理了一份关于“资源汇总”的汇总</a>
                                    <span class="text-muted">justjavac</span>
<a class="tag" taget="_blank" href="/search/%E8%B5%84%E6%BA%90/1.htm">资源</a>
                                    <div>觉得有用的话,可以去github关注:https://github.com/justjavac/awesome-awesomeness-zh_CN  通用 
 
  free-programming-books-zh_CN 免费的计算机编程类中文书籍  
  精彩博客集合 hacke2/hacke2.github.io#2  
  ResumeSample 程序员简历</div>
                                </li>
                                <li><a href="/article/3348.htm"
                                       title="用 Java 技术创建 RESTful Web 服务" target="_blank">用 Java 技术创建 RESTful Web 服务</a>
                                    <span class="text-muted">macroli</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B/1.htm">编程</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/REST/1.htm">REST</a>
                                    <div>转载:http://www.ibm.com/developerworks/cn/web/wa-jaxrs/ 
  
JAX-RS (JSR-311) 【  Java API for RESTful Web Services 】是一种 Java™ API,可使 Java Restful 服务的开发变得迅速而轻松。这个 API 提供了一种基于注释的模型来描述分布式资源。注释被用来提供资源的位</div>
                                </li>
                                <li><a href="/article/3475.htm"
                                       title="CentOS6.5-x86_64位下oracle11g的安装详细步骤及注意事项" target="_blank">CentOS6.5-x86_64位下oracle11g的安装详细步骤及注意事项</a>
                                    <span class="text-muted">超声波</span>
<a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a>
                                    <div>前言: 
这两天项目要上线了,由我负责往服务器部署整个项目,因此首先要往服务器安装oracle,服务器本身是CentOS6.5的64位系统,安装的数据库版本是11g,在整个的安装过程中碰到很多的坑,不过最后还是通过各种途径解决并成功装上了。转别写篇博客来记录完整的安装过程以及在整个过程中的注意事项。希望对以后那些刚刚接触的菜鸟们能起到一定的帮助作用。 
  
安装过程中可能遇到的问题(注</div>
                                </li>
                                <li><a href="/article/3602.htm"
                                       title="HttpClient 4.3 设置keeplive 和 timeout 的方法" target="_blank">HttpClient 4.3 设置keeplive 和 timeout 的方法</a>
                                    <span class="text-muted">supben</span>
<a class="tag" taget="_blank" href="/search/httpclient/1.htm">httpclient</a>
                                    <div>ConnectionKeepAliveStrategy kaStrategy = new DefaultConnectionKeepAliveStrategy() {
			@Override
			public long getKeepAliveDuration(HttpResponse response, HttpContext context) {
				long keepAlive</div>
                                </li>
                                <li><a href="/article/3729.htm"
                                       title="Spring 4.2新特性-@Import注解的升级" target="_blank">Spring 4.2新特性-@Import注解的升级</a>
                                    <span class="text-muted">wiselyman</span>
<a class="tag" taget="_blank" href="/search/spring+4/1.htm">spring 4</a>
                                    <div>3.1 @Import 
 
 @Import注解在4.2之前只支持导入配置类 
 在4.2,@Import注解支持导入普通的java类,并将其声明成一个bean 
  
3.2 示例 
 
 演示java类 
  
package com.wisely.spring4_2.imp;

public class DemoService {
    public void doSomethin</div>
                                </li>
                </ul>
            </div>
        </div>
    </div>

<div>
    <div class="container">
        <div class="indexes">
            <strong>按字母分类:</strong>
            <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a
                href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a
                href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a
                href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a
                href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a
                href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a
                href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a
                href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a
                href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a>
        </div>
    </div>
</div>
<footer id="footer" class="mb30 mt30">
    <div class="container">
        <div class="footBglm">
            <a target="_blank" href="/">首页</a> -
            <a target="_blank" href="/custom/about.htm">关于我们</a> -
            <a target="_blank" href="/search/Java/1.htm">站内搜索</a> -
            <a target="_blank" href="/sitemap.txt">Sitemap</a> -
            <a target="_blank" href="/custom/delete.htm">侵权投诉</a>
        </div>
        <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved.
<!--            <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>-->
        </div>
    </div>
</footer>
<!-- 代码高亮 -->
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script>
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script>
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script>
<link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/>
<script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script>





</body>

</html><script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>