深入浅出git-log之代码统计实战

前言

git-log 即查看 git 提交日志,本文会全面解析 git-log 使用并通过一个真实的 SpringBoot 项目进行实战。如果你是个技术管理者,你一定在乎手下做了什么,提了多少代码,是否有“佛祖保佑”,git-log 都可以帮你搞定。它还可帮你 code review,帮你 blame someone。你想 blame 吗?你想快速定位你的代码吗?那就看看我们的 git log 到底能做点啥吧。Let's Go~

概要

$ git log [] [] [[--] …]
  • 本文会用到以下两种命令做 demo,一种普通 log,一种单行显示 log
# 普通log
$ git log
# 单行显示
$ git log --oneline

选项options

  • --follow:会追溯历史,包括重命名前的记录

    $ git log -p gradle.properties
    # 不带 follow参数的情况下,git把名为gradle.properties的文件全部提交记录找出来
    $ git log -p --follow gradle.properties
    # 带follow参数的情况下,git会把当前以及重命名前的文件提交记录找出来
    
  • --no-decorate:不显示的所有提交的引用名称

    $ git log --no-decorate
    
    commit hash
    Author: caining 
    Date:  Tue Apr 20 11:10:53 2021 +0800
    develop2
    
  • --decorate[=short|full|auto|no]:显示的所有提交的引用名称

    • 名词解释:Git Reference
      • Git Reference简写为refs
      • 本地分支的Reference格式:refs/heads/如refs/heads/master,在保证唯一的情况下可以简写为master;
      • 远程追踪分支的Reference格式:refs/remotes//:如refs/remotes/origin/master,在保证唯一的情况下可以简写为origin/master;
      • tag的Reference格式:refs/tags/:如refs/tags/v1.0.1,在保证唯一的情况下可以简写为v1.0.1
      • 特殊refs-HEAD,指向当前本地分支的当前commit状态
      • 特殊refs-FETCH_HEAD,指向当前本地分支在最近一次fetch操作时得到的commit状态
      • 特殊refs-ORIG_HEAD,指向任何merge或rebase之前的刚刚检出时的commit状态
    $ git log --decorate=full
    # 结果:HEAD -> refs/heads/develop , refs/remotes/origin/develo
    $ git log --decorate=short
    # 结果:HEAD -> develop, origin/develop
    
  • --source:均显示提交分支

    # 每个提交均显示提交分支
    $ git log --oneline --source
    # 6256aa140       HEAD (HEAD -> develop, origin/develop) message
    
  • --log-size:是该提交消息的长度(以字节为单位)

    $ git log --oneline --log-size
    
    # commit 6256aa140f910d81eb71a7651aad1d6bc5128da0 (HEAD -> develop, origin/develop)
    # log size 107
    # Author: caining 
    # Date:  Thu Apr 22 09:59:29 2021 +0800
    # message
    
  • -L,::查看某个文件某几行范围内的修改记录

    $ git log -L 1,1:README.md
    
  • -L:::追踪一个函数的变更历史

    • 为了保证该命令执行有效,Git 需要知道哪些行是函数声明。Git有一套默认的正则表达式,但是由于语言比较多,默认配置下可能遇到这种报错:fatal: -L parameter 'test' starting at line 1: no match
    • 分析原因:在某些语言中,Git 默认的正则表达式无法识别该语言的函数开始和结束标识导致无法匹配函数名称
    • 解决方法
      • 项目下新建.gitattributes文件 关于gitattributes
      • 配置对应语言的diff*.java diff=java
    $ git log -L :test:app/src/main/java/com/cnn/androidmavenpackage/MainActivity.java
    

    image-20210423175510685

重点-筛选

  • 请注意,这些是在提交顺序和格式设置选项(例如--reverse)之前应用的。显示提交日志,以下 a b c 均为提交节点 hash 值 commit 时间 a < b < c )

    # 普通log
    $ git log
    # 单行显示
    $ git log --oneline
    
    # 列出a到(画重点:理解^ 可以理解为from  前面大 后面小,..可以理解为to 前面小后面大)
    $ git log a..b
    $ git log b ^a
    
    #列出所有可以从a 到 b而不包含c之前的提交
    $ git log a b ^c
    
  • 数量筛选

    $ git log -3
    $ git log -n3
    $ git log --max-count=3
    # - 
    # -n 
    # --max-count=
    # --skip=
    $ git log --skip=3 #跳过3条记录
    
  • 时间筛选

    $ git log --since='2021-04-02 00:00:00'
    # --since=
    # --after=
    $ git log --until='2021-04-02 00:00:00'
    # --until=
    # --before=
    # 2周内的提交
    $ git log --since=2.weeks = $ git log --since="2 weeks ago"
    # 2月内的提交
    $ git log --since=2.months = $ git log --since="2 months ago"
    # 1年内的提交
    $ git log --since=1.year = $ git log --since="1 year ago"
    
  • 作者筛选

    $ git log --author='caining'
    # --author=
    # --committer=
    # 注意这里是正则,模糊匹配,
    # 如果是多个人人一起查按下面
    $ git log -author="name1\|name2\|name3"
    
  • 提交描述筛选

    $ git log --grep='bug fix'
    $ git log -i --grep="message1\|message2"
    # --grep=
    # 重点1: --all-match 可以理解为sql-and与 --grep 至少有一个匹配的提交 例如与-author混用时
    $ git log --author='caining' --all-match --grep='bug fix'
    # 重点2: --invert-grep 用法同上,可以理解为sql not --grep 至少有一个不匹配的提交 例如与-author混用时
    $ git log --author='caining' --invert-grep --grep='bug fix'
    #上句理解: 为caining 提交的 但是 描述里不包含 bug fix的 提交内容
    
  • 代码内容搜索 -S,注意这个搜索可能很耗时。

    $ git log -S hello
    

image-20210423154604846

  • 多条件混合筛选

    $ git log --since=1.year --author='caining' --grep='获取' -3
    

image-20210423172328921

format与样式

  • --pretty[=

  • --date=--date=relative``--date=local``--date=default-local.--date=iso --date=iso8601``--date=rfc``--date=short``--date=rfc2822

    日期格式化

  • --parents

    显示提交的父母节点

  • --children

    显示提交的孩子节点

  • --graph

    --graph like thisimage-20210504160756705

  • git log --pretty=format 已存在样式包含 oneline,short, medium, full, fuller, reference, email, raw

    $ git log --pretty=oneline
    # 样式:
    #  
    </code></pre> <pre><code class="bash">$ git log --pretty=short
    # 样式:
    # commit <hash>
    # Author: <author>
    # <title line>
    </code></pre> <pre><code class="bash">$ git log --pretty=medium
    # 样式:
    # commit <hash>
    # Author: <author>
    # Date:   <author date>
    # <title line>
    # <full commit message>
    </code></pre> <pre><code class="bash">$ git log --pretty=full
    # 样式:
    # commit <hash>
    # Author: <author>
    # Commit: <committer>
    # <title line>
    # <full commit message>
    </code></pre> <pre><code class="bash">$ git log --pretty=fuller
    # 样式:
    # commit <hash>
    # Author:     <author>
    # AuthorDate: <author date>
    # Commit:     <committer>
    # CommitDate: <committer date>
    # <title line>
    # <full commit message>
    </code></pre> </li> 
      <li> <p>自定义git log --graph --pretty=format:''</p> <pre><code class="bash">#%Cred    切换至红色
    #%Cgreen  切换至绿色
    #%Cblue   切换至蓝色
    #%C(yellow)切换至黄色
    #%Creset 重设颜色
    $ git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
    </code></pre> </li> 
     </ul> 
     <p><img src="https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/ed2785848c894baabaeac6ccf178fa2d~tplv-k3u1fbpfcp-zoom-1.image" alt="image-20210501171014592" style="zoom:50%;" /></p> 
     <ul> 
      <li> <p>format支持的类型如下,以%开头:</p> <pre><code class="bash"># %H:完整哈希字串
    # %h:简短哈希字串
    # %T:树对象(tree)的完整哈希字串
    # %t:树对象的简短哈希字串
    # %P:父对象(parent)的完整哈希字串
    # %p:父对象的简短哈希字串
    # %an:作者(author)的名字
    # %aN:作者(author)的名字 (respecting .mailmap, see [git-shortlog[1\]](https://git-scm.com/docs/git-shortlog) or [git-blame[1\]](https://git-scm.com/docs/git-blame))
    # %ae:作者电子邮件
    # %aE:作者电子邮件 (respecting .mailmap, see [git-shortlog[1\]](https://git-scm.com/docs/git-shortlog) or [git-blame[1\]](https://git-scm.com/docs/git-blame))
    # %al:作者电子邮件的本地部分(@号之前的部分)
    # %aL:author local-part (see *%al*) respecting .mailmap, see [git-shortlog[1\]](https://git-scm.com/docs/git-shortlog) or [git-blame[1\]](https://git-scm.com/docs/git-blame))
    # %ad:作者日期 (format respects --date= option)
    # %aD:author date, RFC2822 style
    # %ar:作者日期,相对
    # %at:作者日期,UNIX时间戳
    # %ai:author date, ISO 8601-like format -作者日期,类似IS0 8601的格式
    # %aI:author date, strict ISO 8601 format - 作者日期,严格的lS0 8601格式
    # %as:作者日期,短格式(YYYY-MM-DD)
    # %cn:提交者名称
    # %cN:committer name (respecting .mailmap, see [git-shortlog[1\]](https://git-scm.com/docs/git-shortlog) or [git-blame[1\]](https://git-scm.com/docs/git-blame))
    # %ce:提交者电子邮件
    # %cE:committer email 
    # %cl:committer email local-part 
    # %cL:committer local-part 
    # %cd:committer date (format respects --date= option)
    # %cD:committer date, RFC2822 style
    # %cr:committer date, relative
    # %ct:committer date, UNIX timestamp
    # %ci:committer date, ISO 8601-like format
    # %cI:committer date, strict ISO 8601 format
    # %cs:committer date, short format (`YYYY-MM-DD`)
    # %s:message
    
    $ git log  --graph --pretty=format:'提交:-:%Cred%h%Creset;%Cgreen日期:-:%ar%Creset;%Cblue日期at:-:%at%Creset;%C(yellow)日期ai:-:%ai%Creset;%Cred日期ad:-:%ad%Creset;%Cblue作者an:-:%an%Creset;%C(yellow)作者aN:-:%aN%Creset;%Cgreen邮箱ce:-:%ce%Cresete:-:%e;sssss:-:%Cred%s%Creset;SSSS:-:%S;f-%f%n'
    </code></pre> </li> 
     </ul> 
     <p><img src="https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/5367e7ea219c4e1dbc825ca9a50be2b6~tplv-k3u1fbpfcp-zoom-1.image" alt="image-20210501160914927" style="zoom:50%;" /></p> 
     <h2>git shortlog--统计</h2> 
     <pre><code class="bash"># 默认以贡献者分组进行输出
    $ git shortlog
    
    # 列出提交者代码贡献数量, 打印作者和贡献数量
    $ git shortlog -sn==git shortlog -s -n
    $ git log --pretty='%an' | sort | uniq -c | sort -k1 -n -r | head -n 10
    #-s 参数省略每次 commit 的注释,仅仅返回一个简单的统计。
    #-n 参数按照 commit 数量从多到少的顺利对用户进行排序
    
    # 以提交贡献数量排序并打印出message
    $ git shortlog -n
    
    # 采用邮箱格式化的方式进行查看贡献度
    $ git shortlog -e
    </code></pre> 
     <pre><code class="bash">$ git shortlog -sn==git shortlog -s -n
    # &&
    $ git log --pretty='%an' | sort | uniq -c | sort -k1 -n -r | head -n 10
    </code></pre> 
     <p><img src="https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/e4784d6f6d1c44c78be59c1ad847556f~tplv-k3u1fbpfcp-zoom-1.image" alt="image-20210501162714228" style="zoom:50%;" /></p> 
     <h2>git blame--查提交</h2> 
     <pre><code class="bash"># 查看 README.md 文件的修改历史记录,包括时间、作者以及内容
    git blame README.md
    
    # 查看谁改动了 README.md 文件的 11行-12行
    git blame -L 11,12 README.md
    git blame -L 11 README.md   # 查看第11行以后
    
    # 显示完整的 hash 值
    git blame -l README.md
    
    # 显示修改的行数
    git blame -n README.md
    
    # 显示作者邮箱
    git blame -e README.md
    
    # 对参数进行一个组合查询
    git blame -enl -L 11 README.md
    </code></pre> 
     <h1>实战项目</h1> 
     <ul> 
      <li><p>首先我们是要做一个 【Git代码年报总结/年度代码账单】统计类项目,思路参考某宝的【花钱账单】或者某音乐云的【听歌账单】</p></li> 
      <li> <p>根据需求导出所需要的提交日志内容to本地文件</p> <pre><code class="bash">$ git log --date=iso --pretty=format:’"%h","%an","%ad","%s","%ce"’ >> ~/Desktop/commit.csv
    $ git log  --date=iso --pretty=format:’"%h","%ar","%at","%ai","%ad","%an","%aN","%ce","%e","%s","%S","%f"’ >> ~/Desktop/commit.csv
    $ git log --date=iso --pretty=format:’"项目-demo","%H","%h","%an","%ae","%at","%ad","%s"’ >> ~/Desktop/项目-demo.csv
    #%H:完整哈希%h:简短哈希%an:作者%ae:邮件 %at:作者日期,UNIX时间戳"%ad","%s"
    # 我们根据 git shortlog -sn,统计出排名,然后查看 Yangkai.Shen,yangkai.shen的代码行数
    $ git log --author="Yangkai.Shen\|yangkai.shen" --pretty=tformat: --numstat | awk '{ add += $1 ; subs += $2 ; loc += $1 - $2 } END { printf "增加的行数:%s 删除的行数:%s 总行数: %s\n",add,subs,loc }'>> ~/Desktop/项目-demo_code.csv
    # 增加的行数:133582 删除的行数:77429 总行数: 56153
    
    git log --author="Yangkai.Shen\|yangkai.shen" --pretty=tformat: --numstat | awk '{ add += $1 ; subs += $2 ; loc += $1 - $2 } END { printf "%s,%s,%s,%s\n",add,subs,loc,"Yangkai.Shen" }'>> ~/Desktop/项目-demo_code.csv
    #658  Yangkai.Shen
    #    57  yangkai.shen
    #     4  fxbin
    #     3  EchoCow
    #     2  chenqi
    #    1  yaodehuang
    #     1  76peter
    #     1  yidasanqian
    #     1  UndefinedDiary
    #     1  geek
    #     1  taffier
    #     1  yanshaoshuai
    </code></pre> </li> 
     </ul> 
     <p><img src="https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/cdc3b3334a714628a5dd0a74399481a5~tplv-k3u1fbpfcp-zoom-1.image" alt="image-20210502193902849" style="zoom:50%;" /></p> 
     <ul> 
      <li>利用Python 脚本循环读取作者,可以获取各个作者代码数量,组装为json,并导出,关键代码如下:</li> 
     </ul> 
     <pre><code class="python">if __name__ == '__main__':
        p = subprocess.Popen("git log --pretty='%an' | sort | uniq -c | sort -k1 -n -r | head -n 10", shell=True,
                             cwd='/Users/caining/Documents/demo/spring-boot-demo', stdout=subprocess.PIPE)
        out, err = p.communicate()
        value = str(out, encoding="utf-8")
        arr = value.split("\n")
        subprocess.Popen('printf [ >> ~/Desktop/项目-demo_code1.csv', shell=True,
                         cwd='/Users/caining/Documents/demo/spring-boot-demo')
        for a in arr:
            if len(a.split(" ")) >= 2:
                name = a.split(" ")[len(a.split(" ")) - 1]
                author = name
                subprocess.Popen(
                    'printf {\\"name\\":\\"' + author + '\\",\\"score\\":\\" >> ~/Desktop/项目-demo_code1.csv', shell=True,
                    cwd='/Users/caining/Documents/demo/spring-boot-demo')
                cmdd = 'git log --author=\'' + author + '\' --pretty=tformat: --numstat | awk \'{ add += $1 ; subs += $2 ' \
                                                        '; loc += $1 - $2 } END ' \
                                                        '{ printf "%s,%s,%s",add,subs,loc }\'>> ~/Desktop/项目-demo_code1.csv'
                p = subprocess.Popen(cmdd, shell=True, cwd='/Users/caining/Documents/demo/spring-boot-demo')
                out, err = p.communicate()
                subprocess.Popen('printf \\"}, >> ~/Desktop/项目-demo_code1.csv', shell=True,
                                          cwd='/Users/caining/Documents/demo/spring-boot-demo')
        subprocess.Popen('printf {}] >> ~/Desktop/项目-demo_code1.csv', shell=True,
                         cwd='/Users/caining/Documents/demo/spring-boot-demo')
                          
    </code></pre> 
     <ul> 
      <li>执行完结果如下:</li> 
     </ul> 
     <pre><code class="json">[
        {
            "name":"Yangkai.Shen",
            "score":"124483,76983,47500"
        },
        {
            "name":"yangkai.shen",
            "score":"9099,446,8653"
        },
        {
            "name":"fxbin",
            "score":"2902,216,2686"
        },
      ...
    ]
    </code></pre> 
     <p><img src="https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/2a8439f34e60452dad05a0a81c98221d~tplv-k3u1fbpfcp-zoom-1.image" alt="image-20210501211114654" style="zoom:50%;" /></p> 
     <ul> 
      <li>搭建springBoot 项目<img src="https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/8a37c7721bc74c4a99c39e18d0bfd198~tplv-k3u1fbpfcp-zoom-1.image" alt="image-20210502191400391" style="zoom:25%;" /></li> 
      <li>编写upload上传接口,并集成swagger2<img src="https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/8d1208b6c19940d7aec7453d90bf0586~tplv-k3u1fbpfcp-zoom-1.image" alt="image-20210502192113500" style="zoom:100%;" /></li> 
      <li>Upload to mysql 保证数据的完整性,对比后正确</li> 
     </ul> 
     <p><img src="https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/e710ee1c6dbe49738b095e6545e1db15~tplv-k3u1fbpfcp-zoom-1.image" alt="image-20210502185428210" style="zoom:50%;" /></p> 
     <ul> 
      <li>spring to mysql 关键代码如下</li> 
     </ul> 
     <pre><code class="java">try {
                InputStream inputStream = file.getInputStream();
                BufferedReader br = new BufferedReader(new InputStreamReader(inputStream, StandardCharsets.UTF_8));
                String str = null;
                while((str = br.readLine()) != null){
                    String[] split = str.split("\n");
                    int len = split.length;
                    List<GitLog> gitLogList = new ArrayList<>();
                    for (int j = 0; j < len; j++) {
                        String[] split1 = split[j].split(",");
                        try {
                            String commit_id_long = split1[1];
                            GitLog oneById = gitDao.findOneById(commit_id_long);
                            GitLog gitLog = new GitLog()
                                .setProject(split1[0].replace("’", ""))
                                .setCommit_id_long(commit_id_long)
                                .setCommit_id(split1[2])
                                .setAuthor(split1[3])
                                .setEmail(split1[4])
                                .setTime_stamp(Long.valueOf(split1[5]))
                                .setTime(split1[6].replace("+0800", ""))
                                .setMessage(split1[7].replace("’", ""));
                            if (oneById != null) {
                                gitDao.update(gitLog);
                            } else {
                                gitLogList.add(gitLog);
                            }
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                    }
                    gitDao.insertList(gitLogList);
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
    </code></pre> 
     <ul> 
      <li>存入mysql 后,更加方便统计,除了基础代码量统计外,存入mysql 好处如下: 
       <ul> 
        <li>可以统计同一个用户不同author情况</li> 
        <li>可以统计不同email相同author情况</li> 
        <li>可以统计最晚时间</li> 
        <li>可以统计当日提交最多提交数等</li> 
        <li>重复author like this:<img src="https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/27b0c59db02243748aaf14f850bf2ba0~tplv-k3u1fbpfcp-zoom-1.image" alt="image-20210502190448732" style="zoom:33%;" /></li> 
        <li>其他统计(全年某日最多提交次数、全年总提交次数、全年提交次数排名、全年某日最晚提交(加班最晚时间点提交)、全年加班提交次数等统计)<img src="https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/f7a5e0bb2fdd416dadeb3d90e9d61271~tplv-k3u1fbpfcp-zoom-1.image" alt="image-20210506154102885" style="zoom: 50%;" /></li> 
       </ul> </li> 
     </ul> 
     <pre><code class="sql">SELECT COUNT(*) as 总提交次数 FROM git_log ORDER BY time_stamp ASC;
    SELECT DATE_FORMAT(time,"%Y年%m月") AS 月份,COUNT(*) as 提交次数 FROM git_log GROUP BY DATE_FORMAT(time,"%Y年%m月") 
    SELECT DATE_FORMAT(time,"%Y年%m月%d日") AS 日期,COUNT(*) as 提交次数 FROM git_log GROUP BY DATE_FORMAT(time,"%Y年%m月%d日") ORDER BY 提交次数 DESC; 
    --sql 其他相关脚本略。。。以上sql脚本 只是举个栗子,进行中,这里不影响本篇文章。
    </code></pre> 
     <ul> 
      <li><p>总体来说,利用 sql 超强统计能力+git-log 本身代码统计能力,可以做到我们想做的项目:【Git代码年报总结/年度代码账单】</p></li> 
      <li><p>作者个人基本脚本以及简单后端初步形成,后面打算结合前端界面,前端负责<strong>炫酷</strong>,完成本项目,项目规划中,感兴趣同学欢迎一起讨论;come on baby!</p></li> 
      <li><p>到此项目后端以及准备阶段脚本已初步形成,差具体接口开发以及统计</p></li> 
     </ul> 
     <h1>总结</h1> 
     <ul> 
      <li><p>git log 基础知识,format 很强大,样式也很多样</p></li> 
      <li><p>git shortlog 基础知识&git blame 基础知识</p></li> 
      <li><p>项目实战结合了mysql+spring boot,方便统计</p></li> 
      <li><p>git 命令导出脚本运用了python 方便循环导出作者所写代码数量</p></li> 
      <li><p>mysql 其他脚本进行中</p></li> 
      <li><p>后期小程序或者web界面搭建进行中</p></li> 
      <li><p>讨论@QiShare</p></li> 
     </ul> 
     <h1>引用</h1> 
     <blockquote> 
      <ul> 
       <li>https://git-scm.com/docs/git-log</li> 
       <li>https://git-scm.com/docs/git-blame</li> 
       <li>https://git-scm.com/docs/git-shortlog</li> 
       <li>https://git-scm.com/docs/gitattributes</li> 
       <li>本项目后端代码&&项目统计源参考:https://github.com/xkcoding/spring-boot-demo </li> 
      </ul> 
     </blockquote> 
    </article>
                                </div>
                            </div>
                        </div>
                        <!--PC和WAP自适应版-->
                        <div id="SOHUCS" sid="1642196852658987008"></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">你可能感兴趣的:(深入浅出git-log之代码统计实战)</h4>
            <div id="paradigm-article-related">
                <div class="recommend-post mb30">
                    <ul class="widget-links">
                        <li><a href="/article/1899434117171310592.htm"
                               title="C语言实现排序之选择排序算法" target="_blank">C语言实现排序之选择排序算法</a>
                            <span class="text-muted">Seraphina_Lily</span>
    <a class="tag" taget="_blank" href="/search/C%E8%AF%AD%E8%A8%80%E6%8E%92%E5%BA%8F%E7%AE%97%E6%B3%95/1.htm">C语言排序算法</a><a class="tag" taget="_blank" href="/search/%E6%8E%92%E5%BA%8F%E7%AE%97%E6%B3%95/1.htm">排序算法</a><a class="tag" taget="_blank" href="/search/c%E8%AF%AD%E8%A8%80/1.htm">c语言</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a>
                            <div>1.代码#include#include#include//函数声明int*create_and_generate_random_array(intsize);voidprint_array(int*array,intsize);voidselection_sort(int*array,intsize);intgenerate_random_size();intmain(){intsize=gen</div>
                        </li>
                        <li><a href="/article/1899431596692402176.htm"
                               title="AI 问答系统实战:用 Python + Flask + LLM 打造你的智能对话机器人!" target="_blank">AI 问答系统实战:用 Python + Flask + LLM 打造你的智能对话机器人!</a>
                            <span class="text-muted">Leaton Lee</span>
    <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/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/flask/1.htm">flask</a>
                            <div>开篇互动:你是否想拥属于自己的AI问答机器人?“你是否想过拥有一个可以随时为你解答问题、提供建议的AI助手?”随着大语言模型(LLM)的快速发展,打造一个智能问答系统已经成为可能!本文将手把手教你如何利用Python和Flask快速搭建一个属于自己的AI问答系统,并集成强大的语言模型(如OpenAI的GPT-3.5或HuggingFace的LLaMA)。无论是技术小白还是有一定经验的开发者,都能轻</div>
                        </li>
                        <li><a href="/article/1899429453616967680.htm"
                               title="工作流编排利器:Prefect 全流程解析" target="_blank">工作流编排利器:Prefect 全流程解析</a>
                            <span class="text-muted">船长@Quant</span>
    <a class="tag" taget="_blank" href="/search/Python/1.htm">Python</a><a class="tag" taget="_blank" href="/search/%E9%87%91%E8%9E%8D%E7%A7%91%E6%8A%80/1.htm">金融科技</a><a class="tag" taget="_blank" href="/search/prefect/1.htm">prefect</a><a class="tag" taget="_blank" href="/search/polars/1.htm">polars</a><a class="tag" taget="_blank" href="/search/%E5%B7%A5%E4%BD%9C%E6%B5%81%E7%BC%96%E6%8E%92/1.htm">工作流编排</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%A4%84%E7%90%86/1.htm">数据处理</a>
                            <div>工作流编排利器:Prefect全流程解析本文系统讲解了Prefect工作流编排工具,从基础入门到高级应用,涵盖任务与流程管理、数据处理、执行器配置、监控调试、性能优化及与其他工具集成等内容,文末项目实战示例,帮助读者全面回顾Prefect知识点。Prefect官方文档https://docs.prefect.io/v3/get-started/index一、Prefect基础入门(一)关于Pref</div>
                        </li>
                        <li><a href="/article/1899426299345170432.htm"
                               title="入坑 Python 全能实战小白训练营,470 集干货 12.9G 大揭秘!" target="_blank">入坑 Python 全能实战小白训练营,470 集干货 12.9G 大揭秘!</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/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/pandas/1.htm">pandas</a><a class="tag" taget="_blank" href="/search/numpy/1.htm">numpy</a><a class="tag" taget="_blank" href="/search/matplotlib/1.htm">matplotlib</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/php/1.htm">php</a>
                            <div>家人们,我最近挖到了一个Python学习的宝藏——Python全能实战小白训练营。整整470集,内容超丰富,资源包有12.9G,完全就是为咱们这些想系统学习Python的小白量身定制的。接下来就给大家好好唠唠。随着课程深入,会涉及到Python的各种高级特性,比如面向对象编程、模块与包的使用。在讲面向对象编程时,老师通过打造一个小型游戏角色系统,把类、对象、继承、多态这些抽象概念诠释得生动形象,让</div>
                        </li>
                        <li><a href="/article/1899424913056395264.htm"
                               title="深度学习训练中GPU内存管理" target="_blank">深度学习训练中GPU内存管理</a>
                            <span class="text-muted">@Mr_LiuYang</span>
    <a class="tag" taget="_blank" href="/search/%E9%81%87%E5%88%B0%E8%BF%87%E7%9A%84%E9%97%AE%E9%A2%98/1.htm">遇到过的问题</a><a class="tag" taget="_blank" href="/search/%E5%86%85%E5%AD%98%E7%AE%A1%E7%90%86/1.htm">内存管理</a><a class="tag" taget="_blank" href="/search/%E5%86%85%E5%AD%98%E6%BA%A2%E5%87%BA/1.htm">内存溢出</a><a class="tag" taget="_blank" href="/search/out/1.htm">out</a><a class="tag" taget="_blank" href="/search/of/1.htm">of</a><a class="tag" taget="_blank" href="/search/memory/1.htm">memory</a><a class="tag" taget="_blank" href="/search/GPU%E5%86%85%E5%AD%98/1.htm">GPU内存</a>
                            <div>文章目录概述常见问题1、设备选择和数据迁移2、显存监控函数3、显存释放函数4、自适应batchsize调节5、梯度累积概述在深度学习模型训练中,主流GPU显存通常为8GB~80GB,内存不足会导致训练中断或BatchSize受限,GPU内存管理是优化性能和避免OutOfMemoryError的关键挑战。本博客简介PyTorch中GPU内存管理的核心函数、用法和实战技巧,帮助开发者高效利用显存资源。</div>
                        </li>
                        <li><a href="/article/1899424786732347392.htm"
                               title="深度学习pytorch之简单方法自定义9类卷积即插即用" target="_blank">深度学习pytorch之简单方法自定义9类卷积即插即用</a>
                            <span class="text-muted">@Mr_LiuYang</span>
    <a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%A7%86%E8%A7%89%E5%9F%BA%E7%A1%80/1.htm">计算机视觉基础</a><a class="tag" taget="_blank" href="/search/%E5%8D%B7%E7%A7%AF%E7%B1%BB%E5%9E%8B/1.htm">卷积类型</a><a class="tag" taget="_blank" href="/search/%E9%9D%9E%E5%AF%B9%E7%A7%B0%E5%8D%B7%E7%A7%AF/1.htm">非对称卷积</a><a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%8D%B7%E7%A7%AF/1.htm">深度卷积</a><a class="tag" taget="_blank" href="/search/%E7%A9%BA%E6%B4%9E%E5%8D%B7%E7%A7%AF/1.htm">空洞卷积</a><a class="tag" taget="_blank" href="/search/%E7%BB%84%E5%8D%B7%E7%A7%AF/1.htm">组卷积</a><a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%8F%AF%E5%88%86%E7%A6%BB%E5%8D%B7%E7%A7%AF/1.htm">深度可分离卷积</a><a class="tag" taget="_blank" href="/search/%E5%8A%A8%E6%80%81%E5%8D%B7%E7%A7%AF/1.htm">动态卷积</a>
                            <div>本文详细解析了PyTorch中torch.nn.Conv2d的核心参数,通过代码示例演示了如何利用这一基础函数实现多种卷积操作。涵盖的卷积类型包括:标准卷积、逐点卷积(1x1卷积)、非对称卷积(长宽不等的卷积核)、空洞卷积(扩大感受野)、深度卷积(逐通道滤波)、组卷积(分组独立处理)、深度可分离卷积(深度+逐点组合)、转置卷积(上采样)和动态卷积(动态生成卷积核),帮助读者理解如何通过调整参数灵活</div>
                        </li>
                        <li><a href="/article/1899413693385469952.htm"
                               title="深度学习PyTorch之数据加载DataLoader" target="_blank">深度学习PyTorch之数据加载DataLoader</a>
                            <span class="text-muted">@Mr_LiuYang</span>
    <a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%A7%86%E8%A7%89%E5%9F%BA%E7%A1%80/1.htm">计算机视觉基础</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/pytorch/1.htm">pytorch</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a>
                            <div>深度学习pytorch之简单方法自定义9类卷积即插即用文章目录数据加载基础架构1、Dataset类详解2、DataLoader核心参数解析3、数据增强数据加载基础架构核心类关系图torch.utils.data├──Dataset(抽象基类)├──DataLoader(数据加载器)├──Sampler(采样策略)├──BatchSampler(批量采样)└──IterableDataset(流式数</div>
                        </li>
                        <li><a href="/article/1899398305947906048.htm"
                               title="【Servlet】深入解析 Servlet 启动过程 —— 原理分析、代码实战及在 JDK 和 Spring 中的应用" target="_blank">【Servlet】深入解析 Servlet 启动过程 —— 原理分析、代码实战及在 JDK 和 Spring 中的应用</a>
                            <span class="text-muted">工一木子</span>
    <a class="tag" taget="_blank" href="/search/%E5%8E%9F%E7%90%86%E5%88%86%E6%9E%90/1.htm">原理分析</a><a class="tag" taget="_blank" href="/search/Servlet/1.htm">Servlet</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/servlet/1.htm">servlet</a>
                            <div>深入解析Servlet启动过程——原理分析、代码实战及在JDK和Spring中的应用在JavaWeb开发中,Servlet是一种用于创建动态Web应用程序的核心技术。作为JavaEE(现在是JakartaEE)的基础,Servlet在处理客户端请求、生成响应等方面发挥着重要作用。理解Servlet的启动过程,不仅能帮助我们调试和优化应用,还能为深入掌握JavaWeb开发的核心原理打下坚实基础。本文</div>
                        </li>
                        <li><a href="/article/1899392881412599808.htm"
                               title="【30天玩转python】项目实战:从零开始开发一个Python项目" target="_blank">【30天玩转python】项目实战:从零开始开发一个Python项目</a>
                            <span class="text-muted">爱技术的小伙子</span>
    <a class="tag" taget="_blank" href="/search/30%E5%A4%A9%E7%8E%A9%E8%BD%ACpython/1.htm">30天玩转python</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a>
                            <div>项目实战:从零开始开发一个Python项目在学习Python的过程中,开发一个完整的项目是非常重要的实战练习。它不仅能够帮助你巩固所学的知识,还能提高实际编程能力。本文将带领你从零开始开发一个Python项目,介绍从项目规划、环境搭建、代码实现到项目发布的完整过程。我们将以一个简单的“任务管理系统”为例,逐步讲解如何构建、测试和优化这个项目。1.项目规划1.1项目简介我们将开发一个基于命令行的任务</div>
                        </li>
                        <li><a href="/article/1899383046205927424.htm"
                               title="异步处理方式之信号(一):基础知识和signal函数说明" target="_blank">异步处理方式之信号(一):基础知识和signal函数说明</a>
                            <span class="text-muted">叨陪鲤</span>
    <a class="tag" taget="_blank" href="/search/Linux%E9%AB%98%E7%BA%A7%E7%BD%91%E7%BB%9C%E7%BC%96%E7%A8%8B/1.htm">Linux高级网络编程</a><a class="tag" taget="_blank" href="/search/openswan%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90/1.htm">openswan源码分析</a><a class="tag" taget="_blank" href="/search/Linux%E4%B8%8A%E7%9A%84%E4%BF%A1%E5%8F%B7/1.htm">Linux上的信号</a><a class="tag" taget="_blank" href="/search/%E5%BC%82%E6%AD%A5%E4%BF%A1%E5%8F%B7%E5%A4%84%E7%90%86/1.htm">异步信号处理</a><a class="tag" taget="_blank" href="/search/signal/1.htm">signal</a><a class="tag" taget="_blank" href="/search/sigaction/1.htm">sigaction</a>
                            <div>文章目录1.引言2.信号的概念2.1信号操作之忽略信号2.2信号操作之捕捉信号2.3信号操作之执行系统默认操作2.4常见的信号3.函数signal3.1signal函数介绍3.2signal函数示例3.3signal函数的限制1.引言信号是一种软中断。很多比较重要的应用程序都需要处理信号。信号提供了一种异步处理事件的方法,例如:终端用户输入中断键,会通过信号机制终止一个程序等。早期的信号存在丢失的</div>
                        </li>
                        <li><a href="/article/1899381531961520128.htm"
                               title="FastAPI 自定义参数验证器完全指南:从基础到高级实战" target="_blank">FastAPI 自定义参数验证器完全指南:从基础到高级实战</a>
                            <span class="text-muted">qcidyu</span>
    <a class="tag" taget="_blank" href="/search/%E6%96%87%E7%AB%A0%E5%BD%92%E6%A1%A3/1.htm">文章归档</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8%E6%80%A7/1.htm">安全性</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E6%A0%A1%E9%AA%8C/1.htm">数据校验</a><a class="tag" taget="_blank" href="/search/Web%E5%BC%80%E5%8F%91/1.htm">Web开发</a><a class="tag" taget="_blank" href="/search/API%E8%AE%BE%E8%AE%A1/1.htm">API设计</a><a class="tag" taget="_blank" href="/search/Field%E5%87%BD%E6%95%B0/1.htm">Field函数</a><a class="tag" taget="_blank" href="/search/%E5%8F%82%E6%95%B0%E9%AA%8C%E8%AF%81/1.htm">参数验证</a><a class="tag" taget="_blank" href="/search/FastAPI/1.htm">FastAPI</a>
                            <div>title:FastAPI自定义参数验证器完全指南:从基础到高级实战date:2025/3/11updated:2025/3/11author:cmdragonexcerpt:本教程深入探讨FastAPI中自定义参数验证器的使用,特别是通过Field函数进行数据校验。从基础概念到高级用法,通过详细的代码示例、课后测验和常见错误解决方案,帮助初学者快速掌握FastAPI中自定义参数验证器的核心知识。</div>
                        </li>
                        <li><a href="/article/1899380396282408960.htm"
                               title="SpringBoot中的导入导出(SpringBoot导出word文档、Hutool导入excel、easypoi之easy导入数据库、导出excel文件、POI设置单元格式)" target="_blank">SpringBoot中的导入导出(SpringBoot导出word文档、Hutool导入excel、easypoi之easy导入数据库、导出excel文件、POI设置单元格式)</a>
                            <span class="text-muted">种豆走天下</span>
    <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/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a>
                            <div>SpringBoot中的导入导出java导出word文档1先准备好一个导出Word文档的模板。例如:2.打开doc文件后,文件中的另存为,然后选择保存类型为2003版本的(*.xml)3、刚生成的xml文件里面比较乱,要整理一下,方法如下:使用Eclipse/idea,新建一个jsp,把xml里面的东西覆盖更新刚才的jsp,ctrl+Shift+F/ctrl+alt+L把文件整理一下,在拷贝出来,</div>
                        </li>
                        <li><a href="/article/1899375096087244800.htm"
                               title="从零打造工业级智能二维码识别系统:基于PyQt5与ZXingCpp的实战指南" target="_blank">从零打造工业级智能二维码识别系统:基于PyQt5与ZXingCpp的实战指南</a>
                            <span class="text-muted">蜡笔小新星</span>
    <a class="tag" taget="_blank" href="/search/PyQt5/1.htm">PyQt5</a><a class="tag" taget="_blank" href="/search/qt/1.htm">qt</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/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%9B%BE%E5%83%8F%E5%A4%84%E7%90%86/1.htm">图像处理</a><a class="tag" taget="_blank" href="/search/%E7%BB%8F%E9%AA%8C%E5%88%86%E4%BA%AB/1.htm">经验分享</a><a class="tag" taget="_blank" href="/search/pyqt/1.htm">pyqt</a><a class="tag" taget="_blank" href="/search/%E6%89%AB%E7%A0%81%E8%AF%BB%E7%A0%81%E8%A7%A3%E7%A0%81/1.htm">扫码读码解码</a>
                            <div>文章目录第一章:系统全景解析1.1实时识别工作流图解1.2界面布局与功能分区说明1.3代码文件结构树形图第二章:环境搭建与依赖管理2.1必需组件清单2.2虚拟环境配置步骤2.3摄像头硬件检测方法第三章:多线程视频采集3.1VideoThread类设计剖析3.2图像采集核心循环3.3线程安全停止机制3.4信号槽通信实例第四章:图像预处理流水线4.1预处理方法开关实现4.2自适应二值化算法4.3图像格</div>
                        </li>
                        <li><a href="/article/1899372064511422464.htm"
                               title="uniapp水印相机(水印照片,图片加水印)" target="_blank">uniapp水印相机(水印照片,图片加水印)</a>
                            <span class="text-muted">corekeys</span>
    <a class="tag" taget="_blank" href="/search/uniapp/1.htm">uniapp</a><a class="tag" taget="_blank" href="/search/uni-app/1.htm">uni-app</a>
                            <div>在实际开发的项目中,我们有时候会遇到相机拍照上传照片的时候需要带有水印的功能。下面整理了我在自己的项目中做的水印相机(完整源码)功能实战分享给大家。水印中内容包含如下(实际包含的内容根据你的实际需求而定,这里只是以我的项目需求为例):具体日期时间,如:2023-05-2512:00:00星期四地理位置,如:江苏省南京市雨花台区软件大道19号经纬度,如:纬度:32.08405200000000,经度</div>
                        </li>
                        <li><a href="/article/1899368189171658752.htm"
                               title="HarmonyNext实战:基于ArkTS的高性能音视频播放器开发" target="_blank">HarmonyNext实战:基于ArkTS的高性能音视频播放器开发</a>
                            <span class="text-muted"></span>
    <a class="tag" taget="_blank" href="/search/harmonyos-next/1.htm">harmonyos-next</a>
                            <div>HarmonyNext实战:基于ArkTS的高性能音视频播放器开发引言在HarmonyNext生态系统中,音视频播放是一个复杂且具有挑战性的领域。本文将深入探讨如何利用ArkTS语言开发一个高性能的音视频播放器,涵盖从基础播放功能到高级控制与优化的完整流程。我们将通过一个实战案例,详细讲解如何实现一个支持多种格式、流畅播放的音视频播放器,并确保其性能优化。1.环境准备与项目初始化首先,确保你的开发</div>
                        </li>
                        <li><a href="/article/1899368190434144256.htm"
                               title="HarmonyNext实战案例:基于ArkTS的高性能音视频处理应用开发" target="_blank">HarmonyNext实战案例:基于ArkTS的高性能音视频处理应用开发</a>
                            <span class="text-muted"></span>
    <a class="tag" taget="_blank" href="/search/harmonyos-next/1.htm">harmonyos-next</a>
                            <div>HarmonyNext实战案例:基于ArkTS的高性能音视频处理应用开发引言在HarmonyNext生态系统中,ArkTS作为新一代的编程语言,为开发者提供了强大的工具来构建高性能、跨平台的应用。本文将深入探讨如何使用ArkTS12+语法开发一个高性能的音视频处理应用,涵盖从基础概念到高级技巧的全面讲解。通过本案例,您将学习到如何利用HarmonyNext的特性,结合ArkTS的强大功能,实现复杂</div>
                        </li>
                        <li><a href="/article/1899367277074116608.htm"
                               title="利用Java爬虫获取衣联网商品详情:实战指南" target="_blank">利用Java爬虫获取衣联网商品详情:实战指南</a>
                            <span class="text-muted">Jason-河山</span>
    <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                            <div>在电商领域,获取商品详情是数据分析和市场研究的重要环节。衣联网作为知名的电商平台,提供了丰富的服装商品资源。本文将详细介绍如何利用Java编写爬虫程序,通过商品ID获取衣联网商品详情。一、准备工作(一)环境搭建Java安装:确保已安装Java开发环境,推荐使用JDK11或更高版本。开发工具配置:使用IntelliJIDEA或Eclipse等Java开发工具,创建一个新的Maven项目。依赖库添加:</div>
                        </li>
                        <li><a href="/article/1899364628991897600.htm"
                               title="uniApp实战二:仿今日相机水印功能" target="_blank">uniApp实战二:仿今日相机水印功能</a>
                            <span class="text-muted">博主逸尘</span>
    <a class="tag" taget="_blank" href="/search/uniApp%E5%AE%9E%E6%88%98/1.htm">uniApp实战</a><a class="tag" taget="_blank" href="/search/uni-app/1.htm">uni-app</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E7%A0%81%E7%9B%B8%E6%9C%BA/1.htm">数码相机</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a>
                            <div>文章目录1.最终效果预览2.页面实现1.最终效果预览2.页面实现页面布局拍照data定义data(){return{snapSrc:"",cvHeight:"",cvWidth:"",tKey:"时间:",addKey:"地点:",};},点击事件及方法handleTakePhotoNew(){this.snapSrc=""uni.chooseImage({count:1,success:(res</div>
                        </li>
                        <li><a href="/article/1899364248610467840.htm"
                               title="机器学习之线性代数" target="_blank">机器学习之线性代数</a>
                            <span class="text-muted">珠峰日记</span>
    <a class="tag" taget="_blank" href="/search/AI%E7%90%86%E8%AE%BA%E4%B8%8E%E5%AE%9E%E8%B7%B5/1.htm">AI理论与实践</a><a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/1.htm">机器学习</a><a class="tag" taget="_blank" href="/search/%E7%BA%BF%E6%80%A7%E4%BB%A3%E6%95%B0/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>
                            <div>文章目录一、引言:线性代数为何是AI的基石二、向量:AI世界的基本构建块(一)向量的定义(二)向量基础操作(三)重要概念三、矩阵:AI数据的强大容器(一)矩阵的定义(二)矩阵运算(三)矩阵特性(四)矩阵分解(五)Python示例(使用NumPy库)四、线性代数在AI中的应用(一)数据表示(二)降维:PCA(三)线性回归(四)计算机视觉(五)自然语言处理一、引言:线性代数为何是AI的基石在人工智能领</div>
                        </li>
                        <li><a href="/article/1899361476905332736.htm"
                               title="鸿蒙ArkUI瀑布流开发实战:WaterFlow组件与LazyForEach高效实现" target="_blank">鸿蒙ArkUI瀑布流开发实战:WaterFlow组件与LazyForEach高效实现</a>
                            <span class="text-muted">写雨.0</span>
    <a class="tag" taget="_blank" href="/search/HarmonyOS/1.htm">HarmonyOS</a><a class="tag" taget="_blank" href="/search/NEXT/1.htm">NEXT</a><a class="tag" taget="_blank" href="/search/harmonyos/1.htm">harmonyos</a><a class="tag" taget="_blank" href="/search/%E5%8D%8E%E4%B8%BA/1.htm">华为</a>
                            <div>前言瀑布流布局(WaterfallFlow)是购物、资讯类应用的核心交互设计,如何在鸿蒙ArkUI中高效实现多列动态加载与滚动优化?本文将以小红书类似的结构为例,手把手教你使用WaterFlow组件与LazyForEach懒加载技术,解决数据量大时的性能瓶颈,并提供多设备适配方案。一、ArkUI瀑布流核心组件1.WaterFlow组件鸿蒙的WaterFlow组件是瀑布流布局的容器,支持以下关键属性</div>
                        </li>
                        <li><a href="/article/1899361381703020544.htm"
                               title="程序员如何用DeepSeek让代码效率翻倍?这份实战手册请收好" target="_blank">程序员如何用DeepSeek让代码效率翻倍?这份实战手册请收好</a>
                            <span class="text-muted"></span>
    <a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a>
                            <div>最近公司新来的实习生小张让我眼前一亮,上周他只用三小时就完成了原本需要两天的工作量——优化一个老旧的后端接口。当我翻开他的代码才发现,这个00后小伙子的秘密武器居然是个叫DeepSeek的AI工具。你可能已经注意到,GitHub上越来越多的开源项目开始标注"DeepSeek适配"的字样。这个由中国团队自主研发的大模型,正在悄然改变程序员的工作方式。还记得去年调试分布式系统时的痛苦经历吗?当时我对着</div>
                        </li>
                        <li><a href="/article/1899360719070097408.htm"
                               title="Qt程序闪退如何查原因呢,闪退点不是自己应用代码" target="_blank">Qt程序闪退如何查原因呢,闪退点不是自己应用代码</a>
                            <span class="text-muted">bug菌¹</span>
    <a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/CSDN%E9%97%AE%E7%AD%94%E8%A7%A3%E6%83%91%28%E5%85%A8%E6%A0%88%E7%89%88%29/1.htm">CSDN问答解惑(全栈版)</a><a class="tag" taget="_blank" href="/search/%E5%85%A8%E6%A0%88Bug%E8%B0%83%E4%BC%98%28%E5%AE%9E%E6%88%98%E7%89%88%29/1.htm">全栈Bug调优(实战版)</a><a class="tag" taget="_blank" href="/search/qt/1.htm">qt</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</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/c%2B%2B/1.htm">c++</a>
                            <div>本文收录于《CSDN问答解惑-专业版》专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!问题描述  Qt程序闪退如何查原因呢,闪退点不是自己应用代码如图,因为是qt底层,这种闪退该怎么查原因和避免呢,现在遇到很多这种底层报错又没办法查代码如上问题有来自我自身项目</div>
                        </li>
                        <li><a href="/article/1899360717161689088.htm"
                               title="tauri + vue3 如何实现在一个页面上局部加载外部网页?" target="_blank">tauri + vue3 如何实现在一个页面上局部加载外部网页?</a>
                            <span class="text-muted">bug菌¹</span>
    <a class="tag" taget="_blank" href="/search/%E5%85%A8%E6%A0%88Bug%E8%B0%83%E4%BC%98%28%E5%AE%9E%E6%88%98%E7%89%88%29/1.htm">全栈Bug调优(实战版)</a><a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/CSDN%E9%97%AE%E7%AD%94%E8%A7%A3%E6%83%91%28%E5%85%A8%E6%A0%88%E7%89%88%29/1.htm">CSDN问答解惑(全栈版)</a><a class="tag" taget="_blank" href="/search/tauri/1.htm">tauri</a><a class="tag" taget="_blank" href="/search/vue3/1.htm">vue3</a>
                            <div>本文收录于「Bug调优」专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!问题描述  tauriv1(1.6左右)+vue3我想在vue3前端页面上在一个页面而不是window.open打开一个新的窗口去加载外部网页我想在一个页面中局部中间加载一个外部网页(试过</div>
                        </li>
                        <li><a href="/article/1899356684506165248.htm"
                               title="ES6之解构" target="_blank">ES6之解构</a>
                            <span class="text-muted">Hopebearer_</span>
    <a class="tag" taget="_blank" href="/search/ES6/1.htm">ES6</a><a class="tag" taget="_blank" href="/search/es6/1.htm">es6</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/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/ecmascript/1.htm">ecmascript</a>
                            <div>文章目录ES6之解构一、数组解构1.基本解构2.部分解构3.默认值4.剩余参数5.嵌套解构6.交换变量二、对象解构1.基本解构2.重命名3.默认值4.剩余参数三、函数参数结构1.数组参数解构2.对象参数解构3.默认值四、注意事项1.解构顺序2.undefined情况3.剩余元素4.对象的方法解构ES6之解构解构是JavaScript(ES6及以后版本)中一种非常强大的语法特性,它允许我们按照一定模</div>
                        </li>
                        <li><a href="/article/1899349242577743872.htm"
                               title="公务员行测之速算分数记忆检验-无答案版本" target="_blank">公务员行测之速算分数记忆检验-无答案版本</a>
                            <span class="text-muted">Lemon爱吃苹果</span>
    <a class="tag" taget="_blank" href="/search/%E5%85%AC%E5%8A%A1%E5%91%98/1.htm">公务员</a><a class="tag" taget="_blank" href="/search/%E5%85%AC%E5%8A%A1%E5%91%98/1.htm">公务员</a><a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA/1.htm">计算机</a>
                            <div>前言为了提高速算速度,有一些分数是必须要记忆的,这个博客是为了检验自己记忆效果的,答案在下一篇博客上面,自己查看哟!!!速算之分数记忆检验12=%\frac{1}{2}=\%21=%13=%\frac{1}{3}=\%31=%14=%\frac{1}{4}=\%41=%15=%\frac{1}{5}=\%51=%16=%\frac{1}{6}=\%61=%17=%\frac{1}{7}=\%71=</div>
                        </li>
                        <li><a href="/article/1899343573246078976.htm"
                               title="web前端期末大作业:婚纱网页主题网站设计——唯一旅拍婚纱公司网站HTML+CSS+JavaScript" target="_blank">web前端期末大作业:婚纱网页主题网站设计——唯一旅拍婚纱公司网站HTML+CSS+JavaScript</a>
                            <span class="text-muted">IT-司马青衫</span>
    <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E8%AF%BE%E7%A8%8B%E8%AE%BE%E8%AE%A1/1.htm">课程设计</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a>
                            <div>‍静态网站的编写主要是用HTMLDⅣV+CSSJS等来完成页面的排版设计‍,一般的网页作业需要融入以下知识点:div布局、浮动定位、高级css、表格、表单及验证、js轮播图、音频视频Fash的应用、uli、下拉导航栏、鼠标划过效果等知识点,学生网页作业源码,制作水平和原创度都适合学习或交作业用,记得点赞。精彩专栏推荐【作者主页——获取更多优质源码】【web前端期末大作业——毕设项目精品实战案例(1</div>
                        </li>
                        <li><a href="/article/1899343190855577600.htm"
                               title="关联规则算法:揭秘数据中的隐藏关系,从理论到实战" target="_blank">关联规则算法:揭秘数据中的隐藏关系,从理论到实战</a>
                            <span class="text-muted">秋声studio</span>
    <a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E7%AE%97%E6%B3%95%E8%AF%A6%E8%A7%A3/1.htm">机器学习算法详解</a><a class="tag" taget="_blank" href="/search/%E5%85%B3%E8%81%94%E8%A7%84%E5%88%99%E7%AE%97%E6%B3%95/1.htm">关联规则算法</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E6%8C%96%E6%8E%98/1.htm">数据挖掘</a><a class="tag" taget="_blank" href="/search/Apriori%E7%AE%97%E6%B3%95/1.htm">Apriori算法</a><a class="tag" taget="_blank" href="/search/FP-Growth%E7%AE%97%E6%B3%95/1.htm">FP-Growth算法</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AE%E4%BC%98%E5%8C%96/1.htm">大数据优化</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E9%A2%84%E5%A4%84%E7%90%86/1.htm">数据预处理</a><a class="tag" taget="_blank" href="/search/%E5%A2%9E%E9%87%8F%E5%BC%8F%E6%9B%B4%E6%96%B0/1.htm">增量式更新</a>
                            <div>引言在当今数据驱动的时代,如何从海量数据中挖掘出有价值的信息成为了各行各业的核心挑战。关联规则算法作为数据挖掘领域的重要工具,能够帮助我们发现数据中隐藏的关联关系,从而为决策提供支持。无论是电商平台的商品推荐,还是医疗领域的疾病诊断,关联规则算法都展现出了强大的应用潜力。本文将从基础概念出发,逐步深入探讨关联规则算法的核心原理、经典算法及其优化策略。无论你是数据挖掘的初学者,还是希望进一步了解关联</div>
                        </li>
                        <li><a href="/article/1899336890570567680.htm"
                               title="机器学习实战——音乐流派分类(主页有源码)" target="_blank">机器学习实战——音乐流派分类(主页有源码)</a>
                            <span class="text-muted">喵了个AI</span>
    <a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E5%AE%9E%E6%88%98/1.htm">机器学习实战</a><a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/1.htm">机器学习</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>
                            <div>✨个人主页欢迎您的访问✨期待您的三连✨✨个人主页欢迎您的访问✨期待您的三连✨✨个人主页欢迎您的访问✨期待您的三连✨1.简介音乐流派分类是音乐信息检索(MusicInformationRetrieval,MIR)中的一个重要任务,旨在通过分析音频信号的特征,将音乐自动分类到不同的流派(如古典、摇滚、爵士、流行等)。随着数字音乐平台的普及,音乐流派分类技术被广泛应用于音乐推荐、自动标签生成和音乐库管理</div>
                        </li>
                        <li><a href="/article/1899330208956215296.htm"
                               title="Python:每日一题之错误票据" target="_blank">Python:每日一题之错误票据</a>
                            <span class="text-muted">努力的敲码工</span>
    <a class="tag" taget="_blank" href="/search/%E8%93%9D%E6%A1%A5%E6%9D%AF/1.htm">蓝桥杯</a><a class="tag" taget="_blank" href="/search/%E6%AF%8F%E6%97%A5%E4%B8%80%E9%A2%98/1.htm">每日一题</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E8%93%9D%E6%A1%A5%E6%9D%AF/1.htm">蓝桥杯</a>
                            <div>题目描述某涉密单位下发了某种票据,并要在年终全部收回。每张票据有唯一的ID号。全年所有票据的ID号是连续的,但ID的开始数码是随机选定的。因为工作人员疏忽,在录入ID号的时候发生了一处错误,造成了某个ID断号,另外一个ID重号。你的任务是通过编程,找出断号的ID和重号的ID。假设断号不可能发生在最大和最小号。输入描述输入描述要求程序首先输入一个整数N(N<100)表示后面数据行数。接着读入N行数据</div>
                        </li>
                        <li><a href="/article/1899312428492058624.htm"
                               title="docker命令实战运用部署服务" target="_blank">docker命令实战运用部署服务</a>
                            <span class="text-muted">云原生的爱好者</span>
    <a class="tag" taget="_blank" href="/search/docker/1.htm">docker</a><a class="tag" taget="_blank" href="/search/%E5%AE%B9%E5%99%A8/1.htm">容器</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a>
                            <div>1.接上篇博文,先讲一下如何利用docker来对容器进行一个守护进程的启动,以及如何进入日期,如下:[root@cjr~]#dockerimagesREPOSITORYTAGIMAGEIDCREATEDSIZEcentoslatest5d0da3dc97643yearsago231MB[root@cjr~]#dockerrun-td--nametestcentos:latest1b0cfe7658</div>
                        </li>
                                    <li><a href="/article/14.htm"
                                           title="Spring4.1新特性——综述" target="_blank">Spring4.1新特性——综述</a>
                                        <span class="text-muted">jinnianshilongnian</span>
    <a class="tag" taget="_blank" href="/search/spring+4.1/1.htm">spring 4.1</a>
                                        <div>目录 
    Spring4.1新特性——综述 
    Spring4.1新特性——Spring核心部分及其他 
    Spring4.1新特性——Spring缓存框架增强 
    Spring4.1新特性——异步调用和事件机制的异常处理 
    Spring4.1新特性——数据库集成测试脚本初始化 
    Spring4.1新特性——Spring MVC增强 
    Spring4.1新特性——页面自动化测试框架Spring MVC T</div>
                                    </li>
                                    <li><a href="/article/141.htm"
                                           title="Schema与数据类型优化" target="_blank">Schema与数据类型优化</a>
                                        <span class="text-muted">annan211</span>
    <a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a><a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a>
                                        <div>
    
    目前商城的数据库设计真是一塌糊涂,表堆叠让人不忍直视,无脑的架构师,说了也不听。
    在数据库设计之初,就应该仔细揣摩可能会有哪些查询,有没有更复杂的查询,而不是仅仅突出
    很表面的业务需求,这样做会让你的数据库性能成倍提高,当然,丑陋的架构师是不会这样去考虑问题的。
    
    选择优化的数据类型
     1 更小的通常更好
       更小的数据类型通常更快,因为他们占用更少的磁盘、内存和cpu缓存,</div>
                                    </li>
                                    <li><a href="/article/268.htm"
                                           title="第一节 HTML概要学习" target="_blank">第一节 HTML概要学习</a>
                                        <span class="text-muted">chenke</span>
    <a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a>
                                        <div>第一节 HTML概要学习 
     
    1. 什么是HTML 
     
    HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写,它规定了自己的语法规则,用来表示比“文本”更丰富的意义,比如图片,表格,链接等。浏览器(IE,FireFox等)软件知道HTML语言的语法,可以用来查看HTML文档。目前互联网上的绝大部分网页都是使用HTML编写的。 
     
    打开记事本 输入一下内</div>
                                    </li>
                                    <li><a href="/article/395.htm"
                                           title="MyEclipse里部分习惯的更改" target="_blank">MyEclipse里部分习惯的更改</a>
                                        <span class="text-muted">Array_06</span>
    <a class="tag" taget="_blank" href="/search/eclipse/1.htm">eclipse</a>
                                        <div>继续补充中---------------------- 
     
     
     
    1.更改自己合适快捷键windows-->prefences-->java-->editor-->Content Assist--> 
         Activation triggers for java的右侧“.”就可以改变常用的快捷键 
     
    选中 Text </div>
                                    </li>
                                    <li><a href="/article/522.htm"
                                           title="近一个月的面试总结" target="_blank">近一个月的面试总结</a>
                                        <span class="text-muted">cugfy</span>
    <a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a>
                                        <div>本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/46753275 
     
     
    前言 
          打算换个工作,近一个月面试了不少的公司,下面将一些面试经验和思考分享给大家。另外校招也快要开始了,为在校的学生提供一些经验供参考,希望都能找到满意的工作。 </div>
                                    </li>
                                    <li><a href="/article/649.htm"
                                           title="HTML5一个小迷宫游戏" target="_blank">HTML5一个小迷宫游戏</a>
                                        <span class="text-muted">357029540</span>
    <a class="tag" taget="_blank" href="/search/html5/1.htm">html5</a>
                                        <div>     通过《HTML5游戏开发》摘抄了一个小迷宫游戏,感觉还不错,可以画画,写字,把摘抄的代码放上来分享下,喜欢的同学可以拿来玩玩! 
     
    <html> 
     <head> 
     <title>创建运行迷宫</title> 
     <script type="text/javascript"</div>
                                    </li>
                                    <li><a href="/article/776.htm"
                                           title="10步教你上传githib数据" target="_blank">10步教你上传githib数据</a>
                                        <span class="text-muted">张亚雄</span>
    <a class="tag" taget="_blank" href="/search/git/1.htm">git</a>
                                        <div>官方的教学还有其他博客里教的都是给懂的人说得,对已我们这样对我大菜鸟只能这么来锻炼,下面先不玩什么深奥的,先暂时用着10步干净利索。等玩顺溜了再用其他的方法。 
    操作过程(查看本目录下有哪些文件NO.1)ls 
    (跳转到子目录NO.2)cd+空格+目录 
    (继续NO.3)ls 
    (匹配到子目录NO.4)cd+ 目录首写字母+tab键+(首写字母“直到你所用文件根就不再按TAB键了”) 
    (查看文件</div>
                                    </li>
                                    <li><a href="/article/903.htm"
                                           title="MongoDB常用操作命令大全" target="_blank">MongoDB常用操作命令大全</a>
                                        <span class="text-muted">adminjun</span>
    <a class="tag" taget="_blank" href="/search/mongodb/1.htm">mongodb</a><a class="tag" taget="_blank" href="/search/%E6%93%8D%E4%BD%9C%E5%91%BD%E4%BB%A4/1.htm">操作命令</a>
                                        <div>成功启动MongoDB后,再打开一个命令行窗口输入mongo,就可以进行数据库的一些操作。输入help可以看到基本操作命令,只是MongoDB没有创建数据库的命令,但有类似的命令   如:如果你想创建一个“myTest”的数据库,先运行use myTest命令,之后就做一些操作(如:db.createCollection('user')),这样就可以创建一个名叫“myTest”的数据库。   
    一</div>
                                    </li>
                                    <li><a href="/article/1030.htm"
                                           title="bat调用jar包并传入多个参数" target="_blank">bat调用jar包并传入多个参数</a>
                                        <span class="text-muted">aijuans</span>
    
                                        <div>下面的主程序是通过eclipse写的: 
    1.在Main函数接收bat文件传递的参数(String[] args) 
     如:   String ip =args[0];          String user=args[1];       &nbs</div>
                                    </li>
                                    <li><a href="/article/1157.htm"
                                           title="Java中对类的主动引用和被动引用" target="_blank">Java中对类的主动引用和被动引用</a>
                                        <span class="text-muted">ayaoxinchao</span>
    <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E4%B8%BB%E5%8A%A8%E5%BC%95%E7%94%A8/1.htm">主动引用</a><a class="tag" taget="_blank" href="/search/%E5%AF%B9%E7%B1%BB%E7%9A%84%E5%BC%95%E7%94%A8/1.htm">对类的引用</a><a class="tag" taget="_blank" href="/search/%E8%A2%AB%E5%8A%A8%E5%BC%95%E7%94%A8/1.htm">被动引用</a><a class="tag" taget="_blank" href="/search/%E7%B1%BB%E5%88%9D%E5%A7%8B%E5%8C%96/1.htm">类初始化</a>
                                        <div>  
    在Java代码中,有些类看上去初始化了,但其实没有。例如定义一定长度某一类型的数组,看上去数组中所有的元素已经被初始化,实际上一个都没有。对于类的初始化,虚拟机规范严格规定了只有对该类进行主动引用时,才会触发。而除此之外的所有引用方式称之为对类的被动引用,不会触发类的初始化。虚拟机规范严格地规定了有且仅有四种情况是对类的主动引用,即必须立即对类进行初始化。四种情况如下:1.遇到ne</div>
                                    </li>
                                    <li><a href="/article/1284.htm"
                                           title="导出数据库 提示 outfile disabled" target="_blank">导出数据库 提示 outfile disabled</a>
                                        <span class="text-muted">BigBird2012</span>
    <a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a>
                                        <div>在windows控制台下,登陆mysql,备份数据库: 
      
    mysql>mysqldump -u root -p test test > D:\test.sql 
    使用命令 mysqldump 格式如下: mysqldump -u root -p *** DBNAME > E:\\test.sql。 
    注意:执行该命令的时候不要进入mysql的控制台再使用,这样会报</div>
                                    </li>
                                    <li><a href="/article/1411.htm"
                                           title="Javascript 中的 && 和 ||" target="_blank">Javascript 中的 && 和 ||</a>
                                        <span class="text-muted">bijian1013</span>
    <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/%26%26/1.htm">&&</a><a class="tag" taget="_blank" href="/search/%7C%7C/1.htm">||</a>
                                        <div>        准备两个对象用于下面的讨论 
    var alice = {
        name: "alice",
        toString: function () {
            return this.name;
        }
    }
    var smith = {
        name: "smith",
     </div>
                                    </li>
                                    <li><a href="/article/1538.htm"
                                           title="[Zookeeper学习笔记之四]Zookeeper Client Library会话重建" target="_blank">[Zookeeper学习笔记之四]Zookeeper Client Library会话重建</a>
                                        <span class="text-muted">bit1129</span>
    <a class="tag" taget="_blank" href="/search/zookeeper/1.htm">zookeeper</a>
                                        <div>为了说明问题,先来看个简单的示例代码: 
      
    package com.tom.zookeeper.book;
    
    import com.tom.Host;
    import org.apache.zookeeper.WatchedEvent;
    import org.apache.zookeeper.ZooKeeper;
    import org.apache.zookeeper.Wat</div>
                                    </li>
                                    <li><a href="/article/1665.htm"
                                           title="【Scala十一】Scala核心五:case模式匹配" target="_blank">【Scala十一】Scala核心五:case模式匹配</a>
                                        <span class="text-muted">bit1129</span>
    <a class="tag" taget="_blank" href="/search/scala/1.htm">scala</a>
                                        <div>package spark.examples.scala.grammars.caseclasses
    
    object CaseClass_Test00 {
    
      def simpleMatch(arg: Any) = arg match {
        case v: Int => "This is an Int"
        case v: (Int, String)</div>
                                    </li>
                                    <li><a href="/article/1792.htm"
                                           title="运维的一些面试题" target="_blank">运维的一些面试题</a>
                                        <span class="text-muted">yuxianhua</span>
    <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a>
                                        <div>1、Linux挂载Winodws共享文件夹 
      
    mount -t cifs //1.1.1.254/ok /var/tmp/share/ -o username=administrator,password=yourpass
    或
    mount -t cifs -o username=xxx,password=xxxx //1.1.1.1/a /win 
      
     </div>
                                    </li>
                                    <li><a href="/article/1919.htm"
                                           title="Java lang包-Boolean" target="_blank">Java lang包-Boolean</a>
                                        <span class="text-muted">BrokenDreams</span>
    <a class="tag" taget="_blank" href="/search/boolean/1.htm">boolean</a>
                                        <div>         Boolean类是Java中基本类型boolean的包装类。这个类比较简单,直接看源代码吧。 
     
    
    public final class Boolean implements java.io.Serializable,
                                          </div>
                                    </li>
                                    <li><a href="/article/2046.htm"
                                           title="读《研磨设计模式》-代码笔记-命令模式-Command" target="_blank">读《研磨设计模式》-代码笔记-命令模式-Command</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/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a>
                                        <div>声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/ 
     
     
    
    
    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.List;
    
    /**
     * GOF 在《设计模式》一书中阐述命令模式的意图:“将一个请求封装</div>
                                    </li>
                                    <li><a href="/article/2173.htm"
                                           title="matlab下GPU编程笔记" target="_blank">matlab下GPU编程笔记</a>
                                        <span class="text-muted">cherishLC</span>
    <a class="tag" taget="_blank" href="/search/matlab/1.htm">matlab</a>
                                        <div>不多说,直接上代码 
     
    gpuDevice   %   查看系统中的gpu,,其中的DeviceSupported会给出matlab支持的GPU个数。
    g=gpuDevice(1);    %会清空 GPU 1中的所有数据,,将GPU1 设为当前GPU
    reset(g)  %也可以清空GPU中数据。
    
    a=1;
    a=gpuArray(a);    %将a从CPU移到GPU中
    onGP</div>
                                    </li>
                                    <li><a href="/article/2300.htm"
                                           title="SVN安装过程" target="_blank">SVN安装过程</a>
                                        <span class="text-muted">crabdave</span>
    <a class="tag" taget="_blank" href="/search/SVN/1.htm">SVN</a>
                                        <div>SVN安装过程 
      
    subversion-1.6.12 
      
    ./configure --prefix=/usr/local/subversion --with-apxs=/usr/local/apache2/bin/apxs --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr --with-openssl=/</div>
                                    </li>
                                    <li><a href="/article/2427.htm"
                                           title="sql 行列转换" target="_blank">sql 行列转换</a>
                                        <span class="text-muted">daizj</span>
    <a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/%E8%A1%8C%E5%88%97%E8%BD%AC%E6%8D%A2/1.htm">行列转换</a><a class="tag" taget="_blank" href="/search/%E8%A1%8C%E8%BD%AC%E5%88%97/1.htm">行转列</a><a class="tag" taget="_blank" href="/search/%E5%88%97%E8%BD%AC%E8%A1%8C/1.htm">列转行</a>
                                        <div>行转列的思想是通过case when 来实现 
    列转行的思想是通过union all 来实现 
     
    下面具体例子: 
     
    假设有张学生成绩表(tb)如下: 
    Name Subject Result 
    张三 语文  74 
    张三 数学  83 
    张三 物理  93 
    李四 语文  74 
    李四 数学  84 
    李四 物理  94 
    */ 
    /* 
    想变成 
    姓名   &</div>
                                    </li>
                                    <li><a href="/article/2554.htm"
                                           title="MySQL--主从配置" target="_blank">MySQL--主从配置</a>
                                        <span class="text-muted">dcj3sjt126com</span>
    <a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a>
                                        <div>   linux下的mysql主从配置:   说明:由于MySQL不同版本之间的(二进制日志)binlog格式可能会不一样,因此最好的搭配组合是Master的MySQL版本和Slave的版本相同或者更低,   Master的版本肯定不能高于Slave版本。(版本向下兼容)   
       mysql1  : 192.168.100.1    //master   mysq</div>
                                    </li>
                                    <li><a href="/article/2681.htm"
                                           title="关于yii 数据库添加新字段之后model类的修改" target="_blank">关于yii 数据库添加新字段之后model类的修改</a>
                                        <span class="text-muted">dcj3sjt126com</span>
    <a class="tag" taget="_blank" href="/search/Model/1.htm">Model</a>
                                        <div>rules: 
    array('新字段','safe','on'=>'search') 
    1、array('新字段', 'safe')//这个如果是要用户输入的话,要加一下, 
    2、array('新字段', 'numerical'),//如果是数字的话 
    3、array('新字段', 'length', 'max'=>100),//如果是文本 
    1、2、3适当的最少要加一条,新字段才会被</div>
                                    </li>
                                    <li><a href="/article/2808.htm"
                                           title="sublime text3 中文乱码解决" target="_blank">sublime text3 中文乱码解决</a>
                                        <span class="text-muted">dyy_gusi</span>
    <a class="tag" taget="_blank" href="/search/Sublime+Text/1.htm">Sublime Text</a>
                                        <div>sublime text3中文乱码解决 
    原因:缺少转换为UTF-8的插件 
    目的:安装ConvertToUTF8插件包 
    第一步:安装能自动安装插件的插件,百度“Codecs33”,然后按照步骤可以得到以下一段代码: 
    import urllib.request,os,hashlib; h = 'eb2297e1a458f27d836c04bb0cbaf282' + 'd0e7a30980927</div>
                                    </li>
                                    <li><a href="/article/2935.htm"
                                           title="概念了解:CGI,FastCGI,PHP-CGI与PHP-FPM" target="_blank">概念了解:CGI,FastCGI,PHP-CGI与PHP-FPM</a>
                                        <span class="text-muted">geeksun</span>
    <a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a>
                                        <div>CGI 
    CGI全称是“公共网关接口”(Common Gateway Interface),HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。 
    CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。如php,perl,tcl等。 FastCGI 
    FastCGI像是一个常驻(long-live)型的CGI,它可以一直执行着,只要激活后,不</div>
                                    </li>
                                    <li><a href="/article/3062.htm"
                                           title="Git push 报错 "error: failed to push some refs to " 解决" target="_blank">Git push 报错 "error: failed to push some refs to " 解决</a>
                                        <span class="text-muted">hongtoushizi</span>
    <a class="tag" taget="_blank" href="/search/git/1.htm">git</a>
                                        <div>Git push 报错 "error: failed to push some refs to " . 
    此问题出现的原因是:由于远程仓库中代码版本与本地不一致冲突导致的。 
    由于我在第一次git pull --rebase 代码后,准备push的时候,有别人往线上又提交了代码。所以出现此问题。 
    解决方案: 
    1: git pull    
    2:</div>
                                    </li>
                                    <li><a href="/article/3189.htm"
                                           title="第四章 Lua模块开发" target="_blank">第四章 Lua模块开发</a>
                                        <span class="text-muted">jinnianshilongnian</span>
    <a class="tag" taget="_blank" href="/search/nginx/1.htm">nginx</a><a class="tag" taget="_blank" href="/search/lua/1.htm">lua</a>
                                        <div>在实际开发中,不可能把所有代码写到一个大而全的lua文件中,需要进行分模块开发;而且模块化是高性能Lua应用的关键。使用require第一次导入模块后,所有Nginx 进程全局共享模块的数据和代码,每个Worker进程需要时会得到此模块的一个副本(Copy-On-Write),即模块可以认为是每Worker进程共享而不是每Nginx Server共享;另外注意之前我们使用init_by_lua中初</div>
                                    </li>
                                    <li><a href="/article/3316.htm"
                                           title="java.lang.reflect.Proxy" target="_blank">java.lang.reflect.Proxy</a>
                                        <span class="text-muted">liyonghui160com</span>
    
                                        <div>  
    1.简介 
      
    Proxy 提供用于创建动态代理类和实例的静态方法 
    (1)动态代理类的属性 
     
     代理类是公共的、最终的,而不是抽象的 
     未指定代理类的非限定名称。但是,以字符串 "$Proxy" 开头的类名空间应该为代理类保留 
     代理类扩展 java.lang.reflect.Proxy  
     代理类会按同一顺序准确地实现其创建时指定的接口</div>
                                    </li>
                                    <li><a href="/article/3443.htm"
                                           title="Java中getResourceAsStream的用法" target="_blank">Java中getResourceAsStream的用法</a>
                                        <span class="text-muted">pda158</span>
    <a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                                        <div>1.Java中的getResourceAsStream有以下几种: 1. Class.getResourceAsStream(String path) : path 不以’/'开头时默认是从此类所在的包下取资源,以’/'开头则是从ClassPath根下获取。其只是通过path构造一个绝对路径,最终还是由ClassLoader获取资源。     2. Class.getClassLoader.get</div>
                                    </li>
                                    <li><a href="/article/3570.htm"
                                           title="spring 包官方下载地址(非maven)" target="_blank">spring 包官方下载地址(非maven)</a>
                                        <span class="text-muted">sinnk</span>
    <a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a>
                                        <div>SPRING官方网站改版后,建议都是通过 Maven和Gradle下载,对不使用Maven和Gradle开发项目的,下载就非常麻烦,下给出Spring Framework jar官方直接下载路径: 
      
     http://repo.springsource.org/libs-release-local/org/springframework/spring/ 
      
    s</div>
                                    </li>
                                    <li><a href="/article/3697.htm"
                                           title="Oracle学习笔记(7) 开发PLSQL子程序和包" target="_blank">Oracle学习笔记(7) 开发PLSQL子程序和包</a>
                                        <span class="text-muted">vipbooks</span>
    <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B/1.htm">编程</a>
                                        <div>    哈哈,清明节放假回去了一下,真是太好了,回家的感觉真好啊!现在又开始出差之旅了,又好久没有来了,今天继续Oracle的学习! 
         这是第七章的学习笔记,学习完第六章的动态SQL之后,开始要学习子程序和包的使用了……,希望大家能多给俺一些支持啊! 
        编程时使用的工具是PLSQL</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>