C#和HttpClient结合示例:微博热点数据分析

概述

微博是中国最大的社交媒体平台之一,它每天都会发布各种各样的热点话题,反映了网民的关注点和舆论趋势。本文将介绍如何使用C#语言和HttpClient类来实现一个简单的爬虫程序,从微博网站上抓取热点话题的数据,并进行一些基本的分析和可视化。

正文

爬虫程序设计

爬虫程序的主要步骤如下:

  1. 使用HttpClient类创建一个HTTP客户端对象,用于发送请求和接收响应。
  2. 使用爬虫代理服务,提供代理IP地址和端口,以及用户名和密码,用于绕过微博网站的反爬虫机制。
  3. 使用多线程技术,创建多个线程,每个线程负责爬取一个热点话题的数据。
  4. 使用正则表达式或者HTML解析器,从响应内容中提取热点话题的标题、链接、阅读量、讨论量等信息,并保存到一个数据结构中。
  5. 使用System.Drawing类或者其他库,根据统计结果生成一些图表,如柱状图、饼图等,用于展示热点话题的分布和比例。

爬虫程序代码

下面是一个简单的爬虫程序代码示例,仅供参考:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Text.RegularExpressions;
using System.Threading;
using System.Threading.Tasks;

namespace WeiboCrawler
{
    class Program
    {
        // 创建一个HTTP客户端对象,用于发送请求和接收响应
        static HttpClient httpClient = new HttpClient();

        // 创建一个数据结构,用于保存热点话题的信息
        static List<Topic> topics = new List<Topic>();

        // 定义一个锁对象,用于同步多线程操作
        static object locker = new object();

        static void Main(string[] args)
        {
            // 亿牛云爬虫标准版,使用代理服务设置代理域名、端口、用户名和密码
            var proxy = new WebProxy("http://wwww.16yun.cn:8080");
            proxy.Credentials = new NetworkCredential("16YUNXXX", "16IPXXX");
            httpClient.DefaultRequestHeaders.Add("Proxy-Authorization", "Basic " + Convert.ToBase64String(Encoding.UTF8.GetBytes("username:password")));
            httpClient.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36");
            httpClient.Timeout = TimeSpan.FromSeconds(10);

            // 定义一个热点话题的URL列表,每个URL对应一个热点话题的页面
            var urls = new List<string>
            {
                "https://s.weibo.com/top/summary?cate=realtimehot",
                "https://s.weibo.com/top/summary?cate=socialevent",
                "https://s.weibo.com/top/summary?cate=entertainment",
                "https://s.weibo.com/top/summary?cate=sports",
                "https://s.weibo.com/top/summary?cate=tech",
                "https://s.weibo.com/top/summary?cate=finance"
            };

            // 使用多线程技术,创建多个线程,每个线程负责爬取一个热点话题的数据
            var tasks = new List<Task>();
            foreach (var url in urls)
            {
                tasks.Add(Task.Run(() => Crawl(url)));
            }

            // 等待所有线程完成任务
            Task.WaitAll(tasks.ToArray());

            // 使用LINQ或者其他方法,简单的对数据进行排序、分组操作,得到一些有意义的统计结果
            Console.WriteLine("爬取完成,共获取了{0}个热点话题的信息。", topics.Count);
            Console.WriteLine("按阅读量降序排列的前10个热点话题如下:");
            foreach (var topic in topics.OrderByDescending(t => t.ReadCount).Take(10))
            {
                Console.WriteLine("{0} {1} {2} {3}", topic.Title, topic.Link, topic.ReadCount, topic.DiscussCount);
            }
            Console.WriteLine("按讨论量降序排列的前10个热点话题如下:");
            foreach (var topic in topics.OrderByDescending(t => t.DiscussCount).Take(10))
            {
                Console.WriteLine("{0} {1} {2} {3}", topic.Title, topic.Link, topic.ReadCount, topic.DiscussCount);
            }
            Console.WriteLine("按类别分组的热点话题数量如下:");
            foreach (var group in topics.GroupBy(t => t.Category))
            {
                Console.WriteLine("{0} {1}", group.Key, group.Count());
            }
        }

        // 定义一个方法,用于爬取一个热点话题的数据
        static void Crawl(string url)
        {
            try
            {
                // 发送GET请求,获取响应内容
                var response = httpClient.GetAsync(url).Result;
                var content = response.Content.ReadAsStringAsync().Result;

                // 使用正则表达式或者HTML解析器,从响应内容中提取热点话题的标题、链接、阅读量、讨论量等信息,并保存到一个数据结构中
                var regex = new Regex(@".+?)"" target=""_blank"" title=""(?.+?)"">.+?</a><span>(?<readcount>\d+)</span></td>\s*<td class=""td-03""><i class=""icon-txt"">.+?</i><span>(?<discusscount>\d+)</span></td>"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
                <span class="token class-name"><span class="token keyword">var</span></span> matches <span class="token operator">=</span> regex<span class="token punctuation">.</span><span class="token function">Matches</span><span class="token punctuation">(</span>content<span class="token punctuation">)</span><span class="token punctuation">;</span>
                <span class="token keyword">foreach</span> <span class="token punctuation">(</span><span class="token class-name">Match</span> match <span class="token keyword">in</span> matches<span class="token punctuation">)</span>
                <span class="token punctuation">{</span>
                    <span class="token class-name"><span class="token keyword">var</span></span> topic <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token constructor-invocation class-name">Topic</span>
                    <span class="token punctuation">{</span>
                        Title <span class="token operator">=</span> match<span class="token punctuation">.</span>Groups<span class="token punctuation">[</span><span class="token string">"title"</span><span class="token punctuation">]</span><span class="token punctuation">.</span>Value<span class="token punctuation">,</span>
                        Link <span class="token operator">=</span> <span class="token string">"https://s.weibo.com"</span> <span class="token operator">+</span> match<span class="token punctuation">.</span>Groups<span class="token punctuation">[</span><span class="token string">"link"</span><span class="token punctuation">]</span><span class="token punctuation">.</span>Value<span class="token punctuation">,</span>
                        ReadCount <span class="token operator">=</span> <span class="token keyword">int</span><span class="token punctuation">.</span><span class="token function">Parse</span><span class="token punctuation">(</span>match<span class="token punctuation">.</span>Groups<span class="token punctuation">[</span><span class="token string">"readcount"</span><span class="token punctuation">]</span><span class="token punctuation">.</span>Value<span class="token punctuation">)</span><span class="token punctuation">,</span>
                        DiscussCount <span class="token operator">=</span> <span class="token keyword">int</span><span class="token punctuation">.</span><span class="token function">Parse</span><span class="token punctuation">(</span>match<span class="token punctuation">.</span>Groups<span class="token punctuation">[</span><span class="token string">"discusscount"</span><span class="token punctuation">]</span><span class="token punctuation">.</span>Value<span class="token punctuation">)</span><span class="token punctuation">,</span>
                        Category <span class="token operator">=</span> url<span class="token punctuation">.</span><span class="token function">Split</span><span class="token punctuation">(</span><span class="token char">'='</span><span class="token punctuation">)</span><span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span>
                    <span class="token punctuation">}</span><span class="token punctuation">;</span>
                    <span class="token comment">// 使用锁对象,避免多线程操作数据结构时发生冲突</span>
                    <span class="token keyword">lock</span> <span class="token punctuation">(</span>locker<span class="token punctuation">)</span>
                    <span class="token punctuation">{</span>
                        topics<span class="token punctuation">.</span><span class="token function">Add</span><span class="token punctuation">(</span>topic<span class="token punctuation">)</span><span class="token punctuation">;</span>
                    <span class="token punctuation">}</span>
                <span class="token punctuation">}</span>
            <span class="token punctuation">}</span>
            <span class="token keyword">catch</span> <span class="token punctuation">(</span><span class="token class-name">Exception</span> ex<span class="token punctuation">)</span>
            <span class="token punctuation">{</span>
                <span class="token comment">// 处理异常情况,如网络超时、响应格式错误等</span>
                Console<span class="token punctuation">.</span><span class="token function">WriteLine</span><span class="token punctuation">(</span><span class="token string">"爬取{0}时发生错误:{1}"</span><span class="token punctuation">,</span> url<span class="token punctuation">,</span> ex<span class="token punctuation">.</span>Message<span class="token punctuation">)</span><span class="token punctuation">;</span>
            <span class="token punctuation">}</span>
        <span class="token punctuation">}</span>
    <span class="token punctuation">}</span>

    <span class="token comment">// 定义一个类,用于表示一个热点话题的信息</span>
    <span class="token keyword">class</span> <span class="token class-name">Topic</span>
    <span class="token punctuation">{</span>
        <span class="token keyword">public</span> <span class="token return-type class-name"><span class="token keyword">string</span></span> Title <span class="token punctuation">{</span> <span class="token keyword">get</span><span class="token punctuation">;</span> <span class="token keyword">set</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token comment">// 标题</span>
        <span class="token keyword">public</span> <span class="token return-type class-name"><span class="token keyword">string</span></span> Link <span class="token punctuation">{</span> <span class="token keyword">get</span><span class="token punctuation">;</span> <span class="token keyword">set</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token comment">// 链接</span>
        <span class="token keyword">public</span> <span class="token return-type class-name"><span class="token keyword">int</span></span> ReadCount <span class="token punctuation">{</span> <span class="token keyword">get</span><span class="token punctuation">;</span> <span class="token keyword">set</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token comment">// 阅读量</span>
        <span class="token keyword">public</span> <span class="token return-type class-name"><span class="token keyword">int</span></span> DiscussCount <span class="token punctuation">{</span> <span class="token keyword">get</span><span class="token punctuation">;</span> <span class="token keyword">set</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token comment">// 讨论量</span>
        <span class="token keyword">public</span> <span class="token return-type class-name"><span class="token keyword">string</span></span> Category <span class="token punctuation">{</span> <span class="token keyword">get</span><span class="token punctuation">;</span> <span class="token keyword">set</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token comment">// 类别</span>
    <span class="token punctuation">}</span>
<span class="token punctuation">}</span>

</code></pre> 
  <h3>结论</h3> 
  <p>上面的代码首先创建了一个HTTP客户端对象,配置爬虫代理和请求头信息提高采集成功率,然后定义了一个数据结构来保存热点话题的信息。通过多线程技术,同时访问多个热点话题的网页,使用正则表达式从网页内容中提取热点话题的标题、链接、阅读量、讨论量等信息,然后将这些信息保存到数据结构中。最后,对爬取到的数据进行排序、分组,并输出一些统计结果,如热点话题数量、按阅读量降序排列的前10个热点话题以及按讨论量降序排列的前10个热点话题等。此代码主要用于网络爬虫和数据分析,帮助用户获取微博热点话题的相关信息。</p> 
 </div> 
</div>
                            </div>
                        </div>
                    </div>
                    <!--PC和WAP自适应版-->
                    <div id="SOHUCS" sid="1719626416812797952"></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">你可能感兴趣的:(C#,代理IP,爬虫技术,c#,数据分析,HttpClient,微博热点,爬虫代理,网络爬虫,爬虫程序)</h4>
        <div id="paradigm-article-related">
            <div class="recommend-post mb30">
                <ul class="widget-links">
                    <li><a href="/article/1899343699440103424.htm"
                           title="Qt 串口类QSerialPort 使用笔记" target="_blank">Qt 串口类QSerialPort 使用笔记</a>
                        <span class="text-muted">一对一答疑的编程作家朱文伟</span>
<a class="tag" taget="_blank" href="/search/qt/1.htm">qt</a><a class="tag" taget="_blank" href="/search/qt/1.htm">qt</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/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>Qt串口类QSerialPort使用笔记虽然现在大多数的家用PC机上已经不提供RS232接口了。但是由于RS232串口操作简单、通讯可靠,在工业领域中仍然有大量的应用。Qt以前的版本中,没有提供官方的对RS232串口的支持,编写串口程序很不方便。现在好了,在Qt5.1中提供了QtSerialPort模块,方便编程人员快速的开发应用串口的应用程序。本文就简单的讲讲QtSerialPort模块的使用。</div>
                    </li>
                    <li><a href="/article/1899343446825562112.htm"
                           title="API身份验证使用JWT的.NET实现" target="_blank">API身份验证使用JWT的.NET实现</a>
                        <span class="text-muted">雨夜思绪~静谧思考</span>
<a class="tag" taget="_blank" href="/search/.net/1.htm">.net</a>
                        <div>API身份验证使用JWT的.NET实现在现代的应用程序开发中,API身份验证是一项至关重要的任务。JWT(JSONWebToken)是一种常用的身份验证机制,它使用JSON格式表示身份验证信息,并使用签名进行验证。在.NET平台上,我们可以使用一些库来实现JWT身份验证。本文将介绍如何使用.NET来进行API身份验证并使用JWT作为身份验证机制。引入依赖项首先,我们需要在我们的项目中引入相关的依赖</div>
                    </li>
                    <li><a href="/article/1899342938668855296.htm"
                           title="【Go语言圣经1.1】" target="_blank">【Go语言圣经1.1】</a>
                        <span class="text-muted">Pyroyster</span>
<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>
                        <div>目标学习Go的编译方式、包的组织方式以及工具链的统一调用方式概念与定义packageGo语言通过包来组织代码。包类似于其它语言的库librarries或模块modules,每个包通常对应一个目录,目录中的所有.go文件都属于同一个包。特殊的main包:当代码使用packagemain声明时,表示这是一个可独立执行的程序而非一个库。程序的执行入口就是main函数import通过import语句,编译</div>
                    </li>
                    <li><a href="/article/1899342308868943872.htm"
                           title="一文理清:阿里系数据中台-数据治理工具集(傻傻也能分清楚)" target="_blank">一文理清:阿里系数据中台-数据治理工具集(傻傻也能分清楚)</a>
                        <span class="text-muted">Debug_Snail</span>
<a class="tag" taget="_blank" href="/search/Hadoop/1.htm">Hadoop</a><a class="tag" taget="_blank" href="/search/Big/1.htm">Big</a><a class="tag" taget="_blank" href="/search/Data/1.htm">Data</a><a class="tag" taget="_blank" href="/search/%E6%8A%80%E6%9C%AF%E5%B7%A5%E5%85%B7/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/hadoop/1.htm">hadoop</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E4%BB%93%E5%BA%93/1.htm">数据仓库</a>
                        <div>阿里云提供的大数据与数据分析产品种类较多,各产品的定位和核心功能有所不同。以下是对DataWorks、MaxCompute、Dataphin、AnalyticDBforMySQL(ADB)、QuickBI、EMR的详细梳理。一、核心产品定位与功能DataWorks定位:一站式大数据开发治理平台,提供数据集成、开发、调度、治理、服务等全链路能力。核心功能:数据集成:支持异构数据源(如数据库、OSS、</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/1899328316687577088.htm"
                           title="学习笔记10——并发编程2线程安全问题与同步机制" target="_blank">学习笔记10——并发编程2线程安全问题与同步机制</a>
                        <span class="text-muted">码代码的小仙女</span>
<a class="tag" taget="_blank" href="/search/%E9%AB%98%E7%BA%A7%E5%BC%80%E5%8F%91%E5%BF%85%E5%A4%87%E6%8A%80%E8%83%BD/1.htm">高级开发必备技能</a><a class="tag" taget="_blank" href="/search/java%E7%9F%A5%E8%AF%86/1.htm">java知识</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a>
                        <div>线程安全问题与同步机制线程安全的本质问题线程安全问题源于多线程环境下对共享资源(数据或状态)的非原子性、非可见性、非有序性访问,导致程序行为不符合预期。主要表现如下:竞态条件(RaceCondition):多个线程对同一资源进行非原子操作,导致结果依赖线程执行顺序。示例:两个线程同时执行count++(非原子操作,实际包含读-改-写三步)。内存可见性问题:线程修改共享变量后,其他线程无法立即看到最</div>
                    </li>
                    <li><a href="/article/1899325037823979520.htm"
                           title="暮然回首--再看C语言--常量与宏定义" target="_blank">暮然回首--再看C语言--常量与宏定义</a>
                        <span class="text-muted">812503533</span>
<a class="tag" taget="_blank" href="/search/%E8%93%A6%E7%84%B6%E5%9B%9E%E9%A6%96---%E5%86%8D%E7%9C%8BC%E8%AF%AD%E8%A8%80/1.htm">蓦然回首---再看C语言</a><a class="tag" taget="_blank" href="/search/c%E8%AF%AD%E8%A8%80/1.htm">c语言</a>
                        <div>常量与宏定义在C语言中,常量和宏定义是非常重要的概念。它们有助于提高程序的可读性、可维护性,并且能够避免重复代码。常量是指在程序运行期间其值不发生变化的变量,而宏定义是一种预处理指令,用于定义常量或代码片段,在编译阶段进行替换。一、常量常量是指在程序执行过程中其值不可改变的量。在C语言中,我们可以使用const关键字来声明常量。常量分为以下几种类型:常量整数:例如constinta=5;常量浮点数</div>
                    </li>
                    <li><a href="/article/1899323013787086848.htm"
                           title="50 种不同编程语言的“Hello World”,你知多少?" target="_blank">50 种不同编程语言的“Hello World”,你知多少?</a>
                        <span class="text-muted">逗逗逗逗666</span>
<a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B/1.htm">编程</a><a class="tag" taget="_blank" href="/search/hello/1.htm">hello</a><a class="tag" taget="_blank" href="/search/world/1.htm">world</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8%80/1.htm">编程语言</a>
                        <div>当我们学习一门编程语言时,都是从“Hello,World!”开始。所有程序员在其职业生涯中,都至少接触过一个经典的“Hello,World!”程序。通常程序员会使用多种编程语言,多的甚至实现了十几种。还有一种称为TTHW(Timeto“Hello,World!”)的方法,来衡量程序员创建一个新的“Hello,World!”程序的时间。你可以用多少种不同的语言编写一个“Hello,World!”程序</div>
                    </li>
                    <li><a href="/article/1899318225800327168.htm"
                           title="C++11之列表初始化" target="_blank">C++11之列表初始化</a>
                        <span class="text-muted">Octopus2077</span>
<a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a>
                        <div>发展历史C++11是C++的第⼆个主要版本,并且是从C++98起的最重要更新。它引⼊了⼤量更改,标准化了既有实践,并改进了对C++程序员可⽤的抽象。在它最终由ISO在2011年8⽉12⽇采纳前,⼈们曾使⽤名称“C++0x”,因为它曾被期待在2010年之前发布。C++03与C++11期间花了8年时间,故⽽这是迄今为⽌最⻓的版本间隔。从那时起,C++有规律地每3年更新⼀次。列表初始化(注意区分列表初始</div>
                    </li>
                    <li><a href="/article/1899317343830470656.htm"
                           title="C# &Unity 唐老狮 No.8 模拟面试题" target="_blank">C# &Unity 唐老狮 No.8 模拟面试题</a>
                        <span class="text-muted">咩咩-哈基米版</span>
<a class="tag" taget="_blank" href="/search/C%23/1.htm">C#</a><a class="tag" taget="_blank" href="/search/%26amp%3B%26amp%3B/1.htm">&&</a><a class="tag" taget="_blank" href="/search/Unity/1.htm">Unity</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95%E9%A2%98%E4%B8%8E%E7%AE%97%E6%B3%95%E5%90%88%E9%9B%86/1.htm">面试题与算法合集</a><a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a><a class="tag" taget="_blank" href="/search/unity/1.htm">unity</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>本文章不作任何商业用途仅作学习与交流安利唐老狮与其他老师合作的网站,内有大量免费资源和优质付费资源,我入门就是看唐老师的课程打好坚实的基础非常非常重要:全部-游习堂-唐老狮创立的游戏开发在线学习平台-PoweredByEduSoho如果你发现了文章内特殊的字体格式,那是AI补充的知识,我发现原网站下面有答案,我将会把答案以不同样式穿插在回答之中目录C#1.如果我们想为Unity中的Transfor</div>
                    </li>
                    <li><a href="/article/1899317217368010752.htm"
                           title="Linux 提权" target="_blank">Linux 提权</a>
                        <span class="text-muted">藤原千花的败北</span>
<a class="tag" taget="_blank" href="/search/%E6%9D%83%E9%99%90%E6%8F%90%E5%8D%87/1.htm">权限提升</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</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/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a>
                        <div>文章目录前言1.内核漏洞提权脏牛(CVE-2016-5195)2.不安全的系统配置项2.1SUID/SGID提权2.2sudo提权2.3定时任务提权2.4capabilities提权3.第三方软件提权TomcatmanagerNginx本地提权(CVE-2016-1247)Redis未授权4.参考前言Linux提权总结1.内核漏洞提权内核管理着组件(如系统上的内存)和应用程序之间的通信。这个关键作</div>
                    </li>
                    <li><a href="/article/1899313815368036352.htm"
                           title="QT显示网页控件QAxWidget、QWebEngineView及区别" target="_blank">QT显示网页控件QAxWidget、QWebEngineView及区别</a>
                        <span class="text-muted">AI+程序员在路上</span>
<a class="tag" taget="_blank" href="/search/QT%26amp%3BC%2B%2B%E5%AE%9E%E6%88%98%E7%B3%BB%E5%88%97/1.htm">QT&C++实战系列</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>
                        <div>一.QT种显示网页控件QAxWidget1.介绍QAxWidget属于QtAxContainer模块,ActiveX是微软提出的一种组件对象模型(COM)技术,允许不同的软件组件在Windows操作系统上进行交互和集成。QAxWidget为开发者提供了在Qt应用程序中使用ActiveX控件的能力,通过它可以将各种ActiveX控件嵌入到应用程序界面中。2.使用引入必要的模块在.pro文件中添加QT</div>
                    </li>
                    <li><a href="/article/1899311669117513728.htm"
                           title="四种主要的 API 架构风格:RPC、SOAP、REST、GRAPHQL" target="_blank">四种主要的 API 架构风格:RPC、SOAP、REST、GRAPHQL</a>
                        <span class="text-muted">小马不敲代码</span>
<a class="tag" taget="_blank" href="/search/%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1/1.htm">系统设计</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/rpc/1.htm">rpc</a><a class="tag" taget="_blank" href="/search/graphql/1.htm">graphql</a>
                        <div>讨论四种主要的API架构风格,比较它们的优缺点,并重点介绍每种情况下最适合的API架构风格。RPCSOAPRESTGRAPHQL两个单独的应用程序需要中介程序才能相互通信,因此,开发人员经常需要搭建桥梁——也就是应用程序编程接口(API),来允许一个系统访问另一个系统的信息或功能。为了快速、大规模地集成不同的应用程序,API使用协议或规范来定义那些通过网络传输的消息的语义和信息。这些规范构成了AP</div>
                    </li>
                    <li><a href="/article/1899310913526231040.htm"
                           title="06 - gldas水文模型数据处理 - 下载、matlab读取" target="_blank">06 - gldas水文模型数据处理 - 下载、matlab读取</a>
                        <span class="text-muted">咋(za)说</span>
<a class="tag" taget="_blank" href="/search/%E8%AE%BA%E6%96%87%E7%AC%94%E8%AE%B0/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/%E7%BB%8F%E9%AA%8C%E5%88%86%E4%BA%AB/1.htm">经验分享</a>
                        <div>gldas水文模型数据处理-下载、matlab读取0.引言1.GLDAS水文数据介绍2.GLDAS数据下载3.GLDAS数据读取的matlab程序0.引言  根据水量平衡方程,陆地水储量变化(Δtws\DeltatwsΔtws</div>
                    </li>
                    <li><a href="/article/1899310787294457856.htm"
                           title="PySide2是 Qt 库的 Python 绑定之一" target="_blank">PySide2是 Qt 库的 Python 绑定之一</a>
                        <span class="text-muted">WwwwwH_PLUS</span>
<a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/Qt/1.htm">Qt</a><a class="tag" taget="_blank" href="/search/qt/1.htm">qt</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>PySide2是Qt库的Python绑定之一,它为Python程序员提供了创建跨平台桌面应用程序的工具和功能。PySide2是Qt5.x系列的Python绑定,而Qt本身是一个跨平台的图形用户界面(GUI)框架,广泛用于开发各种类型的桌面应用程序,包括多种平台(Windows、Linux、macOS)的应用。主要特点跨平台支持:PySide2可以在Windows、Linux和macOS上运行,允许</div>
                    </li>
                    <li><a href="/article/1899310660534202368.htm"
                           title="使用LangChain访问个人数据第一章-简介" target="_blank">使用LangChain访问个人数据第一章-简介</a>
                        <span class="text-muted">明志刘明</span>
<a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%A8%A1%E5%9E%8B%E5%AD%A6%E4%B9%A0%E6%89%8B%E5%86%8C/1.htm">大模型学习手册</a><a class="tag" taget="_blank" href="/search/langchain/1.htm">langchain</a>
                        <div>需要学习提示词工程的同学请看面向开发者的提示词工程需要学习ChatGPT的同学请查看搭建基于ChatGPT的问答系统需要学习LangChian开发的同学请查看基于LangChain开发应用程序正文在大数据时代,数据价值逐渐凸显,打造定制化、个性化服务,个人数据尤为重要。要开发一个具备较强服务能力、能够充分展现个性化智能的应用程序,大模型与个人数据的对齐是一个重要步骤。作为针对大模型开发应运而生的框</div>
                    </li>
                    <li><a href="/article/1899310661024935936.htm"
                           title="使用LangChain访问个人数据第八章-总结" target="_blank">使用LangChain访问个人数据第八章-总结</a>
                        <span class="text-muted">明志刘明</span>
<a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%A8%A1%E5%9E%8B%E5%AD%A6%E4%B9%A0%E6%89%8B%E5%86%8C/1.htm">大模型学习手册</a><a class="tag" taget="_blank" href="/search/langchain/1.htm">langchain</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a>
                        <div>需要学习提示词工程的同学请看面向开发者的提示词工程需要学习ChatGPT的同学请查看搭建基于ChatGPT的问答系统需要学习LangChian开发的同学请查看基于LangChain开发应用程序本部分前几个章节请查看使用LangChain访问个人数据第一章-简介使用LangChain访问个人数据第二章-文档加载使用LangChain访问个人数据第三章-文档分割使用LangChain访问个人数据第四章</div>
                    </li>
                    <li><a href="/article/1899310408360062976.htm"
                           title="基于 LangChain 开发应用程序第一章-简介" target="_blank">基于 LangChain 开发应用程序第一章-简介</a>
                        <span class="text-muted">明志刘明</span>
<a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%A8%A1%E5%9E%8B%E5%AD%A6%E4%B9%A0%E6%89%8B%E5%86%8C/1.htm">大模型学习手册</a><a class="tag" taget="_blank" href="/search/langchain/1.htm">langchain</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a>
                        <div>需要学习提示词工程的同学请看面向开发者的提示词工程需要学习ChatGPT的同学请查看搭建基于ChatGPT的问答系统本部分章节目录如下:基于LangChain开发应用程序第一章-简介基于LangChain开发应用程序第二章-提示和输出基于LangChain开发应用程序第三章-储存基于LangChain开发应用程序第四章-模型链基于LangChain开发应用程序第五章-基于文档的问答基于LangCh</div>
                    </li>
                    <li><a href="/article/1899309273884717056.htm"
                           title="matlab spmd,matlab并行计算命令" target="_blank">matlab spmd,matlab并行计算命令</a>
                        <span class="text-muted">其实我是老莫</span>
<a class="tag" taget="_blank" href="/search/matlab/1.htm">matlab</a><a class="tag" taget="_blank" href="/search/spmd/1.htm">spmd</a>
                        <div>1.matlab仿真模型怎么并行计算以单台双核计算机为例。首先打开MATLAB命令窗口,输入matlabpoolopen就OK了。这样,就相当于将一台计算机的两个核心,当做两台机器用啦。接下来是编程序实现的方法。MATLAB并行计算的模式有几种?主要是两种:parfor模式和spmd模式。两种模式的应用都很简单。第一个中,parfor其实就是parallel+for简化而来,顾名思义啊,就是把原来</div>
                    </li>
                    <li><a href="/article/1899304097861922816.htm"
                           title="蓝桥杯冲击省一必刷题单(一)" target="_blank">蓝桥杯冲击省一必刷题单(一)</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/%E8%93%9D%E6%A1%A5%E6%9D%AF/1.htm">蓝桥杯</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a>
                        <div>此题单为算法基础精选题单,包含蓝桥杯常考考点以及各种经典算法,可以帮助你打牢基础,查漏补缺。本题单目标是冲击蓝桥杯省一国一,团体程序天梯赛个人国三、XCPC区域赛铜/银奖前言本次题单重点关注日期问题,进制转换问题,排序问题,其中日期问题和进制转换问题,几乎是必考题,几乎每年蓝桥杯都能看到,大家需要重点掌握。日期问题:蓝桥杯热门考点,基本每年省赛必考。进制转换问题:与日期一样蓝桥杯热门考点,基本每年</div>
                    </li>
                    <li><a href="/article/1899302603251052544.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>最近在程序员圈子里,有个同事老张的故事特别火。他原本每周要花20小时写接口文档,自从用上DeepSeek的代码补全功能,现在喝着咖啡看AI自动生成Swagger注释——这让我想起刚入行时,为了调通一个正则表达式熬夜到凌晨三点的自己。今天咱们不聊那些官方说明书,就说点真正能让键盘冒火星的实战技巧。藏在代码补全里的"作弊码"很多人以为DeepSeek就是个加强版搜索引擎,其实它对代码的理解远超想象。比</div>
                    </li>
                    <li><a href="/article/1899302459445145600.htm"
                           title="微信小程序将markdown内容转为pdf并下载" target="_blank">微信小程序将markdown内容转为pdf并下载</a>
                        <span class="text-muted">蓝天星空</span>
<a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B/1.htm">编程</a><a class="tag" taget="_blank" href="/search/2025%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BDAI/1.htm">2025人工智能AI</a><a class="tag" taget="_blank" href="/search/%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8%8B%E5%BA%8F/1.htm">微信小程序</a><a class="tag" taget="_blank" href="/search/pdf/1.htm">pdf</a>
                        <div>要在微信小程序中将Markdown内容转换为PDF并下载,您可以使用以下方法:方法一:使用第三方API服务选择第三方API服务:可以选择像Pandoc、Markdown-PDF或PDFShift这样的服务,将Markdown转换为PDF。例如,PDFShift提供了一个API接口,可以将Markdown内容转换为PDF格式。调用API:在微信小程序中,您可以使用wx.request方法来调用第三方</div>
                    </li>
                    <li><a href="/article/1899301843054424064.htm"
                           title="如何在 Dockerfile 中使用 if-else 条件表达式 ?" target="_blank">如何在 Dockerfile 中使用 if-else 条件表达式 ?</a>
                        <span class="text-muted"></span>
<a class="tag" taget="_blank" href="/search/docker/1.htm">docker</a>
                        <div>Docker是容器化应用程序的必要工具,使它们可移植和隔离。Dockerfile是Docker生态系统中的一个关键组件,它允许开发人员指定他们的应用程序应该如何被容器化。通常在Dockerfiles中需要条件逻辑,就像您在编程脚本中发现的那样。但是Dockerfile语法不直接支持if-else条件表达式。在本文中,我们将探讨如何在Dockerfiles中有效地使用条件逻辑,特别是使用外部参数。A</div>
                    </li>
                    <li><a href="/article/1899300818515980288.htm"
                           title="做了6年的Java,mysql去重查询方法" target="_blank">做了6年的Java,mysql去重查询方法</a>
                        <span class="text-muted">m0_57768082</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/java/1.htm">java</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/%E9%9D%A2%E8%AF%95/1.htm">面试</a>
                        <div>前言:求职季在即,技巧千万条,硬实力才是关键,听说今年疫情大环境不好,更要好好准备才行。MySQL是Java程序员面向高级的必备技能,很多朋友在面试时经常在这里折戟沉沙,饮恨不已。熟练掌握MySQL知识,在实践中具有很强的操作性,尤其是在互联网行业,不仅要写好代码、实现功能,而且还要在高并发的情况下能够正常运转。这篇文章总结了许多关于MySQL方面的知识总结,以及面试多家总结出来的常问面试题,希望</div>
                    </li>
                    <li><a href="/article/1899300696155549696.htm"
                           title="使用Java对接StockTV印度股票数据源API实战指南" target="_blank">使用Java对接StockTV印度股票数据源API实战指南</a>
                        <span class="text-muted"></span>
<a class="tag" taget="_blank" href="/search/java%E7%88%AC%E8%99%AB/1.htm">java爬虫</a>
                        <div>关键词:JavaAPI开发、SpringBoot、WebSocket、ApacheHttpClient一、项目概述本指南将使用Java实现StockTV金融数据API的完整对接方案,包含以下核心模块:✅RESTAPI客户端:支持同步/异步调用✅WebSocket实时订阅:基于SpringWebSocket✅企业级特性:连接池管理、熔断降级✅生产就绪:完整的异常处理和监控二、环境准备1.技术栈要求J</div>
                    </li>
                    <li><a href="/article/1899300061964201984.htm"
                           title="VSCode 插件开发实战(十六):详解插件生命周期" target="_blank">VSCode 插件开发实战(十六):详解插件生命周期</a>
                        <span class="text-muted">乐闻x</span>
<a class="tag" taget="_blank" href="/search/VsCode/1.htm">VsCode</a><a class="tag" taget="_blank" href="/search/%E4%BD%BF%E7%94%A8%E6%89%8B%E5%86%8C/1.htm">使用手册</a><a class="tag" taget="_blank" href="/search/vscode/1.htm">vscode</a><a class="tag" taget="_blank" href="/search/ide/1.htm">ide</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E8%BE%91%E5%99%A8/1.htm">编辑器</a>
                        <div>前言VSCode它不仅功能强大,而且可以通过插件进行扩展,以满足不同开发者的需求。那么,VSCode自定义插件的生命周期是如何运行的呢?今天我们就用通俗易懂的方式来讲解一下。什么是VSCode插件?VSCode插件是用来扩展编辑器功能的小程序。通过这些插件,我们可以添加新的语言支持、代码片段、调试支持等。VSCode插件通常是用JavaScript或TypeScript编写的,并打包成VSIX文件</div>
                    </li>
                    <li><a href="/article/1899298673951567872.htm"
                           title="Python Flask 在网页应用程序中处理错误和异常" target="_blank">Python Flask 在网页应用程序中处理错误和异常</a>
                        <span class="text-muted">dowhileprogramming</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/flask/1.htm">flask</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>PythonFlask在网页应用程序中处理错误和异常PythonFlask在网页应用程序中处理错误和异常PythonFlask在网页应用程序中处理错误和异常在我们所有的代码示例中,我们没有注意如何处理用户在浏览器中输入错误的URL或向我们的应用程序发送错误的参数集的情况。这不是设计意图,但目的是首先关注网页应用程序的关键组件。网页框架的美妙之处在于,它们通常默认支持错误处理。如果发生任何错误,将自</div>
                    </li>
                    <li><a href="/article/1899292496433836032.htm"
                           title="从零开始学习黑客技术,看这一篇就够了" target="_blank">从零开始学习黑客技术,看这一篇就够了</a>
                        <span class="text-muted">网络安全-旭师兄</span>
<a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/web%E5%AE%89%E5%85%A8/1.htm">web安全</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%AF%86%E7%A0%81%E5%AD%A6/1.htm">密码学</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a>
                        <div>基于入门网络安全/黑客打造的:黑客&网络安全入门&进阶学习资源包黑客,对于很多人来说,是一个神秘的代名词,加之影视作品夸张的艺术表现,使得黑客这个本来只专注于技术的群体,散发出亦正亦邪的神秘色彩。黑客源自英文hacker一词,最初曾指热心于计算机技术、水平高超的电脑高手,尤其是程序设计人员,逐渐区分为白帽、灰帽、黑帽等。其中,白帽黑客被称为道德黑客。他们不会非法入侵用户网络,而是通过一系列测试检查</div>
                    </li>
                    <li><a href="/article/1899291739009642496.htm"
                           title="探索R语言:经典案例解析与源代码" target="_blank">探索R语言:经典案例解析与源代码</a>
                        <span class="text-muted">翠绿探寻</span>
<a class="tag" taget="_blank" href="/search/r%E8%AF%AD%E8%A8%80/1.htm">r语言</a><a class="tag" taget="_blank" href="/search/%E4%BF%A1%E6%81%AF%E5%8F%AF%E8%A7%86%E5%8C%96/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/R%E8%AF%AD%E8%A8%80/1.htm">R语言</a>
                        <div>探索R语言:经典案例解析与源代码引言:R语言是一种流行的数据分析和统计建模工具,具有丰富的功能和广泛的应用领域。在本文中,我们将通过经典案例来探索R语言的一些重要功能和技术。我们将提供相应的源代码,以便读者能够实际运行并理解这些示例。案例一:数据导入与处理在数据分析中,数据导入和处理是首要任务。R语言提供了丰富的函数和包,用于处理各种数据格式。下面是一个简单的示例,演示了如何导入和处理CSV格式的</div>
                    </li>
                    <li><a href="/article/1899289850423603200.htm"
                           title="数据分析与AI丨AI Fabric:数据和人工智能架构的未来" target="_blank">数据分析与AI丨AI Fabric:数据和人工智能架构的未来</a>
                        <span class="text-muted">Altair澳汰尔</span>
<a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/1.htm">数据分析</a><a class="tag" taget="_blank" href="/search/ai/1.htm">ai</a><a class="tag" taget="_blank" href="/search/RapidMiner/1.htm">RapidMiner</a><a class="tag" taget="_blank" href="/search/%E7%9F%A5%E8%AF%86%E5%9B%BE%E8%B0%B1/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>AIFabric架构是模块化、可扩展且面向未来的,是现代商业环境中企业实现卓越的关键。在当今商业环境中,数据分析和人工智能领域发展可谓日新月异。几乎每天都有新兴技术诞生,新的应用场景不断涌现,前沿探索持续拓展。可遗憾的是,众多企业在利用数据和人工智能方面,脚步总是滞后。这是每个行业进行创新和获得竞争优势的冲刺阶段,但正如大多数企业时常感受到的那样,大规模实施下一代数据和AI工具说起来容易做起来难。</div>
                    </li>
                                <li><a href="/article/64.htm"
                                       title="关于旗正规则引擎中的MD5加密问题" target="_blank">关于旗正规则引擎中的MD5加密问题</a>
                                    <span class="text-muted">何必如此</span>
<a class="tag" taget="_blank" href="/search/jsp/1.htm">jsp</a><a class="tag" taget="_blank" href="/search/MD5/1.htm">MD5</a><a class="tag" taget="_blank" href="/search/%E8%A7%84%E5%88%99/1.htm">规则</a><a class="tag" taget="_blank" href="/search/%E5%8A%A0%E5%AF%86/1.htm">加密</a>
                                    <div>一般情况下,为了防止个人隐私的泄露,我们都会对用户登录密码进行加密,使数据库相应字段保存的是加密后的字符串,而非原始密码。 
在旗正规则引擎中,通过外部调用,可以实现MD5的加密,具体步骤如下: 
1.在对象库中选择外部调用,选择“com.flagleader.util.MD5”,在子选项中选择“com.flagleader.util.MD5.getMD5ofStr({arg1})”; 
2.在规</div>
                                </li>
                                <li><a href="/article/191.htm"
                                       title="【Spark101】Scala Promise/Future在Spark中的应用" target="_blank">【Spark101】Scala Promise/Future在Spark中的应用</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/Promise/1.htm">Promise</a>
                                    <div>Promise和Future是Scala用于异步调用并实现结果汇集的并发原语,Scala的Future同JUC里面的Future接口含义相同,Promise理解起来就有些绕。等有时间了再仔细的研究下Promise和Future的语义以及应用场景,具体参见Scala在线文档:http://docs.scala-lang.org/sips/completed/futures-promises.html</div>
                                </li>
                                <li><a href="/article/318.htm"
                                       title="spark sql 访问hive数据的配置详解" target="_blank">spark sql 访问hive数据的配置详解</a>
                                    <span class="text-muted">daizj</span>
<a class="tag" taget="_blank" href="/search/spark+sql/1.htm">spark sql</a><a class="tag" taget="_blank" href="/search/hive/1.htm">hive</a><a class="tag" taget="_blank" href="/search/thriftserver/1.htm">thriftserver</a>
                                    <div>spark sql 能够通过thriftserver 访问hive数据,默认spark编译的版本是不支持访问hive,因为hive依赖比较多,因此打的包中不包含hive和thriftserver,因此需要自己下载源码进行编译,将hive,thriftserver打包进去才能够访问,详细配置步骤如下: 
  
1、下载源码 
  
2、下载Maven,并配置 
此配置简单,就略过</div>
                                </li>
                                <li><a href="/article/445.htm"
                                       title="HTTP 协议通信" target="_blank">HTTP 协议通信</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/httpclient/1.htm">httpclient</a><a class="tag" taget="_blank" href="/search/http/1.htm">http</a><a class="tag" taget="_blank" href="/search/%E9%80%9A%E4%BF%A1/1.htm">通信</a>
                                    <div>  
                      
一:简介 
 HTTPCLIENT,通过JAVA基于HTTP协议进行点与点间的通信! 
  
  
二: 代码举例 
  
   测试类: 
 
import java</div>
                                </li>
                                <li><a href="/article/572.htm"
                                       title="java unix时间戳转换" target="_blank">java unix时间戳转换</a>
                                    <span class="text-muted">g21121</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                                    <div>把java时间戳转换成unix时间戳: 
Timestamp appointTime=Timestamp.valueOf(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()))
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:m</div>
                                </li>
                                <li><a href="/article/699.htm"
                                       title="web报表工具FineReport常用函数的用法总结(报表函数)" target="_blank">web报表工具FineReport常用函数的用法总结(报表函数)</a>
                                    <span class="text-muted">老A不折腾</span>
<a class="tag" taget="_blank" href="/search/web%E6%8A%A5%E8%A1%A8/1.htm">web报表</a><a class="tag" taget="_blank" href="/search/finereport/1.htm">finereport</a><a class="tag" taget="_blank" href="/search/%E6%80%BB%E7%BB%93/1.htm">总结</a>
                                    <div>说明:本次总结中,凡是以tableName或viewName作为参数因子的。函数在调用的时候均按照先从私有数据源中查找,然后再从公有数据源中查找的顺序。 
  
CLASS 
CLASS(object):返回object对象的所属的类。 
  
CNMONEY 
CNMONEY(number,unit)返回人民币大写。 
number:需要转换的数值型的数。 
unit:单位,</div>
                                </li>
                                <li><a href="/article/826.htm"
                                       title="java jni调用c++ 代码 报错" target="_blank">java jni调用c++ 代码 报错</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/C%2B%2B/1.htm">C++</a><a class="tag" taget="_blank" href="/search/jni/1.htm">jni</a>
                                    <div># 
# A fatal error has been detected by the Java Runtime Environment: 
# 
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00000000777c3290, pid=5632, tid=6656 
# 
# JRE version: Java(TM) SE Ru</div>
                                </li>
                                <li><a href="/article/953.htm"
                                       title="Spring中事件处理de小技巧" target="_blank">Spring中事件处理de小技巧</a>
                                    <span class="text-muted">aijuans</span>
<a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/Spring+%E6%95%99%E7%A8%8B/1.htm">Spring 教程</a><a class="tag" taget="_blank" href="/search/Spring+%E5%AE%9E%E4%BE%8B/1.htm">Spring 实例</a><a class="tag" taget="_blank" href="/search/Spring+%E5%85%A5%E9%97%A8/1.htm">Spring 入门</a><a class="tag" taget="_blank" href="/search/Spring3/1.htm">Spring3</a>
                                    <div>Spring   中提供一些Aware相关de接口,BeanFactoryAware、 ApplicationContextAware、ResourceLoaderAware、ServletContextAware等等,其中最常用到de匙ApplicationContextAware.实现ApplicationContextAwaredeBean,在Bean被初始后,将会被注入 Applicati</div>
                                </li>
                                <li><a href="/article/1080.htm"
                                       title="linux shell ls脚本样例" target="_blank">linux shell ls脚本样例</a>
                                    <span class="text-muted">annan211</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/linux+ls%E6%BA%90%E7%A0%81/1.htm">linux ls源码</a><a class="tag" taget="_blank" href="/search/linux+%E6%BA%90%E7%A0%81/1.htm">linux 源码</a>
                                    <div>
#! /bin/sh -
#查找输入文件的路径
#在查找路径下寻找一个或多个原始文件或文件模式
# 查找路径由特定的环境变量所定义

#标准输出所产生的结果 通常是查找路径下找到的每个文件的第一个实体的完整路径
# 或是filename :not found 的标准错误输出。

#如果文件没有找到 则退出码为0
#否则 即为找不到的文件个数
#语法 pathfind [--</div>
                                </li>
                                <li><a href="/article/1207.htm"
                                       title="List,Set,Map遍历方式 (收集的资源,值得看一下)" target="_blank">List,Set,Map遍历方式 (收集的资源,值得看一下)</a>
                                    <span class="text-muted">百合不是茶</span>
<a class="tag" taget="_blank" href="/search/list/1.htm">list</a><a class="tag" taget="_blank" href="/search/set/1.htm">set</a><a class="tag" taget="_blank" href="/search/Map%E9%81%8D%E5%8E%86%E6%96%B9%E5%BC%8F/1.htm">Map遍历方式</a>
                                    <div>List特点:元素有放入顺序,元素可重复
Map特点:元素按键值对存储,无放入顺序
Set特点:元素无放入顺序,元素不可重复(注意:元素虽然无放入顺序,但是元素在set中的位置是有该元素的HashCode决定的,其位置其实是固定的)
List接口有三个实现类:LinkedList,ArrayList,Vector
LinkedList:底层基于链表实现,链表内存是散乱的,每一个元素存储本身</div>
                                </li>
                                <li><a href="/article/1334.htm"
                                       title="解决SimpleDateFormat的线程不安全问题的方法" target="_blank">解决SimpleDateFormat的线程不安全问题的方法</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/thread/1.htm">thread</a><a class="tag" taget="_blank" href="/search/%E7%BA%BF%E7%A8%8B%E5%AE%89%E5%85%A8/1.htm">线程安全</a>
                                    <div>在Java项目中,我们通常会自己写一个DateUtil类,处理日期和字符串的转换,如下所示: 
public class DateUtil01 {

	private SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

	public void format(Date d</div>
                                </li>
                                <li><a href="/article/1461.htm"
                                       title="http请求测试实例(采用fastjson解析)" target="_blank">http请求测试实例(采用fastjson解析)</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/http/1.htm">http</a><a class="tag" taget="_blank" href="/search/%E6%B5%8B%E8%AF%95/1.htm">测试</a>
                                    <div>        在实际开发中,我们经常会去做http请求的开发,下面则是如何请求的单元测试小实例,仅供参考。 
import java.util.HashMap;
import java.util.Map;

import org.apache.commons.httpclient.HttpClient;
import </div>
                                </li>
                                <li><a href="/article/1588.htm"
                                       title="【RPC框架Hessian三】Hessian 异常处理" target="_blank">【RPC框架Hessian三】Hessian 异常处理</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/hessian/1.htm">hessian</a>
                                    <div>RPC异常处理概述   
RPC异常处理指是,当客户端调用远端的服务,如果服务执行过程中发生异常,这个异常能否序列到客户端? 
  
如果服务在执行过程中可能发生异常,那么在服务接口的声明中,就该声明该接口可能抛出的异常。 
  
在Hessian中,服务器端发生异常,可以将异常信息从服务器端序列化到客户端,因为Exception本身是实现了Serializable的</div>
                                </li>
                                <li><a href="/article/1715.htm"
                                       title="【日志分析】日志分析工具" target="_blank">【日志分析】日志分析工具</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/%E6%97%A5%E5%BF%97%E5%88%86%E6%9E%90/1.htm">日志分析</a>
                                    <div>1. 网站日志实时分析工具 GoAccess 
http://www.vpsee.com/2014/02/a-real-time-web-log-analyzer-goaccess/ 
2. 通过日志监控并收集 Java 应用程序性能数据(Perf4J) 
http://www.ibm.com/developerworks/cn/java/j-lo-logforperf/ 
3.log.io 
和</div>
                                </li>
                                <li><a href="/article/1842.htm"
                                       title="nginx优化加强战斗力及遇到的坑解决" target="_blank">nginx优化加强战斗力及遇到的坑解决</a>
                                    <span class="text-muted">ronin47</span>
<a class="tag" taget="_blank" href="/search/nginx+%E4%BC%98%E5%8C%96/1.htm">nginx 优化</a>
                                    <div>   先说遇到个坑,第一个是负载问题,这个问题与架构有关,由于我设计架构多了两层,结果导致会话负载只转向一个。解决这样的问题思路有两个:一是改变负载策略,二是更改架构设计。 
   由于采用动静分离部署,而nginx又设计了静态,结果客户端去读nginx静态,访问量上来,页面加载很慢。解决:二者留其一。最好是保留apache服务器。 
  
   来以下优化: 
  
    </div>
                                </li>
                                <li><a href="/article/1969.htm"
                                       title="java-50-输入两棵二叉树A和B,判断树B是不是A的子结构" target="_blank">java-50-输入两棵二叉树A和B,判断树B是不是A的子结构</a>
                                    <span class="text-muted">bylijinnan</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                                    <div>思路来自: 
http://zhedahht.blog.163.com/blog/static/25411174201011445550396/ 
 

import ljn.help.*;
public class HasSubtree {

	/**Q50.
	 * 输入两棵二叉树A和B,判断树B是不是A的子结构。

例如,下图中的两棵树A和B,由于A中有一部分子树的结构和B是一</div>
                                </li>
                                <li><a href="/article/2096.htm"
                                       title="mongoDB 备份与恢复" target="_blank">mongoDB 备份与恢复</a>
                                    <span class="text-muted">开窍的石头</span>
<a class="tag" taget="_blank" href="/search/mongDB%E5%A4%87%E4%BB%BD%E4%B8%8E%E6%81%A2%E5%A4%8D/1.htm">mongDB备份与恢复</a>
                                    <div>Mongodb导出与导入 
 
1: 导入/导出可以操作的是本地的mongodb服务器,也可以是远程的. 
所以,都有如下通用选项: 
-h host   主机 
--port port    端口 
-u username 用户名 
-p passwd   密码 
 
 
2: mongoexport 导出json格式的文件 </div>
                                </li>
                                <li><a href="/article/2223.htm"
                                       title="[网络与通讯]椭圆轨道计算的一些问题" target="_blank">[网络与通讯]椭圆轨道计算的一些问题</a>
                                    <span class="text-muted">comsci</span>
<a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a>
                                    <div> 
     如果按照中国古代农历的历法,现在应该是某个季节的开始,但是由于农历历法是3000年前的天文观测数据,如果按照现在的天文学记录来进行修正的话,这个季节已经过去一段时间了。。。。。 
 
      也就是说,还要再等3000年。才有机会了,太阳系的行星的椭圆轨道受到外来天体的干扰,轨道次序发生了变</div>
                                </li>
                                <li><a href="/article/2350.htm"
                                       title="软件专利如何申请" target="_blank">软件专利如何申请</a>
                                    <span class="text-muted">cuiyadll</span>
<a class="tag" taget="_blank" href="/search/%E8%BD%AF%E4%BB%B6%E4%B8%93%E5%88%A9/1.htm">软件专利</a><a class="tag" taget="_blank" href="/search/%E7%94%B3%E8%AF%B7/1.htm">申请</a>
                                    <div>软件技术可以申请软件著作权以保护软件源代码,也可以申请发明专利以保护软件流程中的步骤执行方式。专利保护的是软件解决问题的思想,而软件著作权保护的是软件代码(即软件思想的表达形式)。例如,离线传送文件,那发明专利保护是如何实现离线传送文件。基于相同的软件思想,但实现离线传送的程序代码有千千万万种,每种代码都可以享有各自的软件著作权。申请一个软件发明专利的代理费大概需要5000-8000申请发明专利可</div>
                                </li>
                                <li><a href="/article/2477.htm"
                                       title="Android学习笔记" target="_blank">Android学习笔记</a>
                                    <span class="text-muted">darrenzhu</span>
<a class="tag" taget="_blank" href="/search/android/1.htm">android</a>
                                    <div>1.启动一个AVD 
2.命令行运行adb shell可连接到AVD,这也就是命令行客户端 
3.如何启动一个程序 
  am start -n package name/.activityName 
  am start -n com.example.helloworld/.MainActivity 
 
启动Android设置工具的命令如下所示: 
# am start -</div>
                                </li>
                                <li><a href="/article/2604.htm"
                                       title="apache虚拟机配置,本地多域名访问本地网站" target="_blank">apache虚拟机配置,本地多域名访问本地网站</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/apache/1.htm">apache</a>
                                    <div>现在假定你有两个目录,一个存在于 /htdocs/a,另一个存在于 /htdocs/b 。 
现在你想要在本地测试的时候访问 www.freeman.com 对应的目录是 /xampp/htdocs/freeman ,访问 www.duchengjiu.com 对应的目录是 /htdocs/duchengjiu。 
1、首先修改C盘WINDOWS\system32\drivers\etc目录下的 </div>
                                </li>
                                <li><a href="/article/2731.htm"
                                       title="yii2 restful web服务[速率限制]" target="_blank">yii2 restful web服务[速率限制]</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a><a class="tag" taget="_blank" href="/search/yii2/1.htm">yii2</a>
                                    <div>速率限制 
为防止滥用,你应该考虑增加速率限制到您的API。 例如,您可以限制每个用户的API的使用是在10分钟内最多100次的API调用。 如果一个用户同一个时间段内太多的请求被接收, 将返回响应状态代码 429 (这意味着过多的请求)。 
要启用速率限制, [[yii\web\User::identityClass|user identity class]] 应该实现 [[yii\filter</div>
                                </li>
                                <li><a href="/article/2858.htm"
                                       title="Hadoop2.5.2安装——单机模式" target="_blank">Hadoop2.5.2安装——单机模式</a>
                                    <span class="text-muted">eksliang</span>
<a class="tag" taget="_blank" href="/search/hadoop/1.htm">hadoop</a><a class="tag" taget="_blank" href="/search/hadoop%E5%8D%95%E6%9C%BA%E9%83%A8%E7%BD%B2/1.htm">hadoop单机部署</a>
                                    <div>转载请出自出处:http://eksliang.iteye.com/blog/2185414 一、概述 
       Hadoop有三种模式 单机模式、伪分布模式和完全分布模式,这里先简单介绍单机模式 ,默认情况下,Hadoop被配置成一个非分布式模式,独立运行JAVA进程,适合开始做调试工作。 
  二、下载地址 
Hadoop 网址http:</div>
                                </li>
                                <li><a href="/article/2985.htm"
                                       title="LoadMoreListView+SwipeRefreshLayout(分页下拉)基本结构" target="_blank">LoadMoreListView+SwipeRefreshLayout(分页下拉)基本结构</a>
                                    <span class="text-muted">gundumw100</span>
<a class="tag" taget="_blank" href="/search/android/1.htm">android</a>
                                    <div>一切为了快速迭代 
 
 
 
 

import java.util.ArrayList;

import org.json.JSONObject;

import android.animation.ObjectAnimator;
import android.os.Bundle;
import android.support.v4.widget.SwipeRefreshLayo</div>
                                </li>
                                <li><a href="/article/3112.htm"
                                       title="三道简单的前端HTML/CSS题目" target="_blank">三道简单的前端HTML/CSS题目</a>
                                    <span class="text-muted">ini</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/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a><a class="tag" taget="_blank" href="/search/%E9%A2%98%E7%9B%AE/1.htm">题目</a>
                                    <div>使用CSS为多个网页进行相同风格的布局和外观设置时,为了方便对这些网页进行修改,最好使用( )。http://hovertree.com/shortanswer/bjae/7bd72acca3206862.htm 
  
在HTML中加入<table style=”color:red; font-size:10pt”>,此为( )。http://hovertree.com/s</div>
                                </li>
                                <li><a href="/article/3239.htm"
                                       title="overrided方法编译错误" target="_blank">overrided方法编译错误</a>
                                    <span class="text-muted">kane_xie</span>
<a class="tag" taget="_blank" href="/search/override/1.htm">override</a>
                                    <div> 
 问题描述: 
 
在实现类中的某一或某几个Override方法发生编译错误如下: 
Name clash: The method put(String) of type XXXServiceImpl has the same erasure as put(String) of type XXXService but does not override it 
  
当去掉@Over</div>
                                </li>
                                <li><a href="/article/3366.htm"
                                       title="Java中使用代理IP获取网址内容(防IP被封,做数据爬虫)" target="_blank">Java中使用代理IP获取网址内容(防IP被封,做数据爬虫)</a>
                                    <span class="text-muted">mcj8089</span>
<a class="tag" taget="_blank" href="/search/%E5%85%8D%E8%B4%B9%E4%BB%A3%E7%90%86IP/1.htm">免费代理IP</a><a class="tag" taget="_blank" href="/search/%E4%BB%A3%E7%90%86IP/1.htm">代理IP</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%88%AC%E8%99%AB/1.htm">数据爬虫</a><a class="tag" taget="_blank" href="/search/JAVA%E8%AE%BE%E7%BD%AE%E4%BB%A3%E7%90%86IP/1.htm">JAVA设置代理IP</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB%E5%B0%81IP/1.htm">爬虫封IP</a>
                                    <div>推荐两个代理IP网站: 
  
1. 全网代理IP:http://proxy.goubanjia.com/ 
  
2. 敲代码免费IP:http://ip.qiaodm.com/ 
  
Java语言有两种方式使用代理IP访问网址并获取内容, 
  
方式一,设置System系统属性 
  
// 设置代理IP
System.getProper</div>
                                </li>
                                <li><a href="/article/3493.htm"
                                       title="Nodejs Express 报错之 listen EADDRINUSE" target="_blank">Nodejs Express 报错之 listen EADDRINUSE</a>
                                    <span class="text-muted">qiaolevip</span>
<a class="tag" taget="_blank" href="/search/%E6%AF%8F%E5%A4%A9%E8%BF%9B%E6%AD%A5%E4%B8%80%E7%82%B9%E7%82%B9/1.htm">每天进步一点点</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0%E6%B0%B8%E6%97%A0%E6%AD%A2%E5%A2%83/1.htm">学习永无止境</a><a class="tag" taget="_blank" href="/search/nodejs/1.htm">nodejs</a><a class="tag" taget="_blank" href="/search/%E7%BA%B5%E8%A7%82%E5%8D%83%E8%B1%A1/1.htm">纵观千象</a>
                                    <div>当你启动 nodejs服务报错: 
>node app
Express server listening on port 80
events.js:85
      throw er; // Unhandled 'error' event
            ^
Error: listen EADDRINUSE
    at exports._errnoException (</div>
                                </li>
                                <li><a href="/article/3620.htm"
                                       title="C++中三种new的用法" target="_blank">C++中三种new的用法</a>
                                    <span class="text-muted">_荆棘鸟_</span>
<a class="tag" taget="_blank" href="/search/C%2B%2B/1.htm">C++</a><a class="tag" taget="_blank" href="/search/new/1.htm">new</a>
                                    <div>转载自:http://news.ccidnet.com/art/32855/20100713/2114025_1.html 
作者: mt 
其一是new operator,也叫new表达式;其二是operator new,也叫new操作符。这两个英文名称起的也太绝了,很容易搞混,那就记中文名称吧。new表达式比较常见,也最常用,例如: 
string* ps = new string("</div>
                                </li>
                                <li><a href="/article/3747.htm"
                                       title="Ruby深入研究笔记1" target="_blank">Ruby深入研究笔记1</a>
                                    <span class="text-muted">wudixiaotie</span>
<a class="tag" taget="_blank" href="/search/Ruby/1.htm">Ruby</a>
                                    <div>module是可以定义private方法的 
module MTest
  def aaa
    puts "aaa"
    private_method
  end

  private
    def private_method
      puts "this is private_method"
    end
end

</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>