(1)服务器端(server):在使用别人的服务器上,例如微信APP客户端,服务端在腾讯的服务端上,微信上的账号信息,聊天记录均存储在服务端上;用户A发送1条信息到服务端上,服务端再把这条信息转发到用户B上。
服务器使用的语言分别为:Java、Python、PHP、Go、C、C++等等
(2)客户端(client):手机上的APP,网站
客户端使用的语言分别为:object-c(IOS)、Android、HTML、CSS、JS等等
(3)接口:通过客户端与服务端进行交互的
(4)这么多种类的语言,造成无法识别,需要通用的数据类型进行解析:json{},没有json之前用的XML格式
XML :通用的数据类型
接口测试
<content>服务器与客户端需要接口进行交互</content>
</code></pre>
<p>JSON :通用的数据类型,以一种键值对来展示:</p>
<pre><code>{
"title" : "接口测试",
"content" : "服务器与客户端需要接口进行交
}
</code></pre>
<h2>02 如何测试接口</h2>
<p>1、接口:是由客户端和服务器来进行交互的,以及接口返回的数据一般都是json格式的数据类型。</p>
<p>2、接口测试基本步骤如下:</p>
<p>在接口文档中或者其它地方,拿到接口的URL地址</p>
<p>查看接口是用什么方式发生请求(例如:get和post请求)</p>
<p>添加请求头,请求体</p>
<p>发送查看返回结果,校验返回结果是否正确</p>
<p>3、打开接口文档(参考:doc.nnzhp.cn)</p>
<p>(1)URL</p>
<p>(2)请求方式</p>
<p>(3)请求参数</p>
<p>(4)get请求</p>
<p>在浏览器上,直接输入接口文档中的请求URL:http://api.nnzhp.cn/api/user/stu_info,页面报错提示“必填参数未填写!请查看接口文档!”(如图所示)</p>
<p><a href="http://img.e-com-net.com/image/info8/3925c17a048c4378bda565b9c1d41fa2.png" target="_blank"><img src="http://img.e-com-net.com/image/info8/3925c17a048c4378bda565b9c1d41fa2.png" alt="接口自动化测试:Postman实战教程_第1张图片" width="519" height="151" style="border:1px solid black;"></a></p>
<p>基于上面中的url链接中不带必填参数报错,故需在URL中补上必填参数:http://api.nnzhp.cn/api/user/stu_info?stu_name=%E5%B0%8F%E6%98%8E</p>
<p><a href="http://img.e-com-net.com/image/info8/5db06ecfaf0049b7b6abc531573fd0b0.png" target="_blank"><img src="http://img.e-com-net.com/image/info8/5db06ecfaf0049b7b6abc531573fd0b0.png" alt="接口自动化测试:Postman实战教程_第2张图片" width="588" height="417" style="border:1px solid black;"></a></p>
<p>有多个必填参数时,需要在URL中添加其他必填参数用“&”拼接,例如:http://api.nnzhp.cn/api/user/stu_info?stu_name=%E5%B0%8F%E6%98%8E&age=25</p>
<p>机器学习PAI控制台:https://pai.data.aliyun.com/console?regionId=ap-southeast-1&commodityId=&projectId=&deployFrom=&modelPath=&type=#/eas</p>
<p>(5)post请求</p>
<p>复制URL在浏览器打开,报错“请求方式错误!请查看接口文档”,例如如图显示</p>
<p><a href="http://img.e-com-net.com/image/info8/90d867d8664c4828a4770b8474bbfd4c.png" target="_blank"><img src="http://img.e-com-net.com/image/info8/90d867d8664c4828a4770b8474bbfd4c.png" alt="接口自动化测试:Postman实战教程_第3张图片" width="535" height="168" style="border:1px solid black;"></a></p>
<p>这时候需要借助postman接口工具进行测试,前提条件:需要本地安装postman应用软件(注意:如果是POST请求,选择Params填写参数,这时URL中会自动带上该参数信息,这种请求方式应该是GET请求方式而不是POST请求,如图:)</p>
<p><a href="http://img.e-com-net.com/image/info8/7d951e313e8047f3bff3069271f8ac2a.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/7d951e313e8047f3bff3069271f8ac2a.jpg" alt="接口自动化测试:Postman实战教程_第4张图片" width="650" height="310" style="border:1px solid black;"></a></p>
<p>POST请求,应该选择Body选项,勾选“form-data”或者“x-www-form-urlencoded”填写必填参数,如图所示:</p>
<p><a href="http://img.e-com-net.com/image/info8/9d16d286c21f468dbcf8ffeaf6b00887.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/9d16d286c21f468dbcf8ffeaf6b00887.jpg" alt="接口自动化测试:Postman实战教程_第5张图片" width="650" height="373" style="border:1px solid black;"></a></p>
<p>POST请求,用户注册,如图:</p>
<p><a href="http://img.e-com-net.com/image/info8/28c29e98d8b3489c82969a7f658c003f.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/28c29e98d8b3489c82969a7f658c003f.jpg" alt="接口自动化测试:Postman实战教程_第6张图片" width="650" height="387" style="border:1px solid black;"></a></p>
<p>POST请求,入参为json类型,如图:</p>
<p><a href="http://img.e-com-net.com/image/info8/819a17cbd0cf4e46b19c1ea0d0ef451b.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/819a17cbd0cf4e46b19c1ea0d0ef451b.jpg" alt="接口自动化测试:Postman实战教程_第7张图片" width="650" height="412" style="border:1px solid black;"></a></p>
<p>查询是否存在该学生信息:</p>
<p><a href="http://img.e-com-net.com/image/info8/1b8672cc0ae641fe850ff6f745de2f51.png" target="_blank"><img src="http://img.e-com-net.com/image/info8/1b8672cc0ae641fe850ff6f745de2f51.png" alt="接口自动化测试:Postman实战教程_第8张图片" width="713" height="306" style="border:1px solid black;"></a></p>
<p>POST请求,Body选择form-data,Key由Text切换File格式,进行文件上传,(注意:x-www-form-urlencoded没有File格式,只有Text选项,不能上传多媒体文件)如图:</p>
<p><a href="http://img.e-com-net.com/image/info8/57bee2c4fe4a499f8eeb2155b8412f53.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/57bee2c4fe4a499f8eeb2155b8412f53.jpg" alt="接口自动化测试:Postman实战教程_第9张图片" width="650" height="355" style="border:1px solid black;"></a></p>
<h2>4、浏览器进行抓包</h2>
<p>(1)浏览器打开检查或者开发者工具,再或者检查元素等控制台</p>
<p>(2)一般查看调用接口Network(网络)下面的XHR调用了哪些接口</p>
<p>(3)请求url:https://qun.qq.com/cgi-bin/qunwelcome/myinfo?callback=?&bkn=682554596</p>
<p><a href="http://img.e-com-net.com/image/info8/04f2dc7c653a447788420953431dc62b.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/04f2dc7c653a447788420953431dc62b.jpg" alt="接口自动化测试:Postman实战教程_第10张图片" width="650" height="343" style="border:1px solid black;"></a></p>
<p>(4)利用Postman接口工具进行调用接口:get_group_list</p>
<p><a href="http://img.e-com-net.com/image/info8/7be37ebb4f274ae1b10e67655014e561.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/7be37ebb4f274ae1b10e67655014e561.jpg" alt="接口自动化测试:Postman实战教程_第11张图片" width="650" height="400" style="border:1px solid black;"></a></p>
<p>(5)接口search_group_members ,多个参数进行接口测试:</p>
<p><a href="http://img.e-com-net.com/image/info8/d98274caae754321a887274f1875164d.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/d98274caae754321a887274f1875164d.jpg" alt="接口自动化测试:Postman实战教程_第12张图片" width="650" height="448" style="border:1px solid black;"></a></p>
<p>(6)cookie和session</p>
<p>cookie:在浏览器存放自己本地信息数据的一个键值对(key-value)的地方</p>
<p>保存时间:根据需要设定</p>
<p>保存位置:客户端</p>
<p>session:存放在服务端的一个键值对</p>
<p>保存时间:用户活动时间+一段延迟时间(登录时提示用户保存时间7天时间)</p>
<p>保存位置:服务器端</p>
<p>5、GET请求方式和POST请求方式的区别:</p>
<p>(1)GET请求没有请求体,只要请求头和URL:host/api/xxx?name=xxx</p>
<p>(2)POST请求是有请求头、请求体</p>
<p>(3)GET请求没有POST请求安全</p>
<p>(4)GET请求有参数长度限制,POST没有</p>
<h2>03 postman接口自动化</h2>
<p>1、测试银行项目、金融项目会遇到加密参数,需要:<br> (1)参数去掉加密</p>
<p>(2)提供一个工具,产生加密后的参数</p>
<p>(3)自己了解加密算法,然后自己加密</p>
<p>2、Postman中手动配置环境变量:</p>
<p>(1)在Postman中,有Environment和Environment,用于实现不同环境的管理,不同服务器环境分别为:</p>
<p>Production 生产环境</p>
<p>Development 开发环境</p>
<p>Local 本地局域网环境</p>
<p>(2)环境快速查看,如图1所示 :</p>
<p><a href="http://img.e-com-net.com/image/info8/177b2a9ebdf748979cf4421c3ceb02a3.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/177b2a9ebdf748979cf4421c3ceb02a3.jpg" alt="接口自动化测试:Postman实战教程_第13张图片" width="650" height="398" style="border:1px solid black;"></a></p>
<p>(3)使用Environment实现多服务版本管理,点击右上角的设置,点击【Manage Environments】,和图2所示:</p>
<p><a href="http://img.e-com-net.com/image/info8/d553c2dc227843f1a5ecd3d99d3ee8b2.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/d553c2dc227843f1a5ecd3d99d3ee8b2.jpg" alt="接口自动化测试:Postman实战教程_第14张图片" width="650" height="312" style="border:1px solid black;"></a></p>
<p>(4)在弹窗【MANAGE ENVIRONMENTS】界面中,右下角点击“Add”,如图:</p>
<p><a href="http://img.e-com-net.com/image/info8/29c3438302ab43ebab62e4e72162318a.png" target="_blank"><img src="http://img.e-com-net.com/image/info8/29c3438302ab43ebab62e4e72162318a.png" alt="接口自动化测试:Postman实战教程_第15张图片" width="731" height="481" style="border:1px solid black;"></a></p>
<p>(5)在“Add Environment”中,填写变量名和变量值 ,如图:</p>
<p><a href="http://img.e-com-net.com/image/info8/5b3905b14b8c48bdbf9e3c7791dea515.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/5b3905b14b8c48bdbf9e3c7791dea515.jpg" alt="接口自动化测试:Postman实战教程_第16张图片" width="650" height="426" style="border:1px solid black;"></a></p>
<p>(6)配置好变量名称和变量值后,可以在请求URL中进行参数化:</p>
<p><a href="http://img.e-com-net.com/image/info8/7132903296e74bfd907bc7e8437afb0e.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/7132903296e74bfd907bc7e8437afb0e.jpg" alt="接口自动化测试:Postman实战教程_第17张图片" width="650" height="297" style="border:1px solid black;"></a></p>
<p><a href="http://img.e-com-net.com/image/info8/7e9ae13779d043a2a49486915695291e.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/7e9ae13779d043a2a49486915695291e.jpg" alt="接口自动化测试:Postman实战教程_第18张图片" width="650" height="434" style="border:1px solid black;"></a></p>
<p>(6)编写脚本,脚本参数化,如同</p>
<p><a href="http://img.e-com-net.com/image/info8/5be69dce21394c0d8126187da147e5a1.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/5be69dce21394c0d8126187da147e5a1.jpg" alt="接口自动化测试:Postman实战教程_第19张图片" width="650" height="350" style="border:1px solid black;"></a></p>
<p>(7)点击runner,配置运行参数,如同:</p>
<p><a href="http://img.e-com-net.com/image/info8/d5afdd6630424ae3b2f40f8af545944a.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/d5afdd6630424ae3b2f40f8af545944a.jpg" alt="接口自动化测试:Postman实战教程_第20张图片" width="650" height="576" style="border:1px solid black;"></a></p>
<p>(8)查看最后的运行结果,状态码为200 ok,表示运行成功,如图:</p>
<p><a href="http://img.e-com-net.com/image/info8/fc70e9bf3622473a8036ea3159c16d8f.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/fc70e9bf3622473a8036ea3159c16d8f.jpg" alt="接口自动化测试:Postman实战教程_第21张图片" width="650" height="315" style="border:1px solid black;"></a></p>
<p>图中有个字段是:“This requests does not have any tests.”</p>
<p>需要检查:</p>
<p>第一步:检查是否变量名称是否对应;</p>
<p>第二步:是否点击了保存,再点击Runner</p>
<p>第三步:是否添加了校验</p>
<p>(9)添加校验,设置检查</p>
<p><a href="http://img.e-com-net.com/image/info8/35ee294319554c45a10bc96438ab4293.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/35ee294319554c45a10bc96438ab4293.jpg" alt="接口自动化测试:Postman实战教程_第22张图片" width="650" height="291" style="border:1px solid black;"></a></p>
<p>(10) postman断言:</p>
<p><a href="http://img.e-com-net.com/image/info8/bf39b715fe1f435c9eef1ccd3c1438fa.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/bf39b715fe1f435c9eef1ccd3c1438fa.jpg" alt="接口自动化测试:Postman实战教程_第23张图片" width="650" height="300" style="border:1px solid black;"></a></p>
<p>(11) 点击【Tests】按钮,右边栏有个snippets栏,里面是postman内置的测试脚本,辅助接口测试:</p>
<p>A:判断状态码</p>
<p>Status code : Code is 200</p>
<p>对应的脚本:</p>
<pre><code>pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
);
</code></pre>
<p>B:返回的response包含内容</p>
<p>Response body : Containing string</p>
<pre><code> 对应的脚本:
</code></pre>
<pre><code> pm.test("Body matches string", function () {
pm.expect(pm.response.text()).to.include("string_you_want_to_search");
});
</code></pre>
<p>C:返回的json数据中的值</p>
<p>Response body : JSON value check</p>
<pre><code> 对应的脚本为:
</code></pre>
<pre><code>pm.test("Your test name", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.value).to.eql(100);
});
</code></pre>
<p>D:响应的内容等于一个字符串</p>
<p>Response body : is equal to a string</p>
<p>对应的脚本:</p>
<pre><code> pm.test("Body is correct", function () {
pm.response.to.have.body("response_body_string");
});
</code></pre>
<p>E:检查响应头中是否有Content-Type字段</p>
<p>Response headers : Content-Type header check</p>
<p>对应的脚本:</p>
<pre><code> pm.test("Content-Type is present", function () {
pm.response.to.have.header("Content-Type");
});
</code></pre>
<p>F:判断响应的时间少于200MS</p>
<p>Response time is less than 200ms</p>
<pre><code> 对应的脚本:
</code></pre>
<pre><code> pm.test("Response time is less than 200ms", function () {
pm.expect(pm.response.responseTime).to.be.below(200);
});
</code></pre>
<p>(12)新建集合便于将个别请求进行分组,如图:</p>
<p><a href="http://img.e-com-net.com/image/info8/1890c31209f1416aa014c29534b5ad69.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/1890c31209f1416aa014c29534b5ad69.jpg" alt="接口自动化测试:Postman实战教程_第24张图片" width="650" height="428" style="border:1px solid black;"></a></p>
<h2>04 HTTP</h2>
<p>1、http和https的不同之处:</p>
<p>安全性不同:</p>
<p>http:普通的http请求,,信息明文传输信息,不安全;</p>
<p>https:具有安全性的ssl加密传输协议,为浏览器和服务器之间的通信加密,确保数据传输的安全;</p>
<p>连接方式不同:</p>
<p>http的连接很简单,是无状态的;</p>
<p>https是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议;</p>
<p>端口不同:</p>
<p>http协议:使用的端口是80;</p>
<p>https协议:使用的端口是443;</p>
<p>证书申请方式不同:</p>
<p>http协议:免费申请;</p>
<p>https协议:需要到ca申请证书,一般免费证书很少,需要交费。</p>
<p>2、一般完整的URL为:http://192.168.13.3:80 host/ip:port/api/user/add_stu uri</p>
<p><a href="http://img.e-com-net.com/image/info8/e2d79d9ce13246d5b25d3dfe2bfe1b7e.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/e2d79d9ce13246d5b25d3dfe2bfe1b7e.jpg" alt="接口自动化测试:Postman实战教程_第25张图片" width="650" height="114" style="border:1px solid black;"></a></p>
<p>3、接口HTTP参数</p>
<p>http请求方式:</p>
<p>get — 通过请求URL得到资源</p>
<p>POST — 用于添加新的内容</p>
<p>PUT —用于修改某个内容</p>
<p>DELETE—删除某个内容</p>
<p>CONNECT—用于代理进行传输,如使用SSL</p>
<p>OPTIONS—询问可以执行哪些方法</p>
<p>PATCH—部分文档更改</p>
<p>PROPFIND(WebDAV)—查看属性</p>
<p>PROPPATCH(WebDAV)—设置属性</p>
<p>MKCOL(WebDAV)—创建集合(文件夹)</p>
<p>COPY(WebDAV)—拷贝</p>
<p>MOVE(WebDAV)—移动</p>
<p>LOCK(WebDAV)—加锁</p>
<p>UNLOCK(WebDAV)—解锁</p>
<p>TRACE —用于远程诊断服务器</p>
<p>HEAD — 类似于GET,但是不返回body信息,用于检查对象是否存在,以及得到对象的元数据</p>
<p>http请求头(headers)</p>
<p>请求头包含许多有关客户端环境和请求正文的又用信息。如图所示:例如语言种类和状态码</p>
<p><a href="http://img.e-com-net.com/image/info8/a8293af5ef1746d3accb942be9a651a5.png" target="_blank"><img src="http://img.e-com-net.com/image/info8/a8293af5ef1746d3accb942be9a651a5.png" alt="接口自动化测试:Postman实战教程_第26张图片" width="732" height="487" style="border:1px solid black;"></a></p>
<p>http请求体(body):请求体即为请求等正文。</p>
<p>json 格式</p>
<p>xml 格式</p>
<p>html 格式</p>
<p>二进制格式(多用于图片)</p>
<p>字符串格式</p>
<p>4、用户接口可以通过以下4种不同方式的请求来做不同的事情:</p>
<p>(1)获取数据,用“GET”方式,成功了返回HTTP状态码:200</p>
<p>(2)创建数据,用“POST”方式,成功了返回HTTP状态码:201</p>
<p>(3)修改数据,用“PUT”方式,成功了返回HTTP状态码:203</p>
<p>(4)删除数据,用“DELETE”方式,成功了返回HTTP状态码:204</p>
<p>5、HTTP状态吗:</p>
<p>(1)请求消息(1字头)例如:100 Continue(请继续)</p>
<p>(2)请求成功 (2字头)例如:200 OK(请求已成功)</p>
<p>(3) 重定向 (3字头)例如:300 Multiple Choice(多项选择,会返回一个选项列表)</p>
<p>(4) 客户端请求错误 (4字头)例如:400 Bad Request (错误请求) 403 Forbidden(禁止) 404 Not Found(没有找到)</p>
<p>(5)服务器错误(5、6字开头)例如:500 Internal Server(内部错误) 502 Bad Gateway(代理或者网关下一链路收到未响应)</p>
<p>详细查看HTTP状态码、HTTP Status Code、HTTP常见状态码查询:https://tool.oschina.net/commons?type=5</p>
<h2>软件测试工程师自学教程:</h2>
<p>这才是2022最精细的自动化测试自学教程,我把它刷了无数遍才上岸字节跳动,做到涨薪20K【值得自学软件测试的人刷】</p>
<p>接口性能测试 — 软件测试人必会618实战场景分析</p>
<p>软件测试工程师月薪2W以上薪资必学技能 — Python接口自动化框架封装.</p>
<p>美团面试真题_高级测试25K岗位面试 — 软件测试人都应该看看</p>
<p>测试开发之全面剖析自动化测试平台 — 软件测试人的必经之路</p>
<p>软件测试必会_Jmeter大厂实战 — 仅6步可实现接口自动化测试</p>
<p>Jmeter实战讲解案例 — 软件测试人必会</p>
<p>最后: 可以在公众号:伤心的辣条 ! 自行领取一份216页软件测试工程师面试宝典文档资料【免费的】。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。</p>
<p><strong>现在我邀请你进入我们的软件测试学习交流群:</strong>【<strong><code>746506216</code></strong>】,备注“入群”, 大家可以一起探讨交流软件测试,共同学习软件测试技术、面试等软件测试方方面面,还会有免费直播课,收获更多测试技巧,<strong><code>我们一起进阶Python自动化测试/测试开发,走向高薪之路。</code></strong></p>
<p><strong>喜欢软件测试的小伙伴们,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一 键三连哦!</strong></p>
</div>
</div>
</div>
</div>
</div>
<!--PC和WAP自适应版-->
<div id="SOHUCS" sid="1582183925604786176"></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">你可能感兴趣的:(IT,软件测试,职场经验,postman,json,测试工具,程序人生,软件测试)</h4>
<div id="paradigm-article-related">
<div class="recommend-post mb30">
<ul class="widget-links">
<li><a href="/article/1890786252517601280.htm"
title="nodejs第五天 npm yarn pnpm 包管理器" target="_blank">nodejs第五天 npm yarn pnpm 包管理器</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/npm/1.htm">npm</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a>
<div>文章目录npmpackage.json安装包全局安装配置镜像yarn安装使用镜像配置pnpm使用镜像npmnode中的包管理器叫做npm(nodepackagemanage),我们可以将自己开发的包上传到npm中共别人使用,也可以直接从npm中下载别人开发好的包npm由以下三个部分组成:npm网站https://www.npmjs.com/npmCLI(CommandLineInterface即命</div>
</li>
<li><a href="/article/1890772126965755904.htm"
title="执行js生成json文件并动态写入数据" target="_blank">执行js生成json文件并动态写入数据</a>
<span class="text-muted">zuo-yiran</span>
<a class="tag" taget="_blank" href="/search/js/1.htm">js</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/json/1.htm">json</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a>
<div>项目中需要执行js后生成一个新的json文件,并在该文件内写入json数据,示例:生成一个json文件,内含执行这个js的时间戳作为json文件中的数据。新建一个js文件create.js,js代码如下:constfs=require('fs');constpath=require('path');constfilePath=path.join(__dirname,'app_version.jso</div>
</li>
<li><a href="/article/1890716272509906944.htm"
title="深入探究 MQTT 压测性能" target="_blank">深入探究 MQTT 压测性能</a>
<span class="text-muted">程序员的世界你不懂</span>
<a class="tag" taget="_blank" href="/search/%E7%99%BE%E5%BA%A6/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>你是否想过,在高并发的情况下,你的MQTT服务器还能稳定运行吗?MQTT(MessageQueuingTelemetryTransport)作为一种轻量级的物联网通信协议,已经广泛应用于各个领域。然而,随着物联网设备数量的激增,MQTT服务器的性能面临着巨大的挑战。那么,如何对MQTT进行压测,评估其性能呢?在本文中,我们将深入探讨MQTT压测性能的相关技术,包括测试工具、测试方法和性能指标等。通</div>
</li>
<li><a href="/article/1890710593594257408.htm"
title="软件测试技术:设计优秀的测试用例" target="_blank">软件测试技术:设计优秀的测试用例</a>
<span class="text-muted">程序员威子</span>
<a class="tag" taget="_blank" href="/search/%E6%B5%8B%E8%AF%95%E7%94%A8%E4%BE%8B/1.htm">测试用例</a><a class="tag" taget="_blank" href="/search/%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95/1.htm">单元测试</a><a class="tag" taget="_blank" href="/search/%E5%8A%9F%E8%83%BD%E6%B5%8B%E8%AF%95/1.htm">功能测试</a><a class="tag" taget="_blank" href="/search/%E6%B5%8B%E8%AF%95%E5%B7%A5%E5%85%B7/1.htm">测试工具</a><a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E4%BA%BA%E7%94%9F/1.htm">程序人生</a>
<div>前言我从来没有好好的写过一个测试用例,之前做开发虽然写单元测试和流程测试,基本上都是基于自己的代码,而且单元测试和流程测试的框和规范已经非常完善,你只需要填空就行,后来转做自动化测试,但我的做事的方法和思维还停留在开发层面,用例基本上是从手工业务功能测试集抽取,我只要按照这个子集给转换成脚本代码去运行就好了,并没有系统地完完整整的根据业务需求去手工写个一个用例。闲暇的时候,我们也会聊什么才算是一个</div>
</li>
<li><a href="/article/1890683096756449280.htm"
title="ERROR C2514:XXX类没有构造函数" target="_blank">ERROR C2514:XXX类没有构造函数</a>
<span class="text-muted">jigetage</span>
<a class="tag" taget="_blank" href="/search/MFC/1.htm">MFC</a>
<div>今天在自动化测试工具中添加【重置】测试项时,在主控的.h头文件中通过classCResetTest;的方式引入了测试项的类,但是在主控的.cpp实现文件中调用该类时,提示ERRORC2514:CResetTest类没有构造函数的错误。很明显,二逼也不会在新建一个类的时候不添加构造函数的,那这是为什么呢?原来是因为在主控的.cpp实现文件中需要通过include包含测试项类所在的头文件。加入#inc</div>
</li>
<li><a href="/article/1890674394380955648.htm"
title="(转)@JsonRawValue 按原样序列化属性" target="_blank">(转)@JsonRawValue 按原样序列化属性</a>
<span class="text-muted">SomeOtherTime</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/%E5%90%8E%E7%AB%AF/1.htm">后端</a>
<div>@JsonRawValue按原样序列化属性_赵丙双的博客-CSDN博客_序列化属性@JsonRawValue注解能够按原样序列化属性。属性值不会被转义或者加引号(或者说,会自动去掉转义,多余的引号)。属性值已经是一个JSONString,或者属性值已经被加了引号时很有用。ExamplePOJOpublicclassReport{privatelongid;privateStringname;@Js</div>
</li>
<li><a href="/article/1890672756693987328.htm"
title="Java中Long类型处理精度丢失问题" target="_blank">Java中Long类型处理精度丢失问题</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/bug/1.htm">bug</a>
<div>Long类型处理精度丢失问题描述后端给前端传一个long类型的数据,如果数据过大,前端js接收就会精度丢失,如果再传过来给后端,后端接收到的数据也是精度丢失的数据解决方案只需要将后端从传给前端的long类型的数据变成string类型就好了。1.提供对象转换器jacksonObjectMapper,基于jackson进行java对象到json数据的转换2.在webMvcConfig配置类中扩展Spr</div>
</li>
<li><a href="/article/1890671998078611456.htm"
title="POST 方法的content-type类型总结" target="_blank">POST 方法的content-type类型总结</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/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/python%E6%95%B0%E6%8D%AE%E5%A4%84%E7%90%86/1.htm">python数据处理</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a>
<div>文章目录一、几种常见类型1:application/x-www-form-urlencoded2:multipart/form-data3:application/json总结什么是Content-typeContent-type是实体首部字段,用于说明请求或返回的消息是用什么格式进行编码的,在requestheader和responseheader里都有存在。用来向服务器或者浏览器说明传输的文件</div>
</li>
<li><a href="/article/1890671871897169920.htm"
title="jackSon中@JsonAnySetter @JsonAnyGetter注解详解" target="_blank">jackSon中@JsonAnySetter @JsonAnyGetter注解详解</a>
<span class="text-muted">灬叛逆丿文</span>
<a class="tag" taget="_blank" href="/search/Jackson/1.htm">Jackson</a>
<div>@JsonAnySetter@JsonAnyGetter注解详解这两个属性是用来在序列化和反序列化的时候多余字段可以通过Map来回转换@JsonAnyGetter1.方法是非静态,没有参数的,方法名随意2.方法返回值必须是Map类型3.在一个实体类中仅仅用在一个方法上4.序列化的时候json字段的key就是返回Map的key,value就是Map的valuepublicclassUser{priv</div>
</li>
<li><a href="/article/1890668468441772032.htm"
title="Jackson 注解 -- 输出 JSON 字段" target="_blank">Jackson 注解 -- 输出 JSON 字段</a>
<span class="text-muted">shangboerds</span>
<a class="tag" taget="_blank" href="/search/Jackson/1.htm">Jackson</a>
<div>–Start点击此处观看本系列配套视频。如果一个对象中某个字段中的值是JSON,输出整个对象会有问题,这时我们可以使用注解@JsonRawValuepackageshangbo.jackson.demo13;importorg.apache.commons.lang3.builder.ToStringBuilder;importcom.fasterxml.jackson.annotation.Js</div>
</li>
<li><a href="/article/1890659896601407488.htm"
title="Jackson注释的使用" target="_blank">Jackson注释的使用</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/%E6%8A%80%E6%9C%AF%E6%A0%88/1.htm">技术栈</a><a class="tag" taget="_blank" href="/search/json/1.htm">json</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/restful/1.htm">restful</a>
<div>Jackson提供了一系列注解,可以使用这些注解来设置将JSON读入对象的方式或从对象生成什么JSON的方式,下面介绍一些常用的注解。3.1序列化@JsonAnyGetter @JsonAnyGetter注解运行可以灵活的使用Map类型的作为属性字段,允许getter方法返回Map,该Map然后用于以与其他属性类似的方式序列化JSON的其他属性。通过序列化该实体Bean,我们将会得到Map属性中</div>
</li>
<li><a href="/article/1890656874525683712.htm"
title="2.Spring Boot 中Json的使用,Jackson注解详解" target="_blank">2.Spring Boot 中Json的使用,Jackson注解详解</a>
<span class="text-muted">张大仙是个妖怪</span>
<a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/Spring/1.htm">Spring</a><a class="tag" taget="_blank" href="/search/Boot/1.htm">Boot</a><a class="tag" taget="_blank" href="/search/spring-boot/1.htm">spring-boot</a><a class="tag" taget="_blank" href="/search/Jackson/1.htm">Jackson</a><a class="tag" taget="_blank" href="/search/objectMapper/1.htm">objectMapper</a><a class="tag" taget="_blank" href="/search/JsonProperty/1.htm">JsonProperty</a><a class="tag" taget="_blank" href="/search/JsonIgnore/1.htm">JsonIgnore</a>
<div>一.前言1.介绍我们常在项目中使用的Json转换工具是fastjson,事实上spring本身集成了非常优秀的json工具,分别为Jackson,Gson,JSON-B,但是官方项目中默认推荐使用Jackson,所以本文着重介绍使用Jackson进行json的转换以及Jackson的注解使用2.项目例子此文章用到的例子在spring-boot项目中,传送门此篇文章用到项目模块:还有更多:sprin</div>
</li>
<li><a href="/article/1890655990240571392.htm"
title="智慧交通道路路面状态干燥潮湿分割数据集labelme格式1115张7类别" target="_blank">智慧交通道路路面状态干燥潮湿分割数据集labelme格式1115张7类别</a>
<span class="text-muted">FL1623863129</span>
<a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E9%9B%86/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>
<div>数据集格式:labelme格式(不包含mask文件,仅仅包含jpg图片和对应的json文件)图片数量(jpg文件个数):1115标注数量(json文件个数):1115标注类别数:7标注类别名称:["plate","wet","humid","slush","snow","face","dry"]每个类别标注的框数:platecount=205wetcount=667humidcount=634sl</div>
</li>
<li><a href="/article/1890651454507642880.htm"
title="@JsonRawValue 注解" target="_blank">@JsonRawValue 注解</a>
<span class="text-muted">boy快快长大</span>
<a class="tag" taget="_blank" href="/search/%E8%A7%A3%E5%86%B3%E9%97%AE%E9%A2%98%E5%90%88%E9%9B%86/1.htm">解决问题合集</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a>
<div>这里写目录标题1.问题2.@JsonRawValue注解说明1.问题在实际开发中我遇到这样一个问题,查询数据库的结果返回的content内容是含有转移符的JSON字符串,但是我需要返回的不包含转移的String字符串。经过我一顿折腾并未发现解决办法,直到@JsonRawValue注解。importcom.fasterxml.jackson.annotation.JsonRawValue;{"cod</div>
</li>
<li><a href="/article/1890642755198185472.htm"
title="【记录贴】vite打包内存溢出问题FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory" target="_blank">【记录贴】vite打包内存溢出问题FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory</a>
<span class="text-muted">念九_ysl</span>
<a class="tag" taget="_blank" href="/search/Vue/1.htm">Vue</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/ecmascript/1.htm">ecmascript</a><a class="tag" taget="_blank" href="/search/npm/1.htm">npm</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a>
<div>具体报错如下:解决办法:修改package.json的打包命令"build":"vitebuild&&node--max_old_space_size=40960","build:docker":"vitebuild--outDir./docker/dist/",改为"build":"node--max_old_space_size=4096./node_modules/vite/bin/vite</div>
</li>
<li><a href="/article/1890639857957531648.htm"
title="安卓基础(持续更新的笔记)" target="_blank">安卓基础(持续更新的笔记)</a>
<span class="text-muted">奶龙牛牛</span>
<a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
<div>为什么要这样://创建请求体RequestBodybody=RequestBody.create(MediaType.parse("application/json;charset=utf-8"),jsonObject.toString());jsonObject就包含了一个JSON数据,它其实就是:{"name":"张三","age":10}所以,jsonObject.toString()会把我</div>
</li>
<li><a href="/article/1890625097476141056.htm"
title="uniapp H5 发布在哪里配置" target="_blank">uniapp H5 发布在哪里配置</a>
<span class="text-muted">用心去追梦</span>
<a class="tag" taget="_blank" href="/search/uni-app/1.htm">uni-app</a>
<div>UniappH5发布配置指南Uniapp是一个强大的跨平台开发框架,支持同时开发App、H5和小程序。发布H5版本是Uniapp开发中的一个重要环节。以下是详细的UniappH5发布配置步骤和注意事项:项目配置文件在Uniapp项目中,manifest.json文件是核心配置文件,包含了项目的元数据和基本设置。虽然H5发布的主要配置不在这里,但一些基础设置仍然会影响H5的表现。关键配置项name:</div>
</li>
<li><a href="/article/1890622573641789440.htm"
title="python中request请求" target="_blank">python中request请求</a>
<span class="text-muted">这个年纪的_我</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a>
<div>1.PUT请求defcreate_one_chapter(url,param):headers={'content-type':'application/json','token':''}data=Noneparam=param//这里的data=json.dumps()可以改成json=paramr=requests.put(url=url,headers=headers,data=json.d</div>
</li>
<li><a href="/article/1890615641233223680.htm"
title="[npm install 报错] Verion 9 of Highlight.js has reached EOL" target="_blank">[npm install 报错] Verion 9 of Highlight.js has reached EOL</a>
<span class="text-muted">90的程序爱好者</span>
<a class="tag" taget="_blank" href="/search/npm/1.htm">npm</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/node.js/1.htm">node.js</a>
<div>1、在项目中执行npminstall报错Verion9ofHighlight.jshasreachedEOL,如下图:2、报错原因Highlight.js不再支持10以前的版本,需下载10及之后的版本3、解决办法打开项目中的package.json文件,将highlight.js的版本修改为:10.7.2,删除node_modules文件夹,再次执行npminstall命令即可解决</div>
</li>
<li><a href="/article/1890608956640915456.htm"
title="AI大模型(如GPT、BERT等)可以通过自然语言处理(NLP)和机器学习技术,显著提升测试效率" target="_blank">AI大模型(如GPT、BERT等)可以通过自然语言处理(NLP)和机器学习技术,显著提升测试效率</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/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95%28app/1.htm">自动化测试(app</a><a class="tag" taget="_blank" href="/search/pc/1.htm">pc</a><a class="tag" taget="_blank" href="/search/API%29/1.htm">API)</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/%E8%87%AA%E7%84%B6%E8%AF%AD%E8%A8%80%E5%A4%84%E7%90%86/1.htm">自然语言处理</a><a class="tag" taget="_blank" href="/search/gpt/1.htm">gpt</a>
<div>在软件测试中,AI大模型(如GPT、BERT等)可以通过自然语言处理(NLP)和机器学习技术,显著提升测试效率。以下是几个具体的应用场景及对应的代码实现示例:1.自动生成测试用例AI大模型可以根据需求文档或用户故事自动生成测试用例。代码示例(使用OpenAIGPTAPI):importopenai#设置OpenAIAPI密钥openai.api_key="your-openai-api-key"#</div>
</li>
<li><a href="/article/1890602398519455744.htm"
title="软件测试之Web测试方法总结" target="_blank">软件测试之Web测试方法总结</a>
<span class="text-muted">传说三哥</span>
<a class="tag" taget="_blank" href="/search/%E5%85%A8%E6%A0%88%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95%E5%9F%BA%E7%A1%80%E5%85%A5%E9%97%A8/1.htm">全栈软件测试基础入门</a><a class="tag" taget="_blank" href="/search/%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95/1.htm">软件测试</a><a class="tag" taget="_blank" href="/search/%E6%80%A7%E8%83%BD%E6%B5%8B%E8%AF%95/1.htm">性能测试</a><a class="tag" taget="_blank" href="/search/jmeter/1.htm">jmeter</a><a class="tag" taget="_blank" href="/search/%E5%8A%9F%E8%83%BD%E6%B5%8B%E8%AF%95/1.htm">功能测试</a><a class="tag" taget="_blank" href="/search/%E6%B5%8B%E8%AF%95%E7%94%A8%E4%BE%8B/1.htm">测试用例</a>
<div>一、输入框1、字符型输入框:(1)字符型输入框:英文全角、英文半角、数字、空或者空格、特殊字符“~!@#¥%……&*?[]{}”特别要注意单引号和&符号。禁止直接输入特殊字符时,使用“粘贴、拷贝</div>
</li>
<li><a href="/article/1890589031700426752.htm"
title="webdriverio入门" target="_blank">webdriverio入门</a>
<span class="text-muted"></span>
<div>搭建一个webdriverio进行自动化测试步骤创建目录mkdriwebdriverdemo&&cdwebdriverdemo初始化npminit-y安装wdio/clinpmi--save-dev@wdio/cli修改package.json,添加配置脚本"config":"wdioconfig-y"执行配置脚本npmrunconfig下载chromedriver,与你浏览器版本需对应(比如我是</div>
</li>
<li><a href="/article/1890549564604215296.htm"
title="FastJson系列化使用toJSONString时null值问题" target="_blank">FastJson系列化使用toJSONString时null值问题</a>
<span class="text-muted">bingbingYang_88</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>
<div>FastJson系列化使用toJSONString时null值问题问题描述问题分析解决方法:问题描述在使用fastjson调用JSON.toJSONString(JSON.parseObject(demo),features);fastJson包版本com.alibabafastjson2.0.53方法将一个String转换成一个对象时,如果对象obj的属性字段有值为null时,该字段会被系列化成</div>
</li>
<li><a href="/article/1890544394017239040.htm"
title="`json-schema-editor-vue` 开源项目快速入门指南" target="_blank">`json-schema-editor-vue` 开源项目快速入门指南</a>
<span class="text-muted">方蕾嫒Falcon</span>
<div>json-schema-editor-vue开源项目快速入门指南项目地址:https://gitcode.com/gh_mirrors/js/json-schema-editor-vue1.项目目录结构及介绍该项目,json-schema-editor-vue,是一个高效的、易于使用的基于Vue框架的JSONSchema编辑器。下面是其典型的目录结构概述,以及各个部分的功能简介:.├──examp</div>
</li>
<li><a href="/article/1890544267319898112.htm"
title="推荐项目:json-schema-editor - 简易而直观的JSON架构编辑器" target="_blank">推荐项目:json-schema-editor - 简易而直观的JSON架构编辑器</a>
<span class="text-muted">邴联微</span>
<div>推荐项目:json-schema-editor-简易而直观的JSON架构编辑器json-schema-editorJSONSchemaEditorisanintuitiveeditorforJSONschema.Itprovidesatreeviewtopresentthestructureofschema,andapropertyinspectortoeditthepropertiesofsch</div>
</li>
<li><a href="/article/1890544267802243072.htm"
title="JSON-Schema-Editor 使用教程" target="_blank">JSON-Schema-Editor 使用教程</a>
<span class="text-muted">邱进斌Olivia</span>
<div>JSON-Schema-Editor使用教程json-schema-editorJSONSchemaEditorisanintuitiveeditorforJSONschema.Itprovidesatreeviewtopresentthestructureofschema,andapropertyinspectortoeditthepropertiesofschemaelement.Develo</div>
</li>
<li><a href="/article/1890532024813416448.htm"
title="gin框架精通篇(三)" target="_blank">gin框架精通篇(三)</a>
<span class="text-muted">codefan※</span>
<a class="tag" taget="_blank" href="/search/go%E8%AF%AD%E8%A8%80/1.htm">go语言</a><a class="tag" taget="_blank" href="/search/gin/1.htm">gin</a><a class="tag" taget="_blank" href="/search/HMAC/1.htm">HMAC</a><a class="tag" taget="_blank" href="/search/RSA/1.htm">RSA</a><a class="tag" taget="_blank" href="/search/ECDSA/1.htm">ECDSA</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E5%AD%97%E7%AD%BE%E5%90%8D/1.htm">数字签名</a><a class="tag" taget="_blank" href="/search/token/1.htm">token</a>
<div>HMAC签名packagemainimport("fmt""github.com/dgrijalva/jwt-go""github.com/gin-gonic/gin""net/http""strings""time")typeHmacUserstruct{Idstring`json:"id"`Namestring`json:"name"`Telephonestring`json:"telepho</div>
</li>
<li><a href="/article/1890528869748895744.htm"
title="php将excel文件内容转为json,利用JavaScript将Excel转换为JSON示例代码" target="_blank">php将excel文件内容转为json,利用JavaScript将Excel转换为JSON示例代码</a>
<span class="text-muted">胡安黄</span>
<div>前言JSON是码农们常用的数据格式,轻且方便,而直接手敲JSON却是比较麻烦和令人心情崩溃的(因为重复的东西很多),所以很多码农可能会和我一样,选择用Excel去输入数据,然后再想办法转换成JSON格式。今天教大家使用JS将Excel转为JSON的方法。1.新建HTML文件ConvertExcelFileToJSON我们可以使用标签接收上传文件。代码如下:2.监听inputchange事件$(do</div>
</li>
<li><a href="/article/1890517146870542336.htm"
title="Vue中使用el-upload+XLSX实现解析excel文件为json数据" target="_blank">Vue中使用el-upload+XLSX实现解析excel文件为json数据</a>
<span class="text-muted">makamkamakbakSOSO</span>
<a class="tag" taget="_blank" href="/search/%E5%B7%A5%E4%BD%9C%E7%AC%94%E8%AE%B0/1.htm">工作笔记</a><a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/excel/1.htm">excel</a><a class="tag" taget="_blank" href="/search/json/1.htm">json</a>
<div>安装npmixlsx@0.16.8代码实现html部分批量导入只能上传.xlsx文件-->js部分handlePreview(file){console.log(file)},handleExceed(files,fileList){this.$message.w</div>
</li>
<li><a href="/article/1890516767730626560.htm"
title="【npm】Install fail! Error: EBUSY: resource busy or locked,symlink ..." target="_blank">【npm】Install fail! Error: EBUSY: resource busy or locked,symlink ...</a>
<span class="text-muted">find_some_way</span>
<a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/webpack/1.htm">webpack</a><a class="tag" taget="_blank" href="/search/nodejs/1.htm">nodejs</a>
<div>1、参考1Installfail!Error:EBUSY:resourcebusyorlocked原文:1)、如果你的项目里存在package-lock.json文件,删除它。并且删除node_modules。然后再npminstall。2)、第一步不行的话,运行npmcacheclean--force或者npmcacheverify,然后再npminstall/cnpminstall。3)、如果</div>
</li>
<li><a href="/article/43.htm"
title="集合框架" target="_blank">集合框架</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/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a><a class="tag" taget="_blank" href="/search/%E9%9B%86%E5%90%88%E6%A1%86%E6%9E%B6/1.htm">集合框架</a>
<div> 集合框架
集合框架可以理解为一个容器,该容器主要指映射(map)、集合(set)、数组(array)和列表(list)等抽象数据结构。
从本质上来说,Java集合框架的主要组成是用来操作对象的接口。不同接口描述不同的数据类型。
简单介绍:
Collection接口是最基本的接口,它定义了List和Set,List又定义了LinkLi</div>
</li>
<li><a href="/article/170.htm"
title="Table Driven(表驱动)方法实例" target="_blank">Table Driven(表驱动)方法实例</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/enum/1.htm">enum</a><a class="tag" taget="_blank" href="/search/Table+Driven/1.htm">Table Driven</a><a class="tag" taget="_blank" href="/search/%E8%A1%A8%E9%A9%B1%E5%8A%A8/1.htm">表驱动</a>
<div>实例一:
/**
* 驾驶人年龄段
* 保险行业,会对驾驶人的年龄做年龄段的区分判断
* 驾驶人年龄段:01-[18,25);02-[25,30);03-[30-35);04-[35,40);05-[40,45);06-[45,50);07-[50-55);08-[55,+∞)
*/
public class AgePeriodTest {
//if...el</div>
</li>
<li><a href="/article/297.htm"
title="Jquery 总结" target="_blank">Jquery 总结</a>
<span class="text-muted">cuishikuan</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a><a class="tag" taget="_blank" href="/search/Ajax/1.htm">Ajax</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/jquery%E6%96%B9%E6%B3%95/1.htm">jquery方法</a>
<div>1.$.trim方法用于移除字符串头部和尾部多余的空格。如:$.trim(' Hello ') // Hello2.$.contains方法返回一个布尔值,表示某个DOM元素(第二个参数)是否为另一个DOM元素(第一个参数)的下级元素。如:$.contains(document.documentElement, document.body); 3.$</div>
</li>
<li><a href="/article/424.htm"
title="面向对象概念的提出" target="_blank">面向对象概念的提出</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/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1/1.htm">面向对象</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E5%90%91%E8%BF%87%E7%A8%8B/1.htm">面向过程</a>
<div>
面向对象中,一切都是由对象展开的,组织代码,封装数据。
在台湾面向对象被翻译为了面向物件编程,这充分说明了,这种编程强调实体。
下面就结合编程语言的发展史,聊一聊面向过程和面向对象。
c语言由贝尔实</div>
</li>
<li><a href="/article/551.htm"
title="linux网口绑定" target="_blank">linux网口绑定</a>
<span class="text-muted">被触发</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a>
<div>刚在一台IBM Xserver服务器上装了RedHat Linux Enterprise AS 4,为了提高网络的可靠性配置双网卡绑定。
一、环境描述
我的RedHat Linux Enterprise AS 4安装双口的Intel千兆网卡,通过ifconfig -a命令看到eth0和eth1两张网卡。
二、双网卡绑定步骤:
2.1 修改/etc/sysconfig/network</div>
</li>
<li><a href="/article/678.htm"
title="XML基础语法" target="_blank">XML基础语法</a>
<span class="text-muted">肆无忌惮_</span>
<a class="tag" taget="_blank" href="/search/xml/1.htm">xml</a>
<div>一、什么是XML?
XML全称是Extensible Markup Language,可扩展标记语言。很类似HTML。XML的目的是传输数据而非显示数据。XML的标签没有被预定义,你需要自行定义标签。XML被设计为具有自我描述性。是W3C的推荐标准。
二、为什么学习XML?
用来解决程序间数据传输的格式问题
做配置文件
充当小型数据库
三、XML与HTM</div>
</li>
<li><a href="/article/805.htm"
title="为网页添加自己喜欢的字体" target="_blank">为网页添加自己喜欢的字体</a>
<span class="text-muted">知了ing</span>
<a class="tag" taget="_blank" href="/search/%E5%AD%97%E4%BD%93+%E7%A7%92%E8%A1%A8+css/1.htm">字体 秒表 css</a>
<div>@font-face {
font-family: miaobiao;//定义字体名字
font-style: normal;
font-weight: 400;
src: url('font/DS-DIGI-e.eot');//字体文件
}
使用:
<label style="font-size:18px;font-famil</div>
</li>
<li><a href="/article/932.htm"
title="redis范围查询应用-查找IP所在城市" target="_blank">redis范围查询应用-查找IP所在城市</a>
<span class="text-muted">矮蛋蛋</span>
<a class="tag" taget="_blank" href="/search/redis/1.htm">redis</a>
<div>原文地址:
http://www.tuicool.com/articles/BrURbqV
需求
根据IP找到对应的城市
原来的解决方案
oracle表(ip_country):
查询IP对应的城市:
1.把a.b.c.d这样格式的IP转为一个数字,例如为把210.21.224.34转为3524648994
2. select city from ip_</div>
</li>
<li><a href="/article/1059.htm"
title="输入两个整数, 计算百分比" target="_blank">输入两个整数, 计算百分比</a>
<span class="text-muted">alleni123</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
<div> public static String getPercent(int x, int total){
double result=(x*1.0)/(total*1.0);
System.out.println(result);
DecimalFormat df1=new DecimalFormat("0.0000%");
</div>
</li>
<li><a href="/article/1186.htm"
title="百合——————>怎么学习计算机语言" target="_blank">百合——————>怎么学习计算机语言</a>
<span class="text-muted">百合不是茶</span>
<a class="tag" taget="_blank" href="/search/java+%E7%A7%BB%E5%8A%A8%E5%BC%80%E5%8F%91/1.htm">java 移动开发</a>
<div> 对于一个从没有接触过计算机语言的人来说,一上来就学面向对象,就算是心里上面接受的了,灵魂我觉得也应该是跟不上的,学不好是很正常的现象,计算机语言老师讲的再多,你在课堂上面跟着老师听的再多,我觉得你应该还是学不会的,最主要的原因是你根本没有想过该怎么来学习计算机编程语言,记得大一的时候金山网络公司在湖大招聘我们学校一个才来大学几天的被金山网络录取,一个刚到大学的就能够去和</div>
</li>
<li><a href="/article/1313.htm"
title="linux下tomcat开机自启动" target="_blank">linux下tomcat开机自启动</a>
<span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/tomcat/1.htm">tomcat</a>
<div>方法一:
修改Tomcat/bin/startup.sh 为:
export JAVA_HOME=/home/java1.6.0_27
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.
export PATH=$JAVA_HOME/bin:$PATH
export CATALINA_H</div>
</li>
<li><a href="/article/1440.htm"
title="spring aop实例" target="_blank">spring aop实例</a>
<span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/AOP/1.htm">AOP</a>
<div>1.AdviceMethods.java
package com.bijian.study.spring.aop.schema;
public class AdviceMethods {
public void preGreeting() {
System.out.println("--how are you!--");
}
}
2.beans.x</div>
</li>
<li><a href="/article/1567.htm"
title="[Gson八]GsonBuilder序列化和反序列化选项enableComplexMapKeySerialization" target="_blank">[Gson八]GsonBuilder序列化和反序列化选项enableComplexMapKeySerialization</a>
<span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/serialization/1.htm">serialization</a>
<div>enableComplexMapKeySerialization配置项的含义
Gson在序列化Map时,默认情况下,是调用Key的toString方法得到它的JSON字符串的Key,对于简单类型和字符串类型,这没有问题,但是对于复杂数据对象,如果对象没有覆写toString方法,那么默认的toString方法将得到这个对象的Hash地址。
GsonBuilder用于</div>
</li>
<li><a href="/article/1694.htm"
title="【Spark九十一】Spark Streaming整合Kafka一些值得关注的问题" target="_blank">【Spark九十一】Spark Streaming整合Kafka一些值得关注的问题</a>
<span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/Stream/1.htm">Stream</a>
<div>包括Spark Streaming在内的实时计算数据可靠性指的是三种级别:
1. At most once,数据最多只能接受一次,有可能接收不到
2. At least once, 数据至少接受一次,有可能重复接收
3. Exactly once 数据保证被处理并且只被处理一次,
具体的多读几遍http://spark.apache.org/docs/lates</div>
</li>
<li><a href="/article/1821.htm"
title="shell脚本批量检测端口是否被占用脚本" target="_blank">shell脚本批量检测端口是否被占用脚本</a>
<span class="text-muted">ronin47</span>
<div>#!/bin/bash
cat ports |while read line
do#nc -z -w 10 $line
nc -z -w 2 $line 58422>/dev/null2>&1if[ $?-eq 0]then
echo $line:ok
else
echo $line:fail
fi
done
这里的ports 既可以是文件</div>
</li>
<li><a href="/article/1948.htm"
title="java-2.设计包含min函数的栈" target="_blank">java-2.设计包含min函数的栈</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/25411174200712895228171/
import java.util.ArrayList;
import java.util.List;
public class MinStack {
//maybe we can use origin array rathe</div>
</li>
<li><a href="/article/2075.htm"
title="Netty源码学习-ChannelHandler" target="_blank">Netty源码学习-ChannelHandler</a>
<span class="text-muted">bylijinnan</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/netty/1.htm">netty</a>
<div>
一般来说,“有状态”的ChannelHandler不应该是“共享”的,“无状态”的ChannelHandler则可“共享”
例如ObjectEncoder是“共享”的, 但 ObjectDecoder 不是
因为每一次调用decode方法时,可能数据未接收完全(incomplete),
它与上一次decode时接收到的数据“累计”起来才有可能是完整的数据,是“有状态”的
p</div>
</li>
<li><a href="/article/2202.htm"
title="java生成随机数" target="_blank">java生成随机数</a>
<span class="text-muted">cngolon</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
<div>方法一:
/**
* 生成随机数
* @author cngolon@126.com
* @return
*/
public synchronized static String getChargeSequenceNum(String pre){
StringBuffer sequenceNum = new StringBuffer();
Date dateTime = new D</div>
</li>
<li><a href="/article/2329.htm"
title="POI读写海量数据" target="_blank">POI读写海量数据</a>
<span class="text-muted">ctrain</span>
<a class="tag" taget="_blank" href="/search/%E6%B5%B7%E9%87%8F%E6%95%B0%E6%8D%AE/1.htm">海量数据</a>
<div>import java.io.FileOutputStream;
import java.io.OutputStream;
import org.apache.poi.xssf.streaming.SXSSFRow;
import org.apache.poi.xssf.streaming.SXSSFSheet;
import org.apache.poi.xssf.streaming</div>
</li>
<li><a href="/article/2456.htm"
title="mysql 日期格式化date_format详细使用" target="_blank">mysql 日期格式化date_format详细使用</a>
<span class="text-muted">daizj</span>
<a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/date_format/1.htm">date_format</a><a class="tag" taget="_blank" href="/search/%E6%97%A5%E6%9C%9F%E6%A0%BC%E5%BC%8F%E8%BD%AC%E6%8D%A2/1.htm">日期格式转换</a><a class="tag" taget="_blank" href="/search/%E6%97%A5%E6%9C%9F%E6%A0%BC%E5%BC%8F%E5%8C%96/1.htm">日期格式化</a>
<div>
日期转换函数的详细使用说明
DATE_FORMAT(date,format) Formats the date value according to the format string. The following specifiers may be used in the format string. The&n</div>
</li>
<li><a href="/article/2583.htm"
title="一个程序员分享8年的开发经验" target="_blank">一个程序员分享8年的开发经验</a>
<span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E5%91%98/1.htm">程序员</a>
<div>
在中国有很多人都认为IT行为是吃青春饭的,如果过了30岁就很难有机会再发展下去!其实现实并不是这样子的,在下从事.NET及JAVA方面的开发的也有8年的时间了,在这里在下想凭借自己的亲身经历,与大家一起探讨一下。
明确入行的目的
很多人干IT这一行都冲着“收入高”这一点的,因为只要学会一点HTML, DIV+CSS,要做一个页面开发人员并不是一件难事,而且做一个页面开发人员更容</div>
</li>
<li><a href="/article/2710.htm"
title="android欢迎界面淡入淡出效果" target="_blank">android欢迎界面淡入淡出效果</a>
<span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/android/1.htm">android</a>
<div>很多Android应用一开始都会有一个欢迎界面,淡入淡出效果也是用得非常多的,下面来实现一下。
主要代码如下:
package com.myaibang.activity;
import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.os.CountDown</div>
</li>
<li><a href="/article/2837.htm"
title="linux 复习笔记之常见压缩命令" target="_blank">linux 复习笔记之常见压缩命令</a>
<span class="text-muted">eksliang</span>
<a class="tag" taget="_blank" href="/search/tar%E8%A7%A3%E5%8E%8B/1.htm">tar解压</a><a class="tag" taget="_blank" href="/search/linux%E7%B3%BB%E7%BB%9F%E5%B8%B8%E8%A7%81%E5%8E%8B%E7%BC%A9%E5%91%BD%E4%BB%A4/1.htm">linux系统常见压缩命令</a><a class="tag" taget="_blank" href="/search/linux%E5%8E%8B%E7%BC%A9%E5%91%BD%E4%BB%A4/1.htm">linux压缩命令</a><a class="tag" taget="_blank" href="/search/tar%E5%8E%8B%E7%BC%A9/1.htm">tar压缩</a>
<div>转载请出自出处:http://eksliang.iteye.com/blog/2109693
linux中常见压缩文件的拓展名
*.gz gzip程序压缩的文件
*.bz2 bzip程序压缩的文件
*.tar tar程序打包的数据,没有经过压缩
*.tar.gz tar程序打包后,并经过gzip程序压缩
*.tar.bz2 tar程序打包后,并经过bzip程序压缩
*.zi</div>
</li>
<li><a href="/article/2964.htm"
title="Android 应用程序发送shell命令" target="_blank">Android 应用程序发送shell命令</a>
<span class="text-muted">gqdy365</span>
<a class="tag" taget="_blank" href="/search/android/1.htm">android</a>
<div>项目中需要直接在APP中通过发送shell指令来控制lcd灯,其实按理说应该是方案公司在调好lcd灯驱动之后直接通过service送接口上来给APP,APP调用就可以控制了,这是正规流程,但我们项目的方案商用的mtk方案,方案公司又没人会改,只调好了驱动,让应用程序自己实现灯的控制,这不蛋疼嘛!!!!
发就发吧!
一、关于shell指令:
我们知道,shell指令是Linux里面带的</div>
</li>
<li><a href="/article/3091.htm"
title="java 无损读取文本文件" target="_blank">java 无损读取文本文件</a>
<span class="text-muted">hw1287789687</span>
<a class="tag" taget="_blank" href="/search/%E8%AF%BB%E5%8F%96%E6%96%87%E4%BB%B6/1.htm">读取文件</a><a class="tag" taget="_blank" href="/search/%E6%97%A0%E6%8D%9F%E8%AF%BB%E5%8F%96/1.htm">无损读取</a><a class="tag" taget="_blank" href="/search/%E8%AF%BB%E5%8F%96%E6%96%87%E6%9C%AC%E6%96%87%E4%BB%B6/1.htm">读取文本文件</a><a class="tag" taget="_blank" href="/search/charset/1.htm">charset</a>
<div>java 如何无损读取文本文件呢?
以下是有损的
@Deprecated
public static String getFullContent(File file, String charset) {
BufferedReader reader = null;
if (!file.exists()) {
System.out.println("getFull</div>
</li>
<li><a href="/article/3218.htm"
title="Firebase 相关文章索引" target="_blank">Firebase 相关文章索引</a>
<span class="text-muted">justjavac</span>
<a class="tag" taget="_blank" href="/search/firebase/1.htm">firebase</a>
<div>Awesome Firebase
最近谷歌收购Firebase的新闻又将Firebase拉入了人们的视野,于是我做了这个 github 项目。
Firebase 是一个数据同步的云服务,不同于 Dropbox 的「文件」,Firebase 同步的是「数据」,服务对象是网站开发者,帮助他们开发具有「实时」(Real-Time)特性的应用。
开发者只需引用一个 API 库文件就可以使用标准 RE</div>
</li>
<li><a href="/article/3345.htm"
title="C++学习重点" target="_blank">C++学习重点</a>
<span class="text-muted">lx.asymmetric</span>
<a class="tag" taget="_blank" href="/search/C%2B%2B/1.htm">C++</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a>
<div>1.c++面向对象的三个特性:封装性,继承性以及多态性。
2.标识符的命名规则:由字母和下划线开头,同时由字母、数字或下划线组成;不能与系统关键字重名。
3.c++语言常量包括整型常量、浮点型常量、布尔常量、字符型常量和字符串性常量。
4.运算符按其功能开以分为六类:算术运算符、位运算符、关系运算符、逻辑运算符、赋值运算符和条件运算符。
&n</div>
</li>
<li><a href="/article/3472.htm"
title="java bean和xml相互转换" target="_blank">java bean和xml相互转换</a>
<span class="text-muted">q821424508</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/bean/1.htm">bean</a><a class="tag" taget="_blank" href="/search/xml/1.htm">xml</a><a class="tag" taget="_blank" href="/search/xml%E5%92%8Cbean%E8%BD%AC%E6%8D%A2/1.htm">xml和bean转换</a><a class="tag" taget="_blank" href="/search/java+bean%E5%92%8Cxml%E8%BD%AC%E6%8D%A2/1.htm">java bean和xml转换</a>
<div>这几天在做微信公众号
做的过程中想找个java bean转xml的工具,找了几个用着不知道是配置不好还是怎么回事,都会有一些问题,
然后脑子一热谢了一个javabean和xml的转换的工具里,自己用着还行,虽然有一些约束吧 ,
还是贴出来记录一下
顺便你提一下下,这个转换工具支持属性为集合、数组和非基本属性的对象。
packag</div>
</li>
<li><a href="/article/3599.htm"
title="C 语言初级 位运算" target="_blank">C 语言初级 位运算</a>
<span class="text-muted">1140566087</span>
<a class="tag" taget="_blank" href="/search/%E4%BD%8D%E8%BF%90%E7%AE%97/1.htm">位运算</a><a class="tag" taget="_blank" href="/search/c/1.htm">c</a>
<div> 第十章 位运算 1、位运算对象只能是整形或字符型数据,在VC6.0中int型数据占4个字节 2、位运算符: 运算符 作用 ~ 按位求反 << 左移 >> 右移 & 按位与 ^ 按位异或 | 按位或 他们的优先级从高到低; 3、位运算符的运算功能: a、按位取反: ~01001101 = 101</div>
</li>
<li><a href="/article/3726.htm"
title="14点睛Spring4.1-脚本编程" target="_blank">14点睛Spring4.1-脚本编程</a>
<span class="text-muted">wiselyman</span>
<a class="tag" taget="_blank" href="/search/spring4/1.htm">spring4</a>
<div>14.1 Scripting脚本编程
脚本语言和java这类静态的语言的主要区别是:脚本语言无需编译,源码直接可运行;
如果我们经常需要修改的某些代码,每一次我们至少要进行编译,打包,重新部署的操作,步骤相当麻烦;
如果我们的应用不允许重启,这在现实的情况中也是很常见的;
在spring中使用脚本编程给上述的应用场景提供了解决方案,即动态加载bean;
spring支持脚本</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>