一次完整的HTTP请求与响应涉及哪些知识?

本文以HTTP请求和响应的过程来讲解涉及到的相关知识点。

第一

HTTP请求和相应步骤

一次完整的HTTP请求与响应涉及哪些知识?_第1张图片

图片来自:理解Http请求与响应http://android.jobbole.com/85218/

以上完整表示了HTTP请求和响应的7个步骤,下面从TCP/IP协议模型的角度来理解HTTP请求和响应如何传递的。

第二

TCP/IP协议

TCP/IP协议模型(Transmission Control Protocol/Internet Protocol),包含了一系列构成互联网基础的网络协议,是Internet的核心协议,通过20多年的发展已日渐成熟,并被广泛应用于局域网和广域网中,目前已成为事实上的国际标准。TCP/IP协议簇是一组不同层次上的多个协议的组合,通常被认为是一个四层协议系统,与OSI的七层模型相对应。

HTTP协议就是基于TCP/IP协议模型来传输信息的。

一次完整的HTTP请求与响应涉及哪些知识?_第2张图片

(1). 链路层

也称作数据链路层或网络接口层(在第一个图中为网络接口层和硬件层),通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处理与电缆(或其他任何传输媒介)的物理接口细节。ARP(地址解析协议)和RARP(逆地址解析协议)是某些网络接口(如以太网和令牌环网)使用的特殊协议,用来转换IP层和网络接口层使用的地址。

(2). 网络层

也称作互联网层(在第一个图中为网际层),处理分组在网络中的活动,例如分组的选路。在TCP/IP协议族中,网络层协议包括IP协议(网际协议),ICMP协议(Internet互联网控制报文协议),以及IGMP协议(Internet组管理协议)。

IP是一种网络层协议,提供的是一种不可靠的服务,它只是尽可能快地把分组从源结点送到目的结点,但是并不提供任何可靠性保证。同时被TCP和UDP使用。TCP和UDP的每组数据都通过端系统和每个中间路由器中的IP层在互联网中进行传输。

ICMP是IP协议的附属协议。IP层用它来与其他主机或路由器交换错误报文和其他重要信息。

IGMP是Internet组管理协议。它用来把一个UDP数据报多播到多个主机。

(3). 传输层

主要为两台主机上的应用程序提供端到端的通信。在TCP/IP协议族中,有两个互不相同的传输协议:TCP(传输控制协议)和UDP(用户数据报协议)。

TCP为两台主机提供高可靠性的数据通信。它所做的工作包括把应用程序交给它的数据分成合适的小块交给下面的网络层,确认接收到的分组,设置发送最后确认分组的超时时钟等。由于运输层提供了高可靠性的端到端的通信,因此应用层可以忽略所有这些细节。为了提供可靠的服务,TCP采用了超时重传、发送和接收端到端的确认分组等机制。

UDP则为应用层提供一种非常简单的服务。它只是把称作数据报的分组从一台主机发送到另一台主机,但并不保证该数据报能到达另一端。一个数据报是指从发送方传输到接收方的一个信息单元(例如,发送方指定的一定字节数的信息)。UDP协议任何必需的可靠性必须由应用层来提供。

(4). 应用层

应用层决定了向用户提供应用服务时通信的活动。TCP/IP 协议族内预存了各类通用的应用服务。包括 HTTP,FTP(File Transfer Protocol,文件传输协议),DNS(Domain Name System,域名系统)服务。

一次完整的HTTP请求与响应涉及哪些知识?_第3张图片

当应用程序用TCP传送数据时,数据被送入协议栈中,然后逐个通过每一层直到被当作一串比特流送入网络。其中每一层对收到的数据都要增加一些首部信息(有时还要增加尾部信息),该过程如图所示。

一次完整的HTTP请求与响应涉及哪些知识?_第4张图片

当目的主机收到一个以太网数据帧时,数据就开始从协议栈中由底向上升,同时去掉各层协议加上的报文首部。每层协议盒都要去检查报文首部中的协议标识,以确定接收数据的上层协议。这个过程称作分用(Demultiplexing)。协议是通过目的端口号、源I P地址和源端口号进行解包的。

通过以上步骤我们从TCP/IP模型的角度来理解了一次HTTP请求与响应的过程。

下面这张图更清楚明白:

一次完整的HTTP请求与响应涉及哪些知识?_第5张图片

下面具体来看如何进行一步步操作的。

第三

TCP三次握手

TCP是面向连接的,无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接。在TCP/IP协议中,TCP协议提供可靠的连接服务,连接是通过三次握手进行初始化的。三次握手的目的是同步连接双方的序列号和确认号并交换 TCP窗口大小信息。

一次完整的HTTP请求与响应涉及哪些知识?_第6张图片

第一次握手:建立连接。客户端发送连接请求报文段,将SYN位置为1,Sequence Number为x;然后,客户端进入SYN_SEND状态,等待服务器的确认;

第二次握手:服务器收到SYN报文段。服务器收到客户端的SYN报文段,需要对这个SYN报文段进行确认,设置Acknowledgment Number为x+1(Sequence Number+1);同时,自己自己还要发送SYN请求信息,将SYN位置为1,Sequence Number为y;服务器端将上述所有信息放到一个报文段(即SYN+ACK报文段)中,一并发送给客户端,此时服务器进入SYN_RECV状态;

第三次握手:客户端收到服务器的SYN+ACK报文段。然后将Acknowledgment Number设置为y+1,向服务器发送ACK报文段,这个报文段发送完毕以后,客户端和服务器端都进入ESTABLISHED状态,完成TCP三次握手。

为什么要三次握手

为了防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误。

具体例子:“已失效的连接请求报文段”的产生在这样一种情况下:client发出的第一个连接请求报文段并没有丢失,而是在某个网络结点长时间的滞留了,以致延误到连接释放以后的某个时间才到达server。本来这是一个早已失效的报文段。

但server收到此失效的连接请求报文段后,就误认为是client再次发出的一个新的连接请求。于是就向client发出确认报文段,同意建立连接。假设不采用“三次握手”,那么只要server发出确认,新的连接就建立了。

由于现在client并没有发出建立连接的请求,因此不会理睬server的确认,也不会向server发送数据。但server却以为新的运输连接已经建立,并一直等待client发来数据。这样,server的很多资源就白白浪费掉了。

采用“三次握手”的办法可以防止上述现象发生。例如刚才那种情况,client不会向server的确认发出确认。server由于收不到确认,就知道client并没有要求建立连接。”

第四

HTTP协议

Http是什么?

通俗来讲,他就是计算机通过网络进行通信的规则,是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据。目前任何终端(手机,笔记本电脑。。)之间进行任何一种通信都必须按照Http协议进行,否则无法连接。

四个基于:

请求与响应:客户端发送请求,服务器端响应数据

无状态的:协议对于事务处理没有记忆能力,客户端第一次与服务器建立连接发送请求时需要进行一系列的安全认证匹配等,因此增加页面等待时间,当客户端向服务器端发送请求,服务器端响应完毕后,两者断开连接,也不保存连接状态,一刀两断!恩断义绝!从此路人!下一次客户端向同样的服务器发送请求时,由于他们之前已经遗忘了彼此,所以需要重新建立连接。

应用层:Http是属于应用层的协议,配合TCP/IP使用。

TCP/IP:Http使用TCP作为它的支撑运输协议。HTTP客户机发起一个与服务器的TCP连接,一旦连接建立,浏览器(客户机)和服务器进程就可以通过套接字接口访问TCP。

针对无状态的一些解决策略:

有时需要对用户之前的HTTP通信状态进行保存,比如执行一次登陆操作,在30分钟内所有的请求都不需要再次登陆。于是引入了Cookie技术。

HTTP/1.1想出了持久连接(HTTP keep-alive)方法。其特点是,只要任意一端没有明确提出断开连接,则保持TCP连接状态,在请求首部字段中的Connection: keep-alive即为表明使用了持久连接。

等等还有很多。。。。。。

下面开始讲解重头戏:HTTP请求报文,响应报文,对应于上述步骤的2,3,4,5,6。

HTTP报文是面向文本的,报文中的每一个字段都是一些ASCII码串,各个字段的长度是不确定的。HTTP有两类报文:请求报文和响应报文。

第五

HTTP请求报文

一个HTTP请求报文由请求行(request line)、请求头部(header)、空行和请求数据4个部分组成,下图给出了请求报文的一般格式。

一次完整的HTTP请求与响应涉及哪些知识?_第7张图片

1.请求行

请求行分为三个部分:请求方法、请求地址和协议版本

请求方法

HTTP/1.1 定义的请求方法有8种:GET、POST、PUT、DELETE、PATCH、HEAD、OPTIONS、TRACE。

最常的两种GET和POST,如果是RESTful接口的话一般会用到GET、POST、DELETE、PUT。

请求地址

URL:统一资源定位符,是一种自愿位置的抽象唯一识别方法。

组成:<协议>://<主机>:<端口>/<路径>

端口和路径有时可以省略(HTTP默认端口号是80)

如下例:

一次完整的HTTP请求与响应涉及哪些知识?_第8张图片

有时会带参数,GET请求

协议版本

协议版本的格式为:HTTP/主版本号.次版本号,常用的有HTTP/1.0和HTTP/1.1

2.请求头部

请求头部为请求报文添加了一些附加信息,由“名/值”对组成,每行一对,名和值之间使用冒号分隔。

常见请求头如下:

一次完整的HTTP请求与响应涉及哪些知识?_第9张图片

请求头部的最后会有一个空行,表示请求头部结束,接下来为请求数据,这一行非常重要,必不可少。

3.请求数据

可选部分,比如GET请求就没有请求数据。

下面是一个POST方法的请求报文:

POST  /index.php HTTP/1.1    请求行

Host: localhost

User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:10.0.2) Gecko/20100101 Firefox/10.0.2  请求头

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8

Accept-Language: zh-cn,zh;q=0.5

Accept-Encoding: gzip, deflate

Connection: keep-alive

Referer: http://localhost/

Content-Length:25

Content-Type:application/x-www-form-urlencoded

空行

username=aa&password=1234  请求数据

第六

HTTP响应报文

一次完整的HTTP请求与响应涉及哪些知识?_第10张图片

HTTP响应报文主要由状态行、响应头部、空行以及响应数据组成。

1.状态行

由3部分组成,分别为:协议版本,状态码,状态码描述。

其中协议版本与请求报文一致,状态码描述是对状态码的简单描述,所以这里就只介绍状态码。

状态码

状态代码为3位数字。

1xx:指示信息--表示请求已接收,继续处理。

2xx:成功--表示请求已被成功接收、理解、接受。

3xx:重定向--要完成请求必须进行更进一步的操作。

4xx:客户端错误--请求有语法错误或请求无法实现。

5xx:服务器端错误--服务器未能实现合法的请求。

下面列举几个常见的:两张趣图助你理解 HTTP 状态码!

一次完整的HTTP请求与响应涉及哪些知识?_第11张图片

2.响应头部

与请求头部类似,为响应报文添加了一些附加信息

常见响应头部如下:

一次完整的HTTP请求与响应涉及哪些知识?_第12张图片

3.响应数据

用于存放需要返回给客户端的数据信息。

下面是一个响应报文的实例:

HTTP/1.1 200 OK  状态行

Date: Sun, 17 Mar 2013 08:12:54 GMT  响应头部

Server: Apache/2.2.8 (Win32) PHP/5.2.5

X-Powered-By: PHP/5.2.5

Set-Cookie: PHPSESSID=c0huq7pdkmm5gg6osoe3mgjmm3; path=/

Expires: Thu, 19 Nov 1981 08:52:00 GMT

Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0

Pragma: no-cache

Content-Length: 4393

Keep-Alive: timeout=5, max=100

Connection: Keep-Alive

Content-Type: text/html; charset=utf-8

空行

  响应数据

HTTP响应示例</p> <p>Hello HTTP!</p> <p>关于请求头部和响应头部的知识点很多,这里只是简单介绍。</p> <p>通过以上步骤,数据已经传递完毕,HTTP/1.1会维持持久连接,但持续一段时间总会有关闭连接的时候,这时候据需要断开TCP连接。</p> <p>第七</p> <p>TCP四次挥手</p> <p>当客户端和服务器通过三次握手建立了TCP连接以后,当数据传送完毕,肯定是要断开TCP连接的啊。那对于TCP的断开连接,这里就有了神秘的“四次分手”。</p> <div class="image-package"> <div class="image-container" style="max-width: 640px; max-height: 433px;"> <div class="image-view"> <a href="http://img.e-com-net.com/image/info10/32676d926eb944d1adfda257b534ab7c.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info10/32676d926eb944d1adfda257b534ab7c.jpg" width="640" height="433" alt="一次完整的HTTP请求与响应涉及哪些知识?_第13张图片" style="border:1px solid black;"></a> </div> </div> <div class="image-caption"></div> </div> <p>第一次分手:主机1(可以使客户端,也可以是服务器端),设置Sequence Number,向主机2发送一个FIN报文段;此时,主机1进入FIN_WAIT_1状态;这表示主机1没有数据要发送给主机2了;</p> <p>第二次分手:主机2收到了主机1发送的FIN报文段,向主机1回一个ACK报文段,Acknowledgment Number为Sequence Number加1;主机1进入FIN_WAIT_2状态;主机2告诉主机1,我“同意”你的关闭请求;</p> <p>第三次分手:主机2向主机1发送FIN报文段,请求关闭连接,同时主机2进入LAST_ACK状态;</p> <p>第四次分手:主机1收到主机2发送的FIN报文段,向主机2发送ACK报文段,然后主机1进入TIME_WAIT状态;主机2收到主机1的ACK报文段以后,就关闭连接;此时,主机1等待2MSL后依然没有收到回复,则证明Server端已正常关闭,那好,主机1也可以关闭连接了。</p> <p>为什么要四次分手</p> <p>TCP协议是一种面向连接的、可靠的、基于字节流的运输层通信协议。</p> <p>TCP是全双工模式,这就意味着,当主机1发出FIN报文段时,只是表示主机1已经没有数据要发送了,主机1告诉主机2,它的数据已经全部发送完毕了;但是,这个时候主机1还是可以接受来自主机2的数据;</p> <p>当主机2返回ACK报文段时,表示它已经知道主机1没有数据发送了,但是主机2还是可以发送数据到主机1的;当主机2也发送了FIN报文段时,这个时候就表示主机2也没有数据要发送了,就会告诉主机1,我也没有数据要发送了,之后彼此就会愉快的中断这次TCP连接。</p> <p>通过以上步骤便完成了HTTP的请求和响应,进行了数据传递,这其中涉及到需要知识点,都进行了逐一了解。</p> <p>如果你对编程感兴趣或者想往编程方向发展,可以关注微信公众号<b>【筑梦编程】</b>,大家一起交流讨论!小编也会每天定时更新既有趣又有用的编程知识!</p> </article> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1249479086489849856"></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">你可能感兴趣的:(一次完整的HTTP请求与响应涉及哪些知识?)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1901163255439618048.htm" title="金融类APP-手写签名ADD盖章功能实现" target="_blank">金融类APP-手写签名ADD盖章功能实现</a> <span class="text-muted">CherryChen88</span> <a class="tag" taget="_blank" href="/search/%E9%87%91%E8%9E%8D/1.htm">金融</a><a class="tag" taget="_blank" href="/search/%E9%87%91%E8%9E%8D%E7%B1%BBApp%E4%B8%93%E6%A0%8F/1.htm">金融类App专栏</a><a class="tag" taget="_blank" href="/search/%E9%87%91%E8%9E%8D/1.htm">金融</a><a class="tag" taget="_blank" href="/search/app/1.htm">app</a><a class="tag" taget="_blank" href="/search/%E6%89%8B%E5%86%99%E7%AD%BE%E5%90%8D/1.htm">手写签名</a><a class="tag" taget="_blank" href="/search/%E6%89%8B%E5%86%99%E7%AD%BE%E5%90%8D%E5%8A%A0%E7%9B%96%E5%85%AC%E7%AB%A0/1.htm">手写签名加盖公章</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a> <div>前言:之前换工作的时候,发现从事金融行业APP开发比较赚钱,为了钱,最近一直在学习,换工作之前在银行工作,虽然也算是金融行业但是却没有证券行业等的收益高,但在银行业务开发中金融行业也能够使用的其中之一就是,手写签名+公章功能的实现。原理:从业务逻辑上来说,就是我们提供一个可绘制的面板,让用户可以绘制,绘制完成后,进行写入文件保存或者加盖公章合成图片,然后上传后台,这里图片压缩处理逻辑省略。绘制面板</div> </li> <li><a href="/article/1901163129115570176.htm" title="JAVA数据库技术(一)" target="_blank">JAVA数据库技术(一)</a> <span class="text-muted">MeyrlNotFound</span> <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/java/1.htm">java</a> <div>JDBC简介JDBC(JavaDatabaseConnectivity)是Java平台提供的一套用于执行SQL语句的JavaAPI。它允许Java程序连接到数据库,并通过发送SQL语句来查询、更新和管理数据库中的数据。JDBC为不同的数据库提供了一种统一的访问方式,使得Java程序可以独立于特定的数据库管理系统(DBMS)进行开发。以下是JDBC的一些关键特性和组件:1.驱动管理器(DriverM</div> </li> <li><a href="/article/1901162750374113280.htm" title="java中的方法(函数)重载" target="_blank">java中的方法(函数)重载</a> <span class="text-muted">C r a z y</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/c%E8%AF%AD%E8%A8%80/1.htm">c语言</a> <div>在java中我们写一个求数字和的代码,用到方法(函数)publicstaticintaddInt(inta,intb){returna+b;}publicstaticvoidmain(String[]args){intret=addInt(5,6);System.out.println(ret);}上面是求的是两个整形数字的求和,那么我们要求两个double类型的的数字的求和呢按照c语言的逻辑来写</div> </li> <li><a href="/article/1901162751099727872.htm" title="Teorex Inpaint神奇的图片去水印工具" target="_blank">Teorex Inpaint神奇的图片去水印工具</a> <span class="text-muted">KJ-拾荒者</span> <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/%E6%95%88%E7%8E%87%E6%8F%90%E5%8D%87/1.htm">效率提升</a><a class="tag" taget="_blank" href="/search/%E8%81%8C%E5%9C%BA%E5%92%8C%E5%8F%91%E5%B1%95/1.htm">职场和发展</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/windows/1.htm">windows</a> <div>你是否遇到过这样的困扰?精心拍摄的风景照里总有多余的电线杆,好不容易找到的素材图却被水印遮挡,珍藏的老照片布满划痕和污渍……想要处理这些问题,但面对复杂的修图软件无从下手。TeorexInpaint或许能成为你的“图片急救员”。简单操作,告别复杂步骤与需要专业技巧的PS不同,Inpaint的设计理念是“轻量易用”。只需用画笔圈选需要去除的区域(如水印、多余物体),软件会自动分析周围像素并智能填充。</div> </li> <li><a href="/article/1901162498124476416.htm" title="重生之我在CSDN学基础语法" target="_blank">重生之我在CSDN学基础语法</a> <span class="text-muted">AI26108</span> <a class="tag" taget="_blank" href="/search/%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/c%2B%2B/1.htm">c++</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/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>C语言是一种通用的、结构化的、静态类型的编程语言,被广泛用于系统编程、嵌入式开发、应用软件开发等领域。以下是C语言的基础语法详细讲解。1.变量与数据类型1.1变量声明变量是存储数据的容器,在使用之前必须先声明:inta;//声明一个整型变量floatb;//声明一个浮点型变量charc;//声明一个字符型变量1.2数据类型C语言的基本数据类型如下:数据类型关键字说明整型int存储整数字符型char</div> </li> <li><a href="/article/1901158722311352320.htm" title="测试ospf多区域和分支对接" target="_blank">测试ospf多区域和分支对接</a> <span class="text-muted">项目工程师余工</span> <a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%B7%A5%E7%A8%8B/1.htm">网络工程</a><a class="tag" taget="_blank" href="/search/%E5%8D%8E%E4%B8%BA/1.htm">华为</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a> <div>总结:1、完全stub区域,直接导入直连或静态不生效,必须要在stub区域network发布直接的网段才可以,(以前只知道stub区域不能导入其它系统的自治系统,原来导入直连和静态也不生效)2、NSSA区域没问题,效果和骨干一样,所有都能生效。3、最终效果全网贯通,并且可以访问公网9.9.9.9dicu[V200R003C00]sysnamer1snmp-agentlocal-engineid80</div> </li> <li><a href="/article/1901158217728192512.htm" title="Python 进程和线程-进程 vs. 线程" target="_blank">Python 进程和线程-进程 vs. 线程</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/%E7%B3%BB%E7%BB%9F%E5%AD%A6%E4%B9%A0/1.htm">系统学习</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>目录ThreadLocal小结进程vs.线程线程切换计算密集型vs.IO密集型异步IOThreadLocal在多线程环境下,每个线程都有自己的数据。一个线程使用自己的局部变量比使用全局变量好,因为局部变量只有线程自己能看见,不会影响其他线程,而全局变量的修改必须加锁。但是局部变量也有问题,就是在函数调用的时候,传递起来很麻烦:defprocess_student(name):std=Student</div> </li> <li><a href="/article/1901158216356655104.htm" title="一个数如果恰好等于它的因子之和,这个数就称为“完数“。例如6=1+2+3.编程找出1000以内的所有完数。-多语言" target="_blank">一个数如果恰好等于它的因子之和,这个数就称为“完数“。例如6=1+2+3.编程找出1000以内的所有完数。-多语言</a> <span class="text-muted">赔罪</span> <a class="tag" taget="_blank" href="/search/Practice/1.htm">Practice</a><a class="tag" taget="_blank" href="/search/questions/1.htm">questions</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</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/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>目录C语言实现Python实现Java实现Js实现题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。完数(PerfectNumber)是一个正整数,它等于其所有正因子(不包括自身)的和。换句话说,如果一个数n的所有正因子(除了n本身)相加的结果等于n,那么n就是一个完数。完数的性质完数是稀有的,已知的完数都是偶数。根据欧几里得的定理,完</div> </li> <li><a href="/article/1901158089508319232.htm" title="Python中的代码测试" target="_blank">Python中的代码测试</a> <span class="text-muted">小白的高手之路</span> <a class="tag" taget="_blank" href="/search/python%E5%AD%A6%E4%B9%A0/1.htm">python学习</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>编写函数或类时,可以为其编写测试。通过测试,可以确定代码面对各种输入都能正确按要求工作。在程序中添加新代码时,依然可以对其进行测试,确认它们不会影响原有的代码。1、测试函数先编写一个简单的函数:name_fun.pydefget_name(first,last):"""生成全名"""name=first+''+lastreturnname.title()name.pyfromname_funimp</div> </li> <li><a href="/article/1901158089999052800.htm" title="【实验五 一维数组】7-2 sdut-C语言实验-整数位" target="_blank">【实验五 一维数组】7-2 sdut-C语言实验-整数位</a> <span class="text-muted">卡西莫多~</span> <a class="tag" taget="_blank" href="/search/SDUT%E7%9A%84PTA%E7%BB%83%E4%B9%A0/1.htm">SDUT的PTA练习</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/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%E8%AF%AD%E8%A8%80/1.htm">c语言</a> <div>7-2sdut-C语言实验-整数位输入一个不多于5位的正整数,要求:(1)求出它是几位数;//一个计数循环(2)分别输出每一位数字;//正序输出各位数字(3)按逆序输出各位数字。//逆序输出各位数字输入格式:输入一个不多于5位的正整数。输出格式:输出数据有3行,第一行为正整数位数,第二行为各位数字,第三行为逆序的各位数字。输入样例:123输出样例:3123321答案示例1(无注释)#include</div> </li> <li><a href="/article/1901157837447426048.htm" title="“深入浅出”系列之杂谈篇:(3)Qt5和Qt6该学哪个?" target="_blank">“深入浅出”系列之杂谈篇:(3)Qt5和Qt6该学哪个?</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/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>建议qt5且版本为qt5.14.2(百度搜qtarchieve获取),更高版本的坚决不碰。建议这个版本的核心原因是之后的qt版本全部没有离线安装包,只有在线安装器,这个在线安装器经常会偷偷改掉你可以安装的qt版本以及该版本内部可安装的模块,比如(做个假设)你今天装了qt6.2.1然后安装时少安了几个模块,过一段时间你突然需要想安装,会发线在线安装器找不到这个版本了于是你只能把这个版本卸载了装更高的</div> </li> <li><a href="/article/1901157711215652864.htm" title="Python----数据分析(Pandas四:一维数组Series的统计计算,分组和聚合)" target="_blank">Python----数据分析(Pandas四:一维数组Series的统计计算,分组和聚合)</a> <span class="text-muted">蹦蹦跳跳真可爱589</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/Python/1.htm">Python</a><a class="tag" taget="_blank" href="/search/pandas/1.htm">pandas</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/1.htm">数据分析</a> <div>一、统计计算1.1、count用于计算Series中非NaN(非空)值的数量。importpandasaspds=pd.Series([1,2,None,4,None])count_non_na=s.count()print(count_non_na)1.2、sumsum()函数会计算所有值的总和。Series.sum(axis=None,skipna=True,numeric_only=None</div> </li> <li><a href="/article/1901157584761581568.htm" title="Python----数据分析(Pandas三:一维数组Series的数据操作:数据清洗,数据转换,数据排序,数据筛选,数据拼接)" target="_blank">Python----数据分析(Pandas三:一维数组Series的数据操作:数据清洗,数据转换,数据排序,数据筛选,数据拼接)</a> <span class="text-muted">蹦蹦跳跳真可爱589</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/Python/1.htm">Python</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><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/pandas/1.htm">pandas</a> <div>一、数据清洗1.1、dropna()删除包含NaN值的行。series.dropna(axis=0,inplace=False)描述说明axis可选参数,用于指定按哪个轴删除缺失值。对于Series对象,因为它是一维数据结构,只有一个轴,所以此参数默认值为0,且一般不需要修改这个参数(在处理DataFrame时该参数才有更多实际意义,如除,axis=1表示按列删除)。inplace可选参数,用于指</div> </li> <li><a href="/article/1901157332541304832.htm" title="深度学习处理时间序列(2)" target="_blank">深度学习处理时间序列(2)</a> <span class="text-muted">yyc_audio</span> <a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/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/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a> <div>在数据中寻找周期性在多个时间尺度上的周期性,是时间序列数据非常重要且常见的属性。无论是天气、商场停车位使用率、网站流量、杂货店销售额,还是健身追踪器记录的步数,你都会看到每日周期性和年度周期性(人类生成的数据通常还有每周的周期性)。探索数据时,一定要注意寻找这些模式。(让人想到波,想到傅里叶变换)对于这个数据集,如果你想根据前几个月的数据来预测下个月的平均温度,那么问题很简单,因为数据具有可靠的年</div> </li> <li><a href="/article/1901156954525462528.htm" title="【华为机试】HJ4 字符串分隔" target="_blank">【华为机试】HJ4 字符串分隔</a> <span class="text-muted">椰椰荔枝糖</span> <a class="tag" taget="_blank" href="/search/%E5%8D%8E%E4%B8%BA%E6%9C%BA%E8%AF%95%E3%80%90%E7%89%9B%E5%AE%A2%E7%BD%91%E3%80%91/1.htm">华为机试【牛客网】</a><a class="tag" taget="_blank" href="/search/%E5%8D%8E%E4%B8%BA/1.htm">华为</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>str.substring(0,8)//截取str中从startIndex开始至endIndex结束时的字符串,并将其赋值给str;str=str.substring(8)//截取掉str从首字母起长度为startIndex的字符串,将剩余字符串赋值给str;importjava.util.Scanner;//注意类名必须为Main,不要有任何packagexxx信息publicclassMain</div> </li> <li><a href="/article/1901156828104945664.htm" title="【华为机试】HJ3 明明的随机数" target="_blank">【华为机试】HJ3 明明的随机数</a> <span class="text-muted">椰椰荔枝糖</span> <a class="tag" taget="_blank" href="/search/%E5%8D%8E%E4%B8%BA%E6%9C%BA%E8%AF%95%E3%80%90%E7%89%9B%E5%AE%A2%E7%BD%91%E3%80%91/1.htm">华为机试【牛客网】</a><a class="tag" taget="_blank" href="/search/%E5%8D%8E%E4%B8%BA/1.htm">华为</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>importjava.util.Scanner;importjava.util.List;importjava.util.ArrayList;importjava.util.Collections;//注意类名必须为Main,不要有任何packagexxx信息publicclassMain{publicstaticvoidmain(String[]args){Scannersc=newScanne</div> </li> <li><a href="/article/1901154310679490560.htm" title="计算机网络:利用分组嗅探器分析传输层与网络层协议" target="_blank">计算机网络:利用分组嗅探器分析传输层与网络层协议</a> <span class="text-muted">20230921</span> <a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C%E5%AE%9E%E9%AA%8C/1.htm">计算机网络实验</a><a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/1.htm">计算机网络</a> <div>目录实验内容实验目的实验预备知识实验过程描述实验一:对传输层协议TCP/UDP进行捕包分析实验二:对网络层协议IP进行捕包分析实验结果实验一:对传输层协议TCP/UDP进行捕包分析结果如下:实验二:对网络层协议IP进行捕包分析结果如下实验当中问题及解决办法实验内容利用分组嗅探器分析传输层与网络层协议实验目的了解传输层TCP/UDP协议构造;了解网络层IP协议构造;实验预备知识TCP段结构UDP段结</div> </li> <li><a href="/article/1901154058538905600.htm" title="青少年编程与数学 02-010 C++程序设计基础 46课题、链接库" target="_blank">青少年编程与数学 02-010 C++程序设计基础 46课题、链接库</a> <span class="text-muted">明月看潮生</span> <a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B%E4%B8%8E%E6%95%B0%E5%AD%A6/1.htm">编程与数学</a><a class="tag" taget="_blank" href="/search/%E7%AC%AC02%E9%98%B6%E6%AE%B5/1.htm">第02阶段</a><a class="tag" taget="_blank" href="/search/%E9%9D%92%E5%B0%91%E5%B9%B4%E7%BC%96%E7%A8%8B/1.htm">青少年编程</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B%E4%B8%8E%E6%95%B0%E5%AD%A6/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>青少年编程与数学02-010C++程序设计基础46课题、链接库一、链接库(LinkLibrary)1.静态链接库(StaticLibrary)特点:示例:创建和使用静态链接库2.动态链接库(DynamicLibrary)特点:示例:创建和使用动态链接库1.2创建动态链接库2.编写使用链接库的程序3.编译和链接程序3.1编译和链接静态链接库3.2编译和链接动态链接库4.使用第三方链接库4.1下载和安</div> </li> <li><a href="/article/1901153554584891392.htm" title="Hive SQL 精进系列:一行变多行的 LATERAL VIEW EXPLODE" target="_blank">Hive SQL 精进系列:一行变多行的 LATERAL VIEW EXPLODE</a> <span class="text-muted">进一步有进一步的欢喜</span> <a class="tag" taget="_blank" href="/search/Hive/1.htm">Hive</a><a class="tag" taget="_blank" href="/search/SQL/1.htm">SQL</a><a class="tag" taget="_blank" href="/search/%E7%B2%BE%E8%BF%9B%E7%B3%BB%E5%88%97/1.htm">精进系列</a><a class="tag" taget="_blank" href="/search/hive/1.htm">hive</a><a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/hadoop/1.htm">hadoop</a> <div>目录一、引言二、`LATERALVIEWEXPLODE`概述2.1基本概念2.2单词解析2.2.1`LATERAL`2.2.2`VIEW`2.2.3`EXPLODE`三、语法详解3.1基本语法结构3.2完整语法示例(针对映射情况)四、使用场景4.1数组数据展开4.2映射数据展开五、案例分析5.1展开数组示例5.1.1数据准备5.1.2使用`LATERALVIEWEXPLODE`展开数组5.1.3结</div> </li> <li><a href="/article/1901153428256649216.htm" title="matlab 模糊pid实现温度控制" target="_blank">matlab 模糊pid实现温度控制</a> <span class="text-muted">studyer_爱啃鸡爪的小米</span> <a class="tag" taget="_blank" href="/search/Matlab%E7%B3%BB%E5%88%97%E6%A1%88%E4%BE%8B/1.htm">Matlab系列案例</a><a class="tag" taget="_blank" href="/search/matlab/1.htm">matlab</a> <div>1、内容简介matlab162-模糊pid实现温度控制可以交流、咨询、答疑2、内容说明略基于PID电加热炉温度控制系统设计摘要电加热炉随着科学技术的发展和工业生产水平的提高,已经在冶金、化工、机械等各类工业控制中得到了广泛应用,并且在国民经济中占有举足轻重的地位。对于这样一个具有非线性、大滞后、大惯性、时变性、升温单向性等特点的控制对象,很难用数学方法建立精确的数学模型,因此用传统的控制理论和方法</div> </li> <li><a href="/article/1901153301987127296.htm" title="1997-2022年 上市公司海外直接投资OFDI 资产剥离置换吸收合并债务重组要约收购股权转让-社科数据" target="_blank">1997-2022年 上市公司海外直接投资OFDI 资产剥离置换吸收合并债务重组要约收购股权转让-社科数据</a> <span class="text-muted">泡芙萝莉酱</span> <a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AE/1.htm">大数据</a><a class="tag" taget="_blank" href="/search/%E7%A4%BE%E7%A7%91%E6%95%B0%E6%8D%AE/1.htm">社科数据</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AE/1.htm">大数据</a><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/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/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/%E6%95%B0%E6%8D%AE%E7%BB%9F%E8%AE%A1/1.htm">数据统计</a><a class="tag" taget="_blank" href="/search/%E6%AF%95%E4%B8%9A%E8%AE%BA%E6%96%87/1.htm">毕业论文</a> <div>上市公司海外直接投资OFDI1997-2022资产剥离置换吸收合并债务重组要约收购股权转让-社科数据https://download.csdn.net/download/paofuluolijiang/90027743https://download.csdn.net/download/paofuluolijiang/90027743包括交易信息、涉及方明细、公司基本信息三张表。1、公司基本信息表</div> </li> <li><a href="/article/1901153175713411072.htm" title="MyBatis 类型处理器TypeHandler作用" target="_blank">MyBatis 类型处理器TypeHandler作用</a> <span class="text-muted">冰糖心书房</span> <a class="tag" taget="_blank" href="/search/Mybatis/1.htm">Mybatis</a><a class="tag" taget="_blank" href="/search/%E6%BA%90%E7%A0%81%E7%B3%BB%E5%88%97/1.htm">源码系列</a><a class="tag" taget="_blank" href="/search/mybatis/1.htm">mybatis</a> <div>TypeHandler是MyBatis中用于处理Java类型与JDBC类型之间转换的接口。它在MyBatis的参数绑定和结果映射过程中起着至关重要的作用。为什么需要TypeHandler?Java和数据库(JDBC)使用不同的类型系统。例如:Java中有String、Integer、Date、Boolean、enum等类型。JDBC中有VARCHAR、INTEGER、DATE、BOOLEAN、TI</div> </li> <li><a href="/article/1901151286842159104.htm" title="数组逆序重放" target="_blank">数组逆序重放</a> <span class="text-muted">crmeb专业二开</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>数组逆序重放的意思是将数组的元素逆序排列,然后重新放回原数组中。这个操作可以在很多编程语言中实现,例如Python、Java等。下面是一个Python的示例代码,可以实现这个操作:defreverse_and_rearrange(arr):#反转数组arr.reverse()#重新放回原数组result=[]foriinrange(len(arr)):result.append(arr[i])re</div> </li> <li><a href="/article/1901151160488751104.htm" title="Flask 框架app = Flask(__name__) 解析" target="_blank">Flask 框架app = Flask(__name__) 解析</a> <span class="text-muted">Nolannk</span> <a class="tag" taget="_blank" href="/search/flask/1.htm">flask</a><a class="tag" taget="_blank" href="/search/%E6%A1%86%E6%9E%B6/1.htm">框架</a> <div>fromflaskimportFlaskapp=Flask(name)@app.route(‘/’)defhello_world():return‘HelloWorld!’ifname==‘main‘:app.run(host=’0.0.0.0’,port=9000)第4行,引入Flask类,Flask类实现了一个WSGI应用第5行,app是Flask的实例,它接收包或者模块的名字作为参数,但一般</div> </li> <li><a href="/article/1901151033665581056.htm" title="高效开发利器:ElementUI元件库与后台模板页面(兼容Axure9)" target="_blank">高效开发利器:ElementUI元件库与后台模板页面(兼容Axure9)</a> <span class="text-muted">晏肠冲Jessie</span> <div>高效开发利器:ElementUI元件库与后台模板页面(兼容Axure9)【下载地址】ElementUI元件库与后台模板页面兼容Axure9下载本仓库提供了一个名为“web元件库ElementUI元件库后台模板页面(兼容Axure9).zip”的资源文件下载。该文件包含了适用于Web开发的ElementUI元件库以及兼容Axure9的后台模板页面项目地址:https://gitcode.com/op</div> </li> <li><a href="/article/1901151034089205760.htm" title="Python 程序 运行过程" target="_blank">Python 程序 运行过程</a> <span class="text-muted">iteye_20309</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/c%2Fc%2B%2B/1.htm">c/c++</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a> <div>一.Python解释器Python是一门编程语言,同时也是一个解释器的软件包。解释器是一种让其他程序运行起来的程序。当你编写了一段Python程序,Python解释器将读取程序,并按照其中的命令执行,得出结果。解释器是代码与计算机硬件之间的软件逻辑层。当Python包安装后,它包含了一些最小化的组件:一个解释器和支持的库。根据使用情况的不同,Python解释器可能采取可执行程序的形式,或者作为链接</div> </li> <li><a href="/article/1901150907341533184.htm" title="ElementUI元件库与后台模板页面(支持Axure8及9)" target="_blank">ElementUI元件库与后台模板页面(支持Axure8及9)</a> <span class="text-muted">贡驰赞Powerful</span> <div>ElementUI元件库与后台模板页面(支持Axure8及9)【下载地址】ElementUI元件库与后台模板页面支持Axure8及9本仓库提供了一个全面的资源文件,包含ElementUI元件库及后台模板页面,支持Axure8及9版本。该资源文件旨在帮助设计师和产品经理快速构建高保真原型,提升工作效率项目地址:https://gitcode.com/open-source-toolkit/50b64</div> </li> <li><a href="/article/1901150781004902400.htm" title="SQLAlchemy 数据模型可视化工具——洞察数据库架构的艺术" target="_blank">SQLAlchemy 数据模型可视化工具——洞察数据库架构的艺术</a> <span class="text-muted">宁彦腾</span> <div>SQLAlchemy数据模型可视化工具——洞察数据库架构的艺术sqlalchemy_data_model_visualizerAutomaticallyturnyourSQLalchemyDataModelsintoaNiceSVGDiagram项目地址:https://gitcode.com/gh_mirrors/sq/sqlalchemy_data_model_visualizer在数据驱动的</div> </li> <li><a href="/article/1901149140939763712.htm" title="C语言刷题第五章(上)" target="_blank">C语言刷题第五章(上)</a> <span class="text-muted">乞丐1469</span> <a class="tag" taget="_blank" href="/search/C%E8%AF%AD%E8%A8%80%E5%88%B7%E9%A2%98/1.htm">C语言刷题</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/%E5%AD%A6%E4%B9%A0/1.htm">学习</a> <div>一.题目:1.竞选社长(1)题目描述:假设你们社团要竞选社长,有两名候选人A和B。社团每名同学必须并且只能投一票,最终票数最多的为社长。(2)输入描述:一行,包括字符序列,包含A和B,输入以字符0结束。(3)输出描述:一行,一行字符,A,B或者E。输出A表示A得到的票数最多,输出B表示B得到的票数最多,输出E表示两个同学得到的票数一样多。(4)示例:输入:AABBBBBBBB0输出:B(5)代码实</div> </li> <li><a href="/article/1901149142290329600.htm" title="(c语言)将一个数组逆序输出" target="_blank">(c语言)将一个数组逆序输出</a> <span class="text-muted">WuwuwuH_</span> <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/C%E8%AF%AD%E8%A8%80/1.htm">C语言</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E7%BB%84/1.htm">数组</a><a class="tag" taget="_blank" href="/search/%E9%80%86%E5%BA%8F%E8%BE%93%E5%87%BA/1.htm">逆序输出</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B/1.htm">编程</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a> <div>(c语言)将一个数组逆序输出#include#includeintmain(){intarr[10]={0,2,5,7,9,10,13,15,18,25};inti;intlength=(int)sizeof(arr)/sizeof(arr[0]);//判断数组长度(总长度除以单个的长度)printf("数组共有%d个数字\n",length);for(i=length-1;i>0;i--){pr</div> </li> <li><a href="/article/61.htm" title="Enum用法" target="_blank">Enum用法</a> <span class="text-muted">不懂事的小屁孩</span> <a class="tag" taget="_blank" href="/search/enum/1.htm">enum</a> <div>以前的时候知道enum,但是真心不怎么用,在实际开发中,经常会用到以下代码: protected final static String XJ = "XJ"; protected final static String YHK = "YHK"; protected final static String PQ = "PQ"; </div> </li> <li><a href="/article/188.htm" title="【Spark九十七】RDD API之aggregateByKey" target="_blank">【Spark九十七】RDD API之aggregateByKey</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/spark/1.htm">spark</a> <div>1. aggregateByKey的运行机制   /** * Aggregate the values of each key, using given combine functions and a neutral "zero value". * This function can return a different result type</div> </li> <li><a href="/article/315.htm" title="hive创建表是报错: Specified key was too long; max key length is 767 bytes" target="_blank">hive创建表是报错: Specified key was too long; max key length is 767 bytes</a> <span class="text-muted">daizj</span> <a class="tag" taget="_blank" href="/search/hive/1.htm">hive</a> <div>今天在hive客户端创建表时报错,具体操作如下   hive> create table test2(id string); FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:javax.jdo.JDODataSto</div> </li> <li><a href="/article/442.htm" title="Map 与 JavaBean之间的转换" target="_blank">Map 与 JavaBean之间的转换</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/%E8%87%AA%E7%9C%81/1.htm">自省</a><a class="tag" taget="_blank" href="/search/%E8%BD%AC%E6%8D%A2/1.htm">转换</a><a class="tag" taget="_blank" href="/search/%E5%8F%8D%E5%B0%84/1.htm">反射</a> <div> 最近项目里需要一个工具类,它的功能是传入一个Map后可以返回一个JavaBean对象。很喜欢写这样的Java服务,首先我想到的是要通过Java 的反射去实现匿名类的方法调用,这样才可以把Map里的值set 到JavaBean里。其实这里用Java的自省会更方便,下面两个方法就是一个通过反射,一个通过自省来实现本功能。 1:JavaBean类 1 &nb</div> </li> <li><a href="/article/569.htm" title="java连接ftp下载" target="_blank">java连接ftp下载</a> <span class="text-muted">g21121</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>有的时候需要用到java连接ftp服务器下载,上传一些操作,下面写了一个小例子。 /** ftp服务器地址 */ private String ftpHost; /** ftp服务器用户名 */ private String ftpName; /** ftp服务器密码 */ private String ftpPass; /** ftp根目录 */ private String f</div> </li> <li><a href="/article/696.htm" title="web报表工具FineReport使用中遇到的常见报错及解决办法(二)" target="_blank">web报表工具FineReport使用中遇到的常见报错及解决办法(二)</a> <span class="text-muted">老A不折腾</span> <a class="tag" taget="_blank" href="/search/finereport/1.htm">finereport</a><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/java%E6%8A%A5%E8%A1%A8/1.htm">java报表</a><a class="tag" taget="_blank" href="/search/%E6%80%BB%E7%BB%93/1.htm">总结</a> <div>  抛砖引玉,希望大家能把自己整理的问题及解决方法晾出来,Mark一下,利人利己。   出现问题先搜一下文档上有没有,再看看度娘有没有,再看看论坛有没有。有报错要看日志。下面简单罗列下常见的问题,大多文档上都有提到的。   1、没有返回数据集: 在存储过程中的操作语句之前加上set nocount on 或者在数据集exec调用存储过程的前面加上这句。当S</div> </li> <li><a href="/article/823.htm" title="linux 系统cpu 内存等信息查看" target="_blank">linux 系统cpu 内存等信息查看</a> <span class="text-muted">墙头上一根草</span> <a class="tag" taget="_blank" href="/search/cpu/1.htm">cpu</a><a class="tag" taget="_blank" href="/search/%E5%86%85%E5%AD%98/1.htm">内存</a><a class="tag" taget="_blank" href="/search/liunx/1.htm">liunx</a> <div>1 查看CPU   1.1 查看CPU个数   # cat /proc/cpuinfo | grep "physical id" | uniq | wc -l   2   **uniq命令:删除重复行;wc –l命令:统计行数**   1.2 查看CPU核数   # cat /proc/cpuinfo | grep "cpu cores" | u</div> </li> <li><a href="/article/950.htm" title="Spring中的AOP" target="_blank">Spring中的AOP</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/AOP/1.htm">AOP</a> <div>  Spring中的AOP Written by Tony Jiang @ 2012-1-18 (转)何为AOP AOP,面向切面编程。 在不改动代码的前提下,灵活的在现有代码的执行顺序前后,添加进新规机能。 来一个简单的Sample: 目标类: [java]  view plain copy print ? package&nb</div> </li> <li><a href="/article/1077.htm" title="placeholder(HTML 5) IE 兼容插件" target="_blank">placeholder(HTML 5) IE 兼容插件</a> <span class="text-muted">alxw4616</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/jquery+jQuery%E6%8F%92%E4%BB%B6/1.htm">jquery jQuery插件</a> <div>placeholder 这个属性被越来越频繁的使用. 但为做HTML 5 特性IE没能实现这东西. 以下的jQuery插件就是用来在IE上实现该属性的. /** * [placeholder(HTML 5) IE 实现.IE9以下通过测试.] * v 1.0 by oTwo 2014年7月31日 11:45:29 */ $.fn.placeholder = function</div> </li> <li><a href="/article/1204.htm" title="Object类,值域,泛型等总结(适合有基础的人看)" target="_blank">Object类,值域,泛型等总结(适合有基础的人看)</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/%E6%B3%9B%E5%9E%8B%E7%9A%84%E7%BB%A7%E6%89%BF%E5%92%8C%E9%80%9A%E9%85%8D%E7%AC%A6/1.htm">泛型的继承和通配符</a><a class="tag" taget="_blank" href="/search/%E5%8F%98%E9%87%8F%E7%9A%84%E5%80%BC%E5%9F%9F/1.htm">变量的值域</a><a class="tag" taget="_blank" href="/search/Object%E7%B1%BB%E8%BD%AC%E6%8D%A2/1.htm">Object类转换</a> <div>java的作用域在编程的时候经常会遇到,而我经常会搞不清楚这个 问题,所以在家的这几天回忆一下过去不知道的每个小知识点   变量的值域;   package 基础; /** * 作用域的范围 * * @author Administrator * */ public class zuoyongyu { public static vo</div> </li> <li><a href="/article/1331.htm" title="JDK1.5 Condition接口" target="_blank">JDK1.5 Condition接口</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/Condition/1.htm">Condition</a><a class="tag" taget="_blank" href="/search/java%E5%A4%9A%E7%BA%BF%E7%A8%8B/1.htm">java多线程</a> <div>Condition 将 Object 监视器方法(wait、notify和 notifyAll)分解成截然不同的对象,以便通过将这些对象与任意 Lock 实现组合使用,为每个对象提供多个等待 set (wait-set)。其中,Lock 替代了 synchronized 方法和语句的使用,Condition 替代了 Object 监视器方法的使用。 条件(也称为条件队列或条件变量)为线程提供了一</div> </li> <li><a href="/article/1458.htm" title="开源中国OSC源创会记录" target="_blank">开源中国OSC源创会记录</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/hadoop/1.htm">hadoop</a><a class="tag" taget="_blank" href="/search/spark/1.htm">spark</a><a class="tag" taget="_blank" href="/search/MemSQL/1.htm">MemSQL</a> <div>一.Strata+Hadoop World(SHW)大会         是全世界最大的大数据大会之一。SHW大会为各种技术提供了深度交流的机会,还会看到最领先的大数据技术、最广泛的应用场景、最有趣的用例教学以及最全面的大数据行业和趋势探讨。          二.Hadoop   &nbs</div> </li> <li><a href="/article/1585.htm" title="【Java范型七】范型消除" target="_blank">【Java范型七】范型消除</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>范型是Java1.5引入的语言特性,它是编译时的一个语法现象,也就是说,对于一个类,不管是范型类还是非范型类,编译得到的字节码是一样的,差别仅在于通过范型这种语法来进行编译时的类型检查,在运行时是没有范型或者类型参数这个说法的。 范型跟反射刚好相反,反射是一种运行时行为,所以编译时不能访问的变量或者方法(比如private),在运行时通过反射是可以访问的,也就是说,可见性也是一种编译时的行为,在</div> </li> <li><a href="/article/1712.htm" title="【Spark九十四】spark-sql工具的使用" target="_blank">【Spark九十四】spark-sql工具的使用</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/spark/1.htm">spark</a> <div>spark-sql是Spark bin目录下的一个可执行脚本,它的目的是通过这个脚本执行Hive的命令,即原来通过 hive>输入的指令可以通过spark-sql>输入的指令来完成。 spark-sql可以使用内置的Hive metadata-store,也可以使用已经独立安装的Hive的metadata store   关于Hive build into Spark</div> </li> <li><a href="/article/1839.htm" title="js做的各种倒计时" target="_blank">js做的各种倒计时</a> <span class="text-muted">ronin47</span> <a class="tag" taget="_blank" href="/search/js+%E5%80%92%E8%AE%A1%E6%97%B6/1.htm">js 倒计时</a> <div> 第一种:精确到秒的javascript倒计时代码      HTML代码:   <form name="form1">   <div align="center" align="middle"</div> </li> <li><a href="/article/1966.htm" title="java-37.有n 个长为m+1 的字符串,如果某个字符串的最后m 个字符与某个字符串的前m 个字符匹配,则两个字符串可以联接" target="_blank">java-37.有n 个长为m+1 的字符串,如果某个字符串的最后m 个字符与某个字符串的前m 个字符匹配,则两个字符串可以联接</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div> public class MaxCatenate { /* * Q.37 有n 个长为m+1 的字符串,如果某个字符串的最后m 个字符与某个字符串的前m 个字符匹配,则两个字符串可以联接, * 问这n 个字符串最多可以连成一个多长的字符串,如果出现循环,则返回错误。 */ public static void main(String[] args){</div> </li> <li><a href="/article/2093.htm" title="mongoDB安装" target="_blank">mongoDB安装</a> <span class="text-muted">开窍的石头</span> <a class="tag" taget="_blank" href="/search/mongodb%E5%AE%89%E8%A3%85+%E5%9F%BA%E6%9C%AC%E6%93%8D%E4%BD%9C/1.htm">mongodb安装 基本操作</a> <div>mongoDB的安装          1:mongoDB下载   https://www.mongodb.org/downloads         2:下载mongoDB下载后解压     </div> </li> <li><a href="/article/2220.htm" title="[开源项目]引擎的关键意义" target="_blank">[开源项目]引擎的关键意义</a> <span class="text-muted">comsci</span> <a class="tag" taget="_blank" href="/search/%E5%BC%80%E6%BA%90%E9%A1%B9%E7%9B%AE/1.htm">开源项目</a> <div>      一个系统,最核心的东西就是引擎。。。。。       而要设计和制造出引擎,最关键的是要坚持。。。。。。       现在最先进的引擎技术,也是从莱特兄弟那里出现的,但是中间一直没有断过研发的    </div> </li> <li><a href="/article/2347.htm" title="软件度量的一些方法" target="_blank">软件度量的一些方法</a> <span class="text-muted">cuiyadll</span> <a class="tag" taget="_blank" href="/search/%E6%96%B9%E6%B3%95/1.htm">方法</a> <div>软件度量的一些方法http://cuiyingfeng.blog.51cto.com/43841/6775/在前面我们已介绍了组成软件度量的几个方面。在这里我们将先给出关于这几个方面的一个纲要介绍。在后面我们还会作进一步具体的阐述。当我们不从高层次的概念级来看软件度量及其目标的时候,我们很容易把这些活动看成是不同而且毫不相干的。我们现在希望表明他们是怎样恰如其分地嵌入我们的框架的。也就是我们度量的</div> </li> <li><a href="/article/2474.htm" title="XSD中的targetNameSpace解释" target="_blank">XSD中的targetNameSpace解释</a> <span class="text-muted">darrenzhu</span> <a class="tag" taget="_blank" href="/search/xml/1.htm">xml</a><a class="tag" taget="_blank" href="/search/namespace/1.htm">namespace</a><a class="tag" taget="_blank" href="/search/xsd/1.htm">xsd</a><a class="tag" taget="_blank" href="/search/targetnamespace/1.htm">targetnamespace</a> <div>参考链接: http://blog.csdn.net/colin1014/article/details/357694 xsd文件中定义了一个targetNameSpace后,其内部定义的元素,属性,类型等都属于该targetNameSpace,其自身或外部xsd文件使用这些元素,属性等都必须从定义的targetNameSpace中找: 例如:以下xsd文件,就出现了该错误,即便是在一</div> </li> <li><a href="/article/2601.htm" title="什么是RAID0、RAID1、RAID0+1、RAID5,等磁盘阵列模式?" target="_blank">什么是RAID0、RAID1、RAID0+1、RAID5,等磁盘阵列模式?</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/raid/1.htm">raid</a> <div>RAID 1又称为Mirror或Mirroring,它的宗旨是最大限度的保证用户数据的可用性和可修复性。 RAID 1的操作方式是把用户写入硬盘的数据百分之百地自动复制到另外一个硬盘上。由于对存储的数据进行百分之百的备份,在所有RAID级别中,RAID 1提供最高的数据安全保障。同样,由于数据的百分之百备份,备份数据占了总存储空间的一半,因而,Mirror的磁盘空间利用率低,存储成本高。 Mir</div> </li> <li><a href="/article/2728.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>快速入门 Yii 提供了一整套用来简化实现 RESTful 风格的 Web Service 服务的 API。 特别是,Yii 支持以下关于 RESTful 风格的 API: 支持 Active Record 类的通用API的快速原型 涉及的响应格式(在默认情况下支持 JSON 和 XML) 支持可选输出字段的定制对象序列化 适当的格式的数据采集和验证错误 </div> </li> <li><a href="/article/2855.htm" title="MongoDB查询(3)——内嵌文档查询(七)" target="_blank">MongoDB查询(3)——内嵌文档查询(七)</a> <span class="text-muted">eksliang</span> <a class="tag" taget="_blank" href="/search/MongoDB%E6%9F%A5%E8%AF%A2%E5%86%85%E5%B5%8C%E6%96%87%E6%A1%A3/1.htm">MongoDB查询内嵌文档</a><a class="tag" taget="_blank" href="/search/MongoDB%E6%9F%A5%E8%AF%A2%E5%86%85%E5%B5%8C%E6%95%B0%E7%BB%84/1.htm">MongoDB查询内嵌数组</a> <div>MongoDB查询内嵌文档 转载请出自出处:http://eksliang.iteye.com/blog/2177301 一、概述        有两种方法可以查询内嵌文档:查询整个文档;针对键值对进行查询。这两种方式是不同的,下面我通过例子进行分别说明。   二、查询整个文档 例如:有如下文档 db.emp.insert({ &qu</div> </li> <li><a href="/article/2982.htm" title="android4.4从系统图库无法加载图片的问题" target="_blank">android4.4从系统图库无法加载图片的问题</a> <span class="text-muted">gundumw100</span> <a class="tag" taget="_blank" href="/search/android/1.htm">android</a> <div>典型的使用场景就是要设置一个头像,头像需要从系统图库或者拍照获得,在android4.4之前,我用的代码没问题,但是今天使用android4.4的时候突然发现不灵了。baidu了一圈,终于解决了。 下面是解决方案: private String[] items = new String[] { "图库","拍照" }; /* 头像名称 */</div> </li> <li><a href="/article/3109.htm" title="网页特效大全 jQuery等" target="_blank">网页特效大全 jQuery等</a> <span class="text-muted">ini</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a><a class="tag" taget="_blank" href="/search/html5/1.htm">html5</a><a class="tag" taget="_blank" href="/search/ini/1.htm">ini</a> <div>HTML5和CSS3知识和特效 asp.net ajax jquery实例 分享一个下雪的特效 jQuery倾斜的动画导航菜单 选美大赛示例 你会选谁 jQuery实现HTML5时钟 功能强大的滚动播放插件JQ-Slide 万圣节快乐!!! 向上弹出菜单jQuery插件 htm5视差动画 jquery将列表倒转顺序 推荐一个jQuery分页插件 jquery animate</div> </li> <li><a href="/article/3236.htm" title="swift objc_setAssociatedObject block(version1.2 xcode6.4)" target="_blank">swift objc_setAssociatedObject block(version1.2 xcode6.4)</a> <span class="text-muted">啸笑天</span> <a class="tag" taget="_blank" href="/search/version/1.htm">version</a> <div>  import UIKit class LSObjectWrapper: NSObject { let value: ((barButton: UIButton?) -> Void)? init(value: (barButton: UIButton?) -> Void) { self.value = value </div> </li> <li><a href="/article/3363.htm" title="Aegis 默认的 Xfire 绑定方式,将 XML 映射为 POJO" target="_blank">Aegis 默认的 Xfire 绑定方式,将 XML 映射为 POJO</a> <span class="text-muted">MagicMa_007</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/POJO/1.htm">POJO</a><a class="tag" taget="_blank" href="/search/xml/1.htm">xml</a><a class="tag" taget="_blank" href="/search/Aegis/1.htm">Aegis</a><a class="tag" taget="_blank" href="/search/xfire/1.htm">xfire</a> <div>      Aegis 是一个默认的 Xfire 绑定方式,它将 XML 映射为 POJO, 支持代码先行的开发.你开发服 务类与 POJO,它为你生成 XML schema/wsdl XML 和 注解映射概览       默认情况下,你的 POJO 类被是基于他们的名字与命名空间被序列化。如果</div> </li> <li><a href="/article/3490.htm" title="js get max value in (json) Array" target="_blank">js get max value in (json) Array</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/max/1.htm">max</a><a class="tag" taget="_blank" href="/search/%E7%BA%B5%E8%A7%82%E5%8D%83%E8%B1%A1/1.htm">纵观千象</a> <div>// Max value in Array var arr = [1,2,3,5,3,2];Math.max.apply(null, arr); // 5 // Max value in Jaon Array var arr = [{"x":"8/11/2009","y":0.026572007},{"x"</div> </li> <li><a href="/article/3617.htm" title="XMLhttpRequest 请求 XML,JSON ,POJO 数据" target="_blank">XMLhttpRequest 请求 XML,JSON ,POJO 数据</a> <span class="text-muted">Luob.</span> <a class="tag" taget="_blank" href="/search/POJO/1.htm">POJO</a><a class="tag" taget="_blank" href="/search/json/1.htm">json</a><a class="tag" taget="_blank" href="/search/Ajax/1.htm">Ajax</a><a class="tag" taget="_blank" href="/search/xml/1.htm">xml</a><a class="tag" taget="_blank" href="/search/XMLhttpREquest/1.htm">XMLhttpREquest</a> <div>在使用XMlhttpRequest对象发送请求和响应之前,必须首先使用javaScript对象创建一个XMLHttpRquest对象。 var xmlhttp; function getXMLHttpRequest(){ if(window.ActiveXObject){ xmlhttp:new ActiveXObject("Microsoft.XMLHTTP</div> </li> <li><a href="/article/3744.htm" title="jquery" target="_blank">jquery</a> <span class="text-muted">wuai</span> <a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a> <div>以下防止文档在完全加载之前运行Jquery代码,否则会出现试图隐藏一个不存在的元素、获得未完全加载的图像的大小 等等 $(document).ready(function(){ jquery代码; }); <script type="text/javascript" src="c:/scripts/jquery-1.4.2.min.js&quo</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>