以太坊区块链使用WEB3开发自己第一个DAPP

摘要:在学习了最基础的一些以太坊知识以及开发框架搭建完成之后,可以尝试开发自己的第一个DApp,此处使用Truffle开发框架,Remix编译环境,Genache测试客户端,具体操作如下

 

在学习了最基础的一些以太坊知识以及开发框架搭建完成之后,可以尝试开发自己的第一个DAPP,此处使用松露开发框架,混音编译环境,Genache测试客户端,具体操作如下。

    此处参照MetaCoin创建自己的模拟转账Dapp名称为RuoliCoin

 

1,创建工作目录

            创建RuoliCoin目录,在此目录下打开命令行执行Truffle初始化命令,如下:

松露unbox webpack

            即可创建基础松露框架。

 

2,创建密实智能合约文件

            在RuoliCoin / contracts目录下删除原有的ConvertLib.sol,MetaCoin.sol两个文件,新建RuoliCoin.sol文件,使用Web版本的Remix打开此文件,进行智能合约的编写操作,最后编写好的智能合约内容如下:

pragma solidity ^ 0.4.23;

合同RuoliCoin {
	mapping(address => uint)balances; 事件转移(地址索引_from,地址索引_to,uint256 _value); constructor()public {
		余额[msg.sender] = 10000;
	函数sendCoin(地址接收者,uint金额)公共返回(bool足够){if(balances [msg.sender] 

 

3,部署至测试环境

        修改truffle.js文件,指定本地RCP Server地址(启动Ganache后主界面有显示),内容如下:

module.exports = {
    网络:{  
        发展:{  
            主持人:'localhost',  
            港口:'7545',  
            network_id:'*'//匹配任何网络ID  
        }  
    } 
};

         迁移目录下1_initial_migration.js,2_deploy_contracts.js两个文件非常重要切勿删除,在此目录下将2_deploy_contracts.js进行修改内容如下:

var RuoliCoin = artifacts.require(“./ RuoliCoin.sol”); module.exports = function(deployer){
  deployer.deploy(RuoliCoin);
  
};

       

在RuoliCoin目录下使用命令行编译并部署智能合约文件,如下:

PS C:\ Workspace \ Ruoli-Code \ Truffle \ RuoliCoin> truffle compile
PS C:\ Workspace \ Ruoli-Code \ Truffle \ RuoliCoin>松露部署
使用网络'发展'。

正在运行迁移:1_initial_migration.js
  部署迁移...
  ... 0x73e55a0f780c6780039abc3feb8b5e1243744135096e441668e8ab55579e51db
  迁移:0xb81237dd01159a36a5ac3c760d227bbafe3341e成功迁移到网络...
  ... 0xc5be542ec02f5513ec21e441c54bd31f0c86221da26ed518a2da25c190faa24b保存文物......
正在运行迁移:2_deploy_contracts.js
  部署RuoliCoin ......
  ... 0xd4c85531d5d83c61f79485c43e6e4146d51b909c8b73bf5d88b60aa990cf1d08
  RuoliCoin:0x6ba286f3115994baf1fed1159e81f77c9e1cd4fa成功迁移到网络...
  ... 0xc8d5533c11181c87e6b60d4863cdebb450a2404134aea03a573ce6886905a00b保存文物......
PS C:\ Workspace \ Ruoli-Code \ Truffle \ RuoliCoin>

此时查看Ganache界面中第一个账户的ETH余额已减少,说明部署成功。

 

4,编写页面文件

在app目录下删除所有文件,新建index.html,javascripts / app.js两个文件,文件内容如下:

index.html如下:

<!DOCTYPE html>  
   RuoliCoin  -  Truffle Demo </ title>
  <link rel =“stylesheet”href =“https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css”>
  <script src =“https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js”> </ script>
  <script src =“https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js”> </ script>
  <script src =“./ app.js”> </ script> </ head> <body>
  <div class =“container”style =“margin-top:80px;”>
    
    <div class =“form-group”>
      <input type =“text”class =“form-control”id =“transfer-addr”placeholder =“转入账户”>
    </ DIV>
    <div class =“form-group”>
      <input type =“text”class =“form-control”id =“transfer-money”placeholder =“注入金额”>
    </ DIV>
    <div class =“alert”role =“alert”style =“display:none;” ID = “消息框”> </ DIV>
    <button type =“submit”id =“transfer-confirm-btn”class =“btn btn-success”>转账</ button>
    <button type =“button”id =“transfer-clear-btn”class =“btn btn-default”>重置</ button>
    <HR />
    <div class =“form-group”>
      <input type =“text”class =“form-control”id =“balance-addr”placeholder =“查询余额账户”>
    </ DIV>
    <button type =“submit”id =“balance-select”class =“btn btn-success”>余额查询</ button>
  </ DIV> </ BODY> <SCRIPT>
  $(文件)。就绪(函数(){
      $('#transfer-confirm-btn')。on('click',function(){var transferAddr = $('#transfer-addr')。val(); var transferMoney = $('#transfer-money' ).val(); if(transferAddr ==''){
              showTips( '警报-危险', '转入账户不能为空');
          } else {//调用App的说()方法
              window.App.transfer(transferAddr,transferMoney,function(err,result){if(err){
                     showTips( '警报的危险',ERR);
                  } else {
                      showTips( '警报的危险',结果);
                  }
              });
          }
      });
      $('#balance-select')。on('click',function(){var balanceAddr = $('#balance-addr')。val(); if(balanceAddr ==''){
              showTips( '警报-危险', '查询余额账不能为空');
          } else {//调用App的说()方法
              window.App.getBalance(balanceAddr,function(err,result){if(err){
                     showTips( '警报的危险',ERR);
                  } else {
                      showTips( '警报-危险', '账户余额:' +导致);
                  }
              });
          }
      });
      $('#cancel')。on('click',function(){
          $( '#用户名')VAL( '')。
          $( '#消息盒子')隐藏();
          $( '#消息盒子')HTML( '')。
      });
  }); function showTips(classType,tipsText){
      $( '#消息框')addClass(classType所)的.html(tipsText + '');
      $( '#消息盒子')淡入(800)。
  } </ SCRIPT> </ HTML></code></pre> 
  <p style="margin-left:0px;"><span style="color:#1c1f21;">Java脚本/ app.js内容如下:</span></p> 
  <pre style="margin-left:0px;"><code class="language-html hljs">//导入CSS //导入“../stylesheets/app.css";//导入web3和truffle-contract库导入{默认为Web3}来自'web3';从'truffle-contract'导入{默认为合同} //导入Hello合约的ABI文件导入RuoliCoin_artifacts来自'../../build/contracts/RuoliCoin.json'//获取Hello合约对象var RuoliCoinContract = contract(RuoliCoin_artifacts); var ruoliCoinInstance = null; var accounts; var account ; window.App = {
  init:function(){//设置web3连接
    RuoliCoinContract.setProvider(web3.currentProvider); //获取初始帐户余额,以便显示。
    web3.eth.getAccounts(function(err,accs){if(err!= null){
        alert(“获取帐户时出错。”); 返回;
      } if(accs.length == 0){
        alert(“无法获取任何帐户!确保您的以太坊客户端配置正确。”); 返回;
      }

      accounts = accs;
      account = accounts [0];
    });  


    //实例为你好合约部署实例
    RuoliCoinContract.deployed()。然后(函数(实例){
      ruoliCoinInstance =实例; var event = ruoliCoinInstance.Transfer();
        event.watch(功能(错误,结果){
          警报(误差); 的console.log(结果);
        });
    })。catch(function(e){console.log(e,null);
    });
  },//封装合约中的say()方法调用过程,供javascript调用
  transfer:function(transferAddr,amount,callback){//调用Hello合约中的say()方法,并传入参数name
      ruoliCoinInstance.sendCoin(transferAddr,amount,{from:account})。then(function(result){//将返回结果传入回调函数
        callback(null,result);
      });
  },
  getBalance:function(balanceAddr,callback){//调用Hello合约中的say()方法,并传入参数name
      ruoliCoinInstance.getBalance.call(balanceAddr,{from:account})。then(function(result){//将返回结果传入回调函数
        callback(null,result);
      });
  }
window.addEventListener('load',function(){//设置web3连接http://127.0.0.1:7545为Ganache提供的节点链接
  window.web3 = new Web3(new Web3.providers.HttpProvider(“http://127.0.0.1:7545”));
  App.init();
  
});</code></pre> 
  <p style="margin-left:0px;"><span style="color:#1c1f21;">运行界面如下:</span></p> 
  <p style="margin-left:0px;"><span style="color:#1c1f21;">        <a href="http://img.e-com-net.com/image/info8/ba9f4aa7a0a94060b6b90a0a71eef217.jpg" target="_blank"><img alt="以太坊区块链使用WEB3开发自己第一个DAPP_第1张图片" class="has" src="http://img.e-com-net.com/image/info8/ba9f4aa7a0a94060b6b90a0a71eef217.jpg" width="500" height="286" style="border:1px solid black;"></a></span></p> 
  <p style="margin-left:0px;"> </p> 
  <h1 style="margin-left:0px;"><span style="color:#1c1f21;">5,运行与测试</span></h1> 
  <p style="margin-left:0px;"><span style="color:#1c1f21;">        在RuoliCoin根目录执行启动命令npm run dev,如下:</span></p> 
  <pre style="margin-left:0px;"><code class="language-html hljs">PS C:\ Workspace \ Ruoli-Code \ Truffle \ Metacoin> npm run dev

> truffle-init-webpack@0.0.2 dev C:\ Workspace \ Ruoli-Code \ Truffle \ Metacoin
> webpack-dev-server

项目运行在http:// localhost:8081 / webpack输出从/ Hash提供:8b5b7df27e0385bf011dVersion:webpack 2.7.0Time:3239ms
     资产大小块大块名称
    app.js 1.68 MB 0 [emit] [big] main
index.html 925字节[发出]
chunk {0} app.js(main)1.66 MB [条目] [渲染]
   [71] ./app/javascripts/app.js 3.64 kB {0} [built]
   [72](webpack)-dev-server / client?http:// localhost:8081 7.93 kB {0} [built]
   [73] ./build/contracts/MetaCoin.json 47.8 kB {0} [built]
  [111] ./~/loglevel/lib/loglevel.js 7.86 kB {0} [built]
  [117] ./~/querystring-es3/index.js 127字节{0} [已建]
  [119] ./~/strip-ansi/index.js 161字节{0} [已建]
  [122] ./app/stylesheets/app.css 905字节{0} [已建]
  [163] ./~/truffle-contract/index.js 2.64 kB {0} [built]
  [197] ./~/url/url.js 23.3 kB {0} [built]
  [199] ./~/web3/index.js 193字节{0} [已建]
  [233](webpack)-dev-server / client / overlay.js 3.67 kB {0} [built]
  [234](webpack)-dev-server / client / socket.js 1.08 kB {0} [built]
  [235](webpack)/ hot nonrecursive ^ \。\ / log $ 160 bytes {0} [built]
  [236](webpack)/hot/emitter.js 77字节{0} [已建]
  [237] multi(webpack)-dev-server / client?http:// localhost:8081 ./app/javascripts/app.js 40 bytes {0} [built]
     + 223隐藏的moduleswebpack:编译成功。</code></pre> 
  <p style="margin-left:0px;"><span style="color:#1c1f21;">访问上面提示的链接地址:http:// localhost:8081 /</span></p> 
  <p style="margin-left:0px;"><span style="color:#1c1f21;">即可访问到页面,输入转入地址和金额即可进行代币转账操作,输入查询余额地址即可进行查询余额操作。</span></p> 
  <p style="margin-left:0px;"> </p> 
  <p><br><span style="color:#1c1f21;">作者:</span><br><span style="color:#1c1f21;">链接:https://www.imooc.com/article/31140</span><br><span style="color:#1c1f21;">来源:慕课网</span></p> 
 </div> 
</div>
                            </div>
                        </div>
                    </div>
                    <!--PC和WAP自适应版-->
                    <div id="SOHUCS" sid="1281171638984916992"></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">你可能感兴趣的:(以太坊区块链使用WEB3开发自己第一个DAPP)</h4>
        <div id="paradigm-article-related">
            <div class="recommend-post mb30">
                <ul class="widget-links">
                    <li><a href="/article/1891995240005431296.htm"
                           title="AI 百炼成神:线性回归,预测房价" target="_blank">AI 百炼成神:线性回归,预测房价</a>
                        <span class="text-muted">github_czy</span>
<a class="tag" taget="_blank" href="/search/AI/1.htm">AI</a><a class="tag" taget="_blank" href="/search/%E7%99%BE%E7%82%BC%E6%88%90%E7%A5%9E%EF%BC%9A100/1.htm">百炼成神:100</a><a class="tag" taget="_blank" href="/search/%E4%B8%AA%E9%A1%B9%E7%9B%AE%E7%8E%A9%E8%BD%AC%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">个项目玩转人工智能</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>我们开始第一个项目——线性回归:预测房价。这是一个经典的机器学习入门项目,可以帮助你理解如何使用线性回归模型来预测连续的数值。第一个项目:线性回归预测房价项目目标学习线性回归的基本概念。使用历史房价数据建立一个预测模型。理解如何评估模型的性能。项目步骤准备数据集为了演示线性回归,我们将使用一个常见的房价数据集:波士顿房价数据集(BostonHousingDataset)。这个数据集包含了多个特征(</div>
                    </li>
                    <li><a href="/article/1891993727233224704.htm"
                           title="使用synchronized解决高并发场景" target="_blank">使用synchronized解决高并发场景</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/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>synchronized能很好的解决高并发所带来的超卖等问题,但是synchronized也有属于它的缺陷,就是只适合单机模式,如果同时开启多个实例,那么还是会出现超卖的情况,下面就介绍一下synchronized使用方法,十分的简单。只需要在高频访问的方法上添加synchronized关键字即可,synchronized能够保证单机情况下一次只有一个线程能够进入方法中执行,这样就很好的解决的高并</div>
                    </li>
                    <li><a href="/article/1891993348244303872.htm"
                           title="Bug处理之执行自己编写代码中出现的AttributeError: ‘XXX’ object has no attribute’xxx’" target="_blank">Bug处理之执行自己编写代码中出现的AttributeError: ‘XXX’ object has no attribute’xxx’</a>
                        <span class="text-muted">NormanG</span>
<a class="tag" taget="_blank" href="/search/%E9%87%8F%E5%8C%96/1.htm">量化</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B%E5%9F%BA%E7%A1%80/1.htm">编程基础</a>
                        <div>操作系统Windows10.0;PythonIDE:Pycharm2018.02Python版本:python3.6(anaconda平台)自己编写脚本搭建股票数据库问题描述:自己编写python脚本解决一些数据库搭建过程中的繁琐过程,方便以后重复调用;编写的类在导入应用时报错AttributeError:‘XXX’objecthasnoattribute’xxx’,之前未出现过,因为是重新修改代</div>
                    </li>
                    <li><a href="/article/1891992970169741312.htm"
                           title="Pytorch实现之粒子群优化算法在GAN中的应用" target="_blank">Pytorch实现之粒子群优化算法在GAN中的应用</a>
                        <span class="text-muted">这张生成的图像能检测吗</span>
<a class="tag" taget="_blank" href="/search/%E4%BC%98%E8%B4%A8GAN%E6%A8%A1%E5%9E%8B%E8%AE%AD%E7%BB%83%E8%87%AA%E5%B7%B1%E7%9A%84%E6%95%B0%E6%8D%AE%E9%9B%86/1.htm">优质GAN模型训练自己的数据集</a><a class="tag" taget="_blank" href="/search/%E7%94%9F%E6%88%90%E5%AF%B9%E6%8A%97%E7%BD%91%E7%BB%9C/1.htm">生成对抗网络</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C/1.htm">神经网络</a><a class="tag" taget="_blank" href="/search/pytorch/1.htm">pytorch</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a><a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%A7%86%E8%A7%89/1.htm">计算机视觉</a>
                        <div>简介简介:主要是采用了粒子群优化(PSO)算法来优化GAN的一个训练。PSO是一种是一种基于种群的随机优化技术。这种优化技术是通过粒子群进行的,粒子群在每次迭代中都会更新自己。对于给定的目标函数,这种方法利用一个搜索空间,在那里粒子群移动,找到所需的全局最小值。这些粒子与它们当前的环境局部相互作用,也与彼此相互作用,具有可接受的随机性质。通过合并粒子的当前速度,探索粒子的历史和粒子的邻居,可以知道</div>
                    </li>
                    <li><a href="/article/1891990406686633984.htm"
                           title="DeepSeek自研AI芯片,AI算力新变革?" target="_blank">DeepSeek自研AI芯片,AI算力新变革?</a>
                        <span class="text-muted"></span>
<a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E7%AE%97%E6%B3%95/1.htm">人工智能深度学习机器学习算法</a>
                        <div>最近,DigiTimes的一份报告让AI圈炸开了锅:DeepSeek正全力开发专有AI芯片。有消息称,DeepSeek已开启大规模半导体设计人才招聘,种种迹象表明,其自研芯片计划已从设想步入实质推进阶段。AI算力告急,成本掣肘发展当下,AI技术迅猛发展,从科研领域的复杂模型训练,到日常生活里智能语音助手的实时交互,算力成了决定AI发展的关键因素。作为大模型领域的后起之秀,DeepSeek对计算资源</div>
                    </li>
                    <li><a href="/article/1891990153770102784.htm"
                           title="《DNK210使用指南 -CanMV版 V1.0》第四十七章 MNIST实验" target="_blank">《DNK210使用指南 -CanMV版 V1.0》第四十七章 MNIST实验</a>
                        <span class="text-muted"></span>
<a class="tag" taget="_blank" href="/search/%E5%B5%8C%E5%85%A5%E5%BC%8F%E7%BC%96%E7%A8%8B%E5%BC%80%E6%BA%90%E4%BA%A7%E5%93%81%E7%A8%8B%E5%BA%8F%E5%91%98/1.htm">嵌入式编程开源产品程序员</a>
                        <div>第四十七章MNIST实验1)实验平台:正点原子DNK210开发板2)章节摘自【正点原子】DNK210使用指南-CanMV版V1.03)购买链接:https://detail.tmall.com/item.htm?&id=7828013987504)全套实验源码+手册+视频下载地址:http://www.openedv.com/docs/boards/k210/ATK-DNK210.html5)正点</div>
                    </li>
                    <li><a href="/article/1891988184833781760.htm"
                           title="浅谈十大源码交易平台,找源码不走弯路" target="_blank">浅谈十大源码交易平台,找源码不走弯路</a>
                        <span class="text-muted">17源码网</span>
<a class="tag" taget="_blank" href="/search/%E6%B8%B8%E6%88%8F/1.htm">游戏</a><a class="tag" taget="_blank" href="/search/%E6%BA%90%E4%BB%A3%E7%A0%81%E7%AE%A1%E7%90%86/1.htm">源代码管理</a>
                        <div>大家好啊,作为一名经历了无数代码风风雨雨的资深老码农,今天我就来跟你们聊聊十大源码交易平台。这可是我多年经验的结晶,希望你们能从中找到自己需要的宝贝。七爪网:七爪网,这名字很生动。七爪网提供各种类型的源码,包括游戏源码、分销商城源码、小程序源码等等,简直是码农的百宝箱。不管你是初学者还是经验丰富的老鸟,总能在这里找到适合的资源。而且,七爪网还提供详细的使用教程和技术支持,真是想得太周到了。86资源</div>
                    </li>
                    <li><a href="/article/1891987679004913664.htm"
                           title="Python数据容器(dict字典、set集合)" target="_blank">Python数据容器(dict字典、set集合)</a>
                        <span class="text-muted">张小生180</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>dic字典dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。字典的创建使用大括号{}包含键值对,并用冒号:分隔键和值,形成键:值对。字典的特性唯一键:字典中的每个键都必须是唯一的。值可以取任何数据类型,如字符串,数字,元组。无序(Python3.6之前的版本):在Python3.6之前的版本中,字典是无序的。但从Python3.7</div>
                    </li>
                    <li><a href="/article/1891985790402097152.htm"
                           title="VTK知识学习(32)-图像运算" target="_blank">VTK知识学习(32)-图像运算</a>
                        <span class="text-muted">无所谓จุ๊บ</span>
<a class="tag" taget="_blank" href="/search/VTK/1.htm">VTK</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/VTK/1.htm">VTK</a>
                        <div>1、数学运算vklmageMathematics提供了基本的一元和二元数学操作。根据不同的操作,需要一个或者两个输入图像。二元数学操作要求两个输入图像具有相同的像素数据类型和颜色组分。当两个图像大小不同时,输出图像的范围为两个输入图像范围的并集,并且原点和像素间隔与第一个输入图像保持一致。privatevoidTestMathematics(){//绘制一个暗红色矩形vtkImageCanvasS</div>
                    </li>
                    <li><a href="/article/1891985034747899904.htm"
                           title="自定义Agent组件" target="_blank">自定义Agent组件</a>
                        <span class="text-muted">三月七꧁ ꧂</span>
<a class="tag" taget="_blank" href="/search/langchain%2Bllm/1.htm">langchain+llm</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/microsoft/1.htm">microsoft</a><a class="tag" taget="_blank" href="/search/gpt/1.htm">gpt</a><a class="tag" taget="_blank" href="/search/langchain/1.htm">langchain</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>文章目录ReActAgent的实践工具组件和工具包组件工具组件的类型    一个Agent组件由两部分组成:tools(代理可以使用的工具)和AgentExecutor(决定采取哪种行动)。下面逐一介绍如何创建自定义Agent组件。Tool、AgentExecutor和BaseSingleActionAgent是从LangChain.agents模块中导人的类,用于创建自定义Agent组件和too</div>
                    </li>
                    <li><a href="/article/1891983774971916288.htm"
                           title="iQOO neo 5精简内置组件" target="_blank">iQOO neo 5精简内置组件</a>
                        <span class="text-muted">weixin_38627000</span>
<a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%8D%93/1.htm">安卓</a><a class="tag" taget="_blank" href="/search/%E6%99%BA%E8%83%BD%E6%89%8B%E6%9C%BA/1.htm">智能手机</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%8D%93/1.htm">安卓</a>
                        <div>无他!系统自带了太多组件,都用不到,连打开都不曾打开过。下午整理一篇精简组件的列表,各自按照各自的需要进行精简哦。别盲目跟风,要不然手机使用会出问题。精简步骤使用任意刷机工具,开启手机的开发权限,然后adb连接删除组件列表如下:pmuninstall--user0com.android.VideoPlayervivoi视频pmuninstall--user0com.vivo.browservivo</div>
                    </li>
                    <li><a href="/article/1891983521728229376.htm"
                           title="rabbitmq3.5.1 原理和集群安装" target="_blank">rabbitmq3.5.1 原理和集群安装</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%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a>
                        <div>参考http://dl528888.blog.51cto.com/2382721/1864895http://kaibinyuan.blog.51cto.com/7304008/1610110原因:最近有一个异步需要使用消息队列,或许最终会选择阿里的rocketmq性能单台TPS基本上是在2000-3000左右最新rabbitmq版本是3.6.2yum安装配置文件RPM-/etc/rabbitmq</div>
                    </li>
                    <li><a href="/article/1891982886920318976.htm"
                           title="批量更新 AWS ECS Fargate 服务:自动化平台版本升级" target="_blank">批量更新 AWS ECS Fargate 服务:自动化平台版本升级</a>
                        <span class="text-muted">ivwdcwso</span>
<a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91/1.htm">开发</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/aws/1.htm">aws</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%8A%A8%E5%8C%96/1.htm">自动化</a><a class="tag" taget="_blank" href="/search/%E4%BA%91%E8%AE%A1%E7%AE%97/1.htm">云计算</a><a class="tag" taget="_blank" href="/search/Fargate/1.htm">Fargate</a><a class="tag" taget="_blank" href="/search/ecs/1.htm">ecs</a>
                        <div>在使用AWSECSFargate时,我们经常会收到平台版本更新的通知。为了确保我们的服务运行在最新的平台版本上,我们需要更新所有受影响的任务。本文将介绍如何使用Python和AWSSDK(boto3)来批量更新ECSFargate服务,自动化这一过程。背景AWSFargate会定期发布新的平台版本,以提供新功能和进行例行维护。当新版本发布时,AWS会通知用户在特定日期之前更新他们的任务。虽然AWS</div>
                    </li>
                    <li><a href="/article/1891982634733596672.htm"
                           title="ubuntu20 安装RabbitMq" target="_blank">ubuntu20 安装RabbitMq</a>
                        <span class="text-muted">帅的没朋友~</span>
<a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/Linux/1.htm">Linux</a><a class="tag" taget="_blank" href="/search/System/1.htm">System</a><a class="tag" taget="_blank" href="/search/ubuntu/1.htm">ubuntu</a><a class="tag" taget="_blank" href="/search/rabbitmq/1.htm">rabbitmq</a>
                        <div>一:安装erlang1.执行以下命令来确保所有系统软件包都是最新的sudoaptupdatesudoaptupgrade2.将存储库添加到您的Ubuntu系统echo"debhttps://packages.erlang-solutions.com/ubuntufocalcontrib"|sudotee/etc/apt/sources.list.d/erlang-solution.list3.使用</div>
                    </li>
                    <li><a href="/article/1891982508489240576.htm"
                           title="【学习笔记】Python基础-字典Dict和Set和List与Str扩展" target="_blank">【学习笔记】Python基础-字典Dict和Set和List与Str扩展</a>
                        <span class="text-muted">法迪</span>
<a class="tag" taget="_blank" href="/search/Python%E5%9F%BA%E7%A1%80/1.htm">Python基础</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/hashmap/1.htm">hashmap</a><a class="tag" taget="_blank" href="/search/Dict/1.htm">Dict</a><a class="tag" taget="_blank" href="/search/set/1.htm">set</a><a class="tag" taget="_blank" href="/search/list/1.htm">list</a>
                        <div>Dict使用大括号围起来,这里提供一种键值对的list表示方法1.Dict{}2.List[]3.turple()实例代码#!/usr/bin/envpython3#-*-coding:utf-8-*-#字典dict类似Java的HashMap#Dict{}#List[]#turple()mDict={"Lava":90,"Huawei":100,"Sony":60}print(mDict['La</div>
                    </li>
                    <li><a href="/article/1891981752872792064.htm"
                           title="百问网imx6ullpro调试记录(linux+qt)" target="_blank">百问网imx6ullpro调试记录(linux+qt)</a>
                        <span class="text-muted">嵌入式修炼师</span>
<a class="tag" taget="_blank" href="/search/linux%E9%A9%B1%E5%8A%A8/1.htm">linux驱动</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/qt/1.htm">qt</a>
                        <div>调试记录文章目录调试记录进展1.开发板相关1.1百问网乌班图密码1.2换设备开发环境搭建串口调试网络互通nfs文件系统挂载1.3网络问题1.4系统启动1.5进程操作2.QT2.1tslib1.获取源码2.安装依赖文件3.编译2.2qt移植1.获取qt源码2.配置编译器3.编译2.3拷贝到开发板1.拷贝2.修改开发板配置文件qttslib3.验证是否生效2.4安装QtCreator1.获取安装包2.</div>
                    </li>
                    <li><a href="/article/1891976079011278848.htm"
                           title="Markdown 到 PowerPoint 转换工具——md2pptx" target="_blank">Markdown 到 PowerPoint 转换工具——md2pptx</a>
                        <span class="text-muted">伍盛普Silas</span>

                        <div>Markdown到PowerPoint转换工具——md2pptxmd2pptxMarkdownToPowerPointconverter项目地址:https://gitcode.com/gh_mirrors/md/md2pptxmd2pptx是一个开源项目,它可以将Markdown格式的文本转换为PowerPoint演示文稿。该项目主要使用Python编程语言实现。项目基础介绍md2pptx是一个</div>
                    </li>
                    <li><a href="/article/1891975952641093632.htm"
                           title="md2pptx 项目教程" target="_blank">md2pptx 项目教程</a>
                        <span class="text-muted">宣勇磊Tanya</span>

                        <div>md2pptx项目教程md2pptxMarkdownToPowerPointconverter项目地址:https://gitcode.com/gh_mirrors/md/md2pptx项目介绍md2pptx是一个用于将Markdown格式的幻灯片转换为PowerPoint文件的脚本。该项目旨在帮助用户恢复旧的教学材料,尽管目前功能较为基础,但仍有潜力进行进一步开发以提高实用性。项目快速启动安装首</div>
                    </li>
                    <li><a href="/article/1891975825788563456.htm"
                           title="[开发杂项][编辑器][代码阅读]ctags&vim" target="_blank">[开发杂项][编辑器][代码阅读]ctags&vim</a>
                        <span class="text-muted">xcy6666</span>
<a class="tag" taget="_blank" href="/search/%E6%9D%82%E9%9B%86/1.htm">杂集</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E8%BE%91%E5%99%A8/1.htm">编辑器</a><a class="tag" taget="_blank" href="/search/vim/1.htm">vim</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a>
                        <div>~/.ctagsctags--recurse=yes--exclude=.gitgeneratetagsforvimcaddconfigat~/$cat~/.tags--recurse=yes--exclude=.git--exclude=BUILD--exclude=.svn--exclude=*.js--exclude=vendor/*--exclude=node_modules/*--exc</div>
                    </li>
                    <li><a href="/article/1891974566327152640.htm"
                           title="Python网络爬虫-WebSocket数据抓取" target="_blank">Python网络爬虫-WebSocket数据抓取</a>
                        <span class="text-muted">程序小勇</span>
<a class="tag" taget="_blank" href="/search/faiss/1.htm">faiss</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%8D%8F%E8%AE%AE/1.htm">网络协议</a><a class="tag" taget="_blank" href="/search/websocket/1.htm">websocket</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、WebSocket请求的分析通常涉及以下几个方面:2、利用WebSocket爬取数据总结最后,创作不易!非常感谢大家的关注、点赞、评论啦!谢谢三连哦!好人好运连连,学习进步!工作顺利哦!博主介绍:✌专注于前后端、机器学习、人工智能应用领域开发的优质创作者、秉着互联网精神开源贡献精神,答疑解惑、坚持优质作品共享。本人是掘金/腾讯云/阿里云等平台优质作者、擅长前后端项目开发和毕业项目实战,</div>
                    </li>
                    <li><a href="/article/1891973558817583104.htm"
                           title="小白也能安装:Ubuntu20.04 安装 RabbitMQ" target="_blank">小白也能安装:Ubuntu20.04 安装 RabbitMQ</a>
                        <span class="text-muted">Valishment</span>
<a class="tag" taget="_blank" href="/search/RabbitMQ/1.htm">RabbitMQ</a><a class="tag" taget="_blank" href="/search/ubuntu/1.htm">ubuntu</a><a class="tag" taget="_blank" href="/search/rabbitmq/1.htm">rabbitmq</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E9%98%BF%E9%87%8C%E4%BA%91/1.htm">阿里云</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                        <div>开始我使用的是阿里云的轻量级服务器Ubuntu20.04系统镜像作为平台因为要使用RabbitMQ,想着步骤有点繁琐,写篇记一记安装基本依赖项更新源sudoapt-getupdate-y下载签名密钥和软件包所需的先决条件sudoapt-getinstallcurlgnupgdebian-keyringdebian-archive-keyring-y添加存储库签名密钥(指示易于信任由该密钥签名的软件</div>
                    </li>
                    <li><a href="/article/1891973431394627584.htm"
                           title="设计模式 笔记10 | 适配器模式 在源码中的应用 | Spring源码的 AOP 注册中心存储了不同的适配器实现 | SpringMVC源码doDisPatch方法里的 HandlerAdapter" target="_blank">设计模式 笔记10 | 适配器模式 在源码中的应用 | Spring源码的 AOP 注册中心存储了不同的适配器实现 | SpringMVC源码doDisPatch方法里的 HandlerAdapter</a>
                        <span class="text-muted">「已注销」</span>
<a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a><a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a><a class="tag" taget="_blank" href="/search/%E9%80%82%E9%85%8D%E5%99%A8%E6%A8%A1%E5%BC%8F/1.htm">适配器模式</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a>
                        <div>文章目录一、适配器模式知识回顾二、类适配器使用案例之拓展登陆业务2.1模拟登陆的旧系统2.2旧系统拓展【类适配器】2.3旧系统拓展【接口适配器】三、适配器模式在Spring源码中的应用四、SpringMVC中的适配器模式五、总结参考资料一、适配器模式知识回顾适配器定义:将一个类的接口转换成另一种目标接口,使得原本由于接口不兼容而不能一起工作的类能一起工作适配器分类:类结构型模式(耦合读较高)和对象</div>
                    </li>
                    <li><a href="/article/1891970654526304256.htm"
                           title="设计模式之适配模式是什么?以及在Spring AOP中的拦截器链的使用源码解析。" target="_blank">设计模式之适配模式是什么?以及在Spring AOP中的拦截器链的使用源码解析。</a>
                        <span class="text-muted">一个儒雅随和的男子</span>
<a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                        <div>前言  本文涉及到适配模式的基本用法,以及在SpringAOP中如何使用,首先需要了解适配模式的工作原理,然后结合SpringAOP的具体实现来详细详细解析源码。  首先,适配模式,也就是AdapterPattern,属于结构型设计模式,主要用于让不兼容的接口能够一起工作。要了解它的定义、结构、应用场景以及优缺点。然后,可能需要一个具体的例子来说明,比如电压适配器,这样用户更容易理解。  接下来是</div>
                    </li>
                    <li><a href="/article/1891968639247118336.htm"
                           title="springcloud的组件及作用" target="_blank">springcloud的组件及作用</a>
                        <span class="text-muted">zzyh123456</span>
<a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/cloud/1.htm">cloud</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a>
                        <div>SpringCloud是一个用于构建分布式系统的工具集,它提供了一系列组件来简化微服务架构的开发和部署。以下是一些关键的SpringCloud组件及其作用:1.服务注册与发现Eureka:Eureka是SpringCloud中的核心组件之一,用于实现服务注册与发现。服务实例通过EurekaServer进行注册,消费者通过EurekaServer查询服务实例的地址,实现服务的自动发现和调用。Eure</div>
                    </li>
                    <li><a href="/article/1891967249607094272.htm"
                           title="【JVM】详解直接内存" target="_blank">【JVM】详解直接内存</a>
                        <span class="text-muted">起名方面没有灵感</span>
<a class="tag" taget="_blank" href="/search/JVM/1.htm">JVM</a><a class="tag" taget="_blank" href="/search/jvm/1.htm">jvm</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>文章目录1.直接内存概述2.直接内存的使用2.1Java缓冲区2.2直接内存3.直接内存的释放3.1直接内存释放原理4.禁用显式回收对直接内存的影响1.直接内存概述下面是《深入理解Java虚拟机第三版》2.2.7小节关于Java直接内存的描述。直接内存(DirectMemory)并不是虚拟机运行时数据区的一部分,也不是《Java虚拟机规范》中定义的内存区域。但是这部分内存也被频繁地使用,而且也可能</div>
                    </li>
                    <li><a href="/article/1891965987805261824.htm"
                           title="mysql 记录客户端ip_MySQL查看所有连接的客户端ip" target="_blank">mysql 记录客户端ip_MySQL查看所有连接的客户端ip</a>
                        <span class="text-muted">辉萱0623</span>
<a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/%E8%AE%B0%E5%BD%95%E5%AE%A2%E6%88%B7%E7%AB%AFip/1.htm">记录客户端ip</a>
                        <div>有时候我们需要查看当前的mysql数据库中,有哪些客户端保持了连接,每个客户端分别保持了多少连接,可以使用下面的语句查询结果,可以直观的看到连接数。SELECTsubstring_index(host,':',1)AShostname,state,count(*)FROMinformation_schema.processlistGROUPBYstate,hostname;输出结果:mysql>S</div>
                    </li>
                    <li><a href="/article/1891964596982444032.htm"
                           title="2024年AI虚拟伴侣应用趋势深度剖析:技术前沿与社会影响" target="_blank">2024年AI虚拟伴侣应用趋势深度剖析:技术前沿与社会影响</a>
                        <span class="text-muted">花生糖@</span>
<a class="tag" taget="_blank" href="/search/%E6%8A%80%E6%9C%AF%E7%A7%91%E6%99%AE/1.htm">技术科普</a><a class="tag" taget="_blank" href="/search/AIGC%E5%AD%A6%E4%B9%A0%E8%B5%84%E6%96%99%E5%BA%93/1.htm">AIGC学习资料库</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/AI%E6%95%B0%E5%AD%97%E4%BA%BA/1.htm">AI数字人</a><a class="tag" taget="_blank" href="/search/aigc/1.htm">aigc</a><a class="tag" taget="_blank" href="/search/%E4%BA%A7%E5%93%81%E7%BB%8F%E7%90%86/1.htm">产品经理</a>
                        <div>随着人工智能技术的飞速发展,AI虚拟伴侣市场在2024年迎来了前所未有的繁荣期。这一新兴领域不仅验证了产品与市场的高度契合(Product-MarketFit,PMF),而且正逐步成为连接用户、流量与商业价值的桥梁。本文旨在深入探讨驱动AI伴侣行业爆炸性增长的关键趋势,并分析背后的技术动向及社会心理因素,为创业者和开发者提供一份全面的参考指南。一、市场概览:AI伴侣的崛起近年来,以Characte</div>
                    </li>
                    <li><a href="/article/1891963209171136512.htm"
                           title="【人工智能】AI现状分析 || 神经网络的数学基础 || 人工智能交叉领域的发展和技术应用 || 附:小白入门人工智能 学习步骤" target="_blank">【人工智能】AI现状分析 || 神经网络的数学基础 || 人工智能交叉领域的发展和技术应用 || 附:小白入门人工智能 学习步骤</a>
                        <span class="text-muted">追光者♂</span>
<a class="tag" taget="_blank" href="/search/Python%E4%BB%8E%E5%85%A5%E9%97%A8%E5%88%B0%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">Python从入门到人工智能</a><a class="tag" taget="_blank" href="/search/%E7%99%BE%E9%A2%98%E5%8D%83%E8%A7%A3%E8%AE%A1%E5%88%92%28%E9%A1%B9%E7%9B%AE/1.htm">百题千解计划(项目</a><a class="tag" taget="_blank" href="/search/%E5%AE%9E%E6%88%98/1.htm">实战</a><a class="tag" taget="_blank" href="/search/%E6%A1%88%E4%BE%8B%EF%BC%89/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/%E4%BA%A4%E5%8F%89%E9%A2%86%E5%9F%9F/1.htm">交叉领域</a><a class="tag" taget="_blank" href="/search/%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C%E7%9A%84%E6%95%B0%E5%AD%A6%E5%9F%BA%E7%A1%80/1.htm">神经网络的数学基础</a><a class="tag" taget="_blank" href="/search/AI%E7%8E%B0%E7%8A%B6%E5%88%86%E6%9E%90/1.htm">AI现状分析</a>
                        <div>声明:仅学习使用~资料整理分析不易,点个赞吧!目录1.AI现状分析(人工智能基础入门概念)1.1人工智能基础概念1.2人工智能的技术发展路线1.3产业发展的驱动因素1.4人工智能薪资岗位介绍2.神经网络的数学基础2.1神经网络的生物表示2.2神经网络的数学表示2.3神经网络必备的一些数学基础2.3.1Sigmoid函数2.3.2偏置2.4总结3.人工智能交叉领域的发展和技术应用3.1人工智能应用交</div>
                    </li>
                    <li><a href="/article/1891962827082625024.htm"
                           title="RPC(3)--基于 Nacos 的服务发现与负载均衡版" target="_blank">RPC(3)--基于 Nacos 的服务发现与负载均衡版</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/rpc/1.htm">rpc</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%8F%91%E7%8E%B0/1.htm">服务发现</a><a class="tag" taget="_blank" href="/search/%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1/1.htm">负载均衡</a>
                        <div>nacos:提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos是构建以“服务”为中心的现代应用架构(例如微服务范式、云原生范式)的服务基础设施。nacos架构如下(图片来源)依赖包:com.alibaba.nacosnacos-client1.3.0使用如下://创建命名服务NamingServicenamingService=NamingFacto</div>
                    </li>
                    <li><a href="/article/1891961691613229056.htm"
                           title="哈希表总结-C语言版" target="_blank">哈希表总结-C语言版</a>
                        <span class="text-muted">vanguard2021</span>
<a class="tag" taget="_blank" href="/search/Leetcode%E5%88%B7%E9%A2%98/1.htm">Leetcode刷题</a><a class="tag" taget="_blank" href="/search/%E5%93%88%E5%B8%8C%E8%A1%A8/1.htm">哈希表</a>
                        <div>目录1、哈希表的原理2、自己实现的hash表--C语言版3、C语言开源项目uthash.h中的hash接口使用指南3.1uthash.h头文件说明3.2常见的uthash.h接口以及使用方法4、实践应用参考资料:1、哈希表的原理哈希表的关键思想是使用哈希函数将键映射到存储桶。更确切地说,当我们插入一个新的键时,哈希函数将决定该键应该分配到哪个桶中,并将该键存储在相应的桶中;当我们想要搜索一个键时,</div>
                    </li>
                                <li><a href="/article/126.htm"
                                       title="插入表主键冲突做更新" target="_blank">插入表主键冲突做更新</a>
                                    <span class="text-muted">a-john</span>

                                    <div>有以下场景: 
用户下了一个订单,订单内的内容较多,且来自多表,首次下单的时候,内容可能会不全(部分内容不是必须,出现有些表根本就没有没有该订单的值)。在以后更改订单时,有些内容会更改,有些内容会新增。 
问题: 
如果在sql语句中执行update操作,在没有数据的表中会出错。如果在逻辑代码中先做查询,查询结果有做更新,没有做插入,这样会将代码复杂化。 
解决: 
mysql中提供了一个sql语</div>
                                </li>
                                <li><a href="/article/253.htm"
                                       title="Android xml资源文件中@、@android:type、@*、?、@+含义和区别" target="_blank">Android xml资源文件中@、@android:type、@*、?、@+含义和区别</a>
                                    <span class="text-muted">Cb123456</span>
<a class="tag" taget="_blank" href="/search/%40%2B/1.htm">@+</a><a class="tag" taget="_blank" href="/search/%40/1.htm">@</a><a class="tag" taget="_blank" href="/search/%3F/1.htm">?</a><a class="tag" taget="_blank" href="/search/%40*/1.htm">@*</a>
                                    <div>一.@代表引用资源 
1.引用自定义资源。格式:@[package:]type/name 
android:text="@string/hello" 
  
2.引用系统资源。格式:@android:type/name 
    android:textColor="@android:color/opaque_red"</div>
                                </li>
                                <li><a href="/article/380.htm"
                                       title="数据结构的基本介绍" target="_blank">数据结构的基本介绍</a>
                                    <span class="text-muted">天子之骄</span>
<a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a><a class="tag" taget="_blank" href="/search/%E6%95%A3%E5%88%97%E8%A1%A8/1.htm">散列表</a><a class="tag" taget="_blank" href="/search/%E6%A0%91%E3%80%81%E5%9B%BE/1.htm">树、图</a><a class="tag" taget="_blank" href="/search/%E7%BA%BF%E6%80%A7%E7%BB%93%E6%9E%84/1.htm">线性结构</a><a class="tag" taget="_blank" href="/search/%E4%BB%B7%E6%A0%BC%E6%A0%87%E7%AD%BE/1.htm">价格标签</a>
                                    <div>数据结构的基本介绍 
数据结构就是数据的组织形式,用一种提前设计好的框架去存取数据,以便更方便,高效的对数据进行增删查改。正确选择合适的数据结构,对软件程序的高效执行的影响作用不亚于算法的设计。此外,在计算机系统中数据结构的作用也是非同小可。例如常常在编程语言中听到的栈,堆等,就是经典的数据结构。 
  
经典的数据结构大致如下: 
  
一:线性数据结构 
(1):列表 
a</div>
                                </li>
                                <li><a href="/article/507.htm"
                                       title="通过二维码开放平台的API快速生成二维码" target="_blank">通过二维码开放平台的API快速生成二维码</a>
                                    <span class="text-muted">一炮送你回车库</span>
<a class="tag" taget="_blank" href="/search/api/1.htm">api</a>
                                    <div> 现在很多网站都有通过扫二维码用手机连接的功能,联图网(http://www.liantu.com/pingtai/)的二维码开放平台开放了一个生成二维码图片的Api,挺方便使用的。闲着无聊,写了个前台快速生成二维码的方法。 
       html代码如下:(二维码将生成在这div下)    
?       1      
 &nbs</div>
                                </li>
                                <li><a href="/article/634.htm"
                                       title="ImageIO读取一张图片改变大小" target="_blank">ImageIO读取一张图片改变大小</a>
                                    <span class="text-muted">3213213333332132</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/IO/1.htm">IO</a><a class="tag" taget="_blank" href="/search/image/1.htm">image</a><a class="tag" taget="_blank" href="/search/BufferedImage/1.htm">BufferedImage</a>
                                    <div>
package com.demo;

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;

/**
 * @Description 读取一张图片改变大小
 * @author FuJianyon</div>
                                </li>
                                <li><a href="/article/761.htm"
                                       title="myeclipse集成svn(一针见血)" target="_blank">myeclipse集成svn(一针见血)</a>
                                    <span class="text-muted">7454103</span>
<a class="tag" taget="_blank" href="/search/eclipse/1.htm">eclipse</a><a class="tag" taget="_blank" href="/search/SVN/1.htm">SVN</a><a class="tag" taget="_blank" href="/search/MyEclipse/1.htm">MyEclipse</a>
                                    <div>                                 &n</div>
                                </li>
                                <li><a href="/article/888.htm"
                                       title="装箱与拆箱----autoboxing和unboxing" target="_blank">装箱与拆箱----autoboxing和unboxing</a>
                                    <span class="text-muted">darkranger</span>
<a class="tag" taget="_blank" href="/search/J2SE/1.htm">J2SE</a>
                                    <div>4.2 自动装箱和拆箱 
 
基本数据(Primitive)类型的自动装箱(autoboxing)、拆箱(unboxing)是自J2SE 5.0开始提供的功能。虽然为您打包基本数据类型提供了方便,但提供方便的同时表示隐藏了细节,建议在能够区分基本数据类型与对象的差别时再使用。 
 
4.2.1 autoboxing和unboxing 
 
在Java中,所有要处理的东西几乎都是对象(Object)</div>
                                </li>
                                <li><a href="/article/1015.htm"
                                       title="ajax传统的方式制作ajax" target="_blank">ajax传统的方式制作ajax</a>
                                    <span class="text-muted">aijuans</span>
<a class="tag" taget="_blank" href="/search/Ajax/1.htm">Ajax</a>
                                    <div>//这是前台的代码 
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+</div>
                                </li>
                                <li><a href="/article/1142.htm"
                                       title="只用jre的eclipse是怎么编译java源文件的?" target="_blank">只用jre的eclipse是怎么编译java源文件的?</a>
                                    <span class="text-muted">avords</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/eclipse/1.htm">eclipse</a><a class="tag" taget="_blank" href="/search/jdk/1.htm">jdk</a><a class="tag" taget="_blank" href="/search/tomcat/1.htm">tomcat</a>
                                    <div>eclipse只需要jre就可以运行开发java程序了,也能自动 编译java源代码,但是jre不是java的运行环境么,难道jre中也带有编译工具? 还是eclipse自己实现的?谁能给解释一下呢问题补充:假设系统中没有安装jdk or jre,只在eclipse的目录中有一个jre,那么eclipse会采用该jre,问题是eclipse照样可以编译java源文件,为什么呢? 
&nb</div>
                                </li>
                                <li><a href="/article/1269.htm"
                                       title="前端模块化" target="_blank">前端模块化</a>
                                    <span class="text-muted">bee1314</span>
<a class="tag" taget="_blank" href="/search/%E6%A8%A1%E5%9D%97%E5%8C%96/1.htm">模块化</a>
                                    <div>背景:   前端JavaScript模块化,其实已经不是什么新鲜事了。但是很多的项目还没有真正的使用起来,还处于刀耕火种的野蛮生长阶段。       JavaScript一直缺乏有效的包管理机制,造成了大量的全局变量,大量的方法冲突。我们多么渴望有天能像Java(import),Python (import),Ruby(require)那样写代码。在没有包管理机制的年代,我们是怎么避免所</div>
                                </li>
                                <li><a href="/article/1396.htm"
                                       title="处理百万级以上的数据处理" target="_blank">处理百万级以上的数据处理</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/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%9F%A5%E8%AF%A2/1.htm">查询</a>
                                    <div>一.处理百万级以上的数据提高查询速度的方法:        1.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。 
        2.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 o</div>
                                </li>
                                <li><a href="/article/1523.htm"
                                       title="mac 卸载 java 1.7 或更高版本" target="_blank">mac 卸载 java 1.7 或更高版本</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/OS/1.htm">OS</a>
                                    <div>卸载 java 1.7 或更高 
sudo rm -rf /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin 
成功执行此命令后,还可以执行 java 与 javac 命令 
 
sudo rm -rf /Library/PreferencePanes/JavaControlPanel.prefPane 
成功执行此命令后,还可以执行 java </div>
                                </li>
                                <li><a href="/article/1650.htm"
                                       title="【Spark六十一】Spark Streaming结合Flume、Kafka进行日志分析" target="_blank">【Spark六十一】Spark Streaming结合Flume、Kafka进行日志分析</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/Stream/1.htm">Stream</a>
                                    <div>第一步,Flume和Kakfa对接,Flume抓取日志,写到Kafka中 
第二部,Spark Streaming读取Kafka中的数据,进行实时分析 
  
本文首先使用Kakfa自带的消息处理(脚本)来获取消息,走通Flume和Kafka的对接 1. Flume配置 
1. 下载Flume和Kafka集成的插件,下载地址:https://github.com/beyondj2ee/f</div>
                                </li>
                                <li><a href="/article/1777.htm"
                                       title="Erlang vs TNSDL" target="_blank">Erlang vs TNSDL</a>
                                    <span class="text-muted">bookjovi</span>
<a class="tag" taget="_blank" href="/search/erlang/1.htm">erlang</a>
                                    <div>  
    TNSDL是Nokia内部用于开发电信交换软件的私有语言,是在SDL语言的基础上加以修改而成,TNSDL需翻译成C语言得以编译执行,TNSDL语言中实现了异步并行的特点,当然要完整实现异步并行还需要运行时动态库的支持,异步并行类似于Erlang的process(轻量级进程),TNSDL中则称之为hand,Erlang是基于vm(beam)开发,</div>
                                </li>
                                <li><a href="/article/1904.htm"
                                       title="非常希望有一个预防疲劳的java软件, 预防过劳死和眼睛疲劳,大家一起努力搞一个" target="_blank">非常希望有一个预防疲劳的java软件, 预防过劳死和眼睛疲劳,大家一起努力搞一个</a>
                                    <span class="text-muted">ljy325</span>
<a class="tag" taget="_blank" href="/search/%E4%BC%81%E4%B8%9A%E5%BA%94%E7%94%A8/1.htm">企业应用</a>
                                    <div> 非常希望有一个预防疲劳的java软件,我看新闻和网站,国防科技大学的科学家累死了,太疲劳,老是加班,不休息,经常吃药,吃药根本就没用,根本原因是疲劳过度。我以前做java,那会公司垃圾,老想赶快学习到东西跳槽离开,搞得超负荷,不明理。深圳做软件开发经常累死人,总有不明理的人,有个软件提醒限制很好,可以挽救很多人的生命。 
 
相关新闻: 
(1)IT行业成五大疾病重灾区:过劳死平均37.9岁 
</div>
                                </li>
                                <li><a href="/article/2031.htm"
                                       title="读《研磨设计模式》-代码笔记-原型模式" target="_blank">读《研磨设计模式》-代码笔记-原型模式</a>
                                    <span class="text-muted">bylijinnan</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a>
                                    <div>声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/ 
 
 



/**
 * Effective Java 建议使用copy constructor or copy factory来代替clone()方法:
 * 1.public Product copy(Product p){}
 * 2.publi</div>
                                </li>
                                <li><a href="/article/2158.htm"
                                       title="配置管理---svn工具之权限配置" target="_blank">配置管理---svn工具之权限配置</a>
                                    <span class="text-muted">chenyu19891124</span>
<a class="tag" taget="_blank" href="/search/SVN/1.htm">SVN</a>
                                    <div>今天花了大半天的功夫,终于弄懂svn权限配置。下面是今天收获的战绩。 
安装完svn后就是在svn中建立版本库,比如我本地的是版本库路径是C:\Repositories\pepos。pepos是我的版本库。在pepos的目录结构 
pepos 
   component 
   webapps 
在conf里面的auth里赋予的权限配置为 
[groups]</div>
                                </li>
                                <li><a href="/article/2285.htm"
                                       title="浅谈程序员的数学修养" target="_blank">浅谈程序员的数学修养</a>
                                    <span class="text-muted">comsci</span>
<a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/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><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/%E6%8B%9B%E8%81%98/1.htm">招聘</a>
                                    <div>         
                        浅谈程序员的数学修养 </div>
                                </li>
                                <li><a href="/article/2412.htm"
                                       title="批量执行 bulk collect与forall用法" target="_blank">批量执行 bulk collect与forall用法</a>
                                    <span class="text-muted">daizj</span>
<a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/bulk+collect/1.htm">bulk collect</a><a class="tag" taget="_blank" href="/search/forall/1.htm">forall</a>
                                    <div>BULK COLLECT 子句会批量检索结果,即一次性将结果集绑定到一个集合变量中,并从SQL引擎发送到PL/SQL引擎。通常可以在SELECT INTO、 
FETCH INTO以及RETURNING INTO子句中使用BULK COLLECT。本文将逐一描述BULK COLLECT在这几种情形下的用法。 
    有关FORALL语句的用法请参考:批量SQL之 F</div>
                                </li>
                                <li><a href="/article/2539.htm"
                                       title="Linux下使用rsync最快速删除海量文件的方法" target="_blank">Linux下使用rsync最快速删除海量文件的方法</a>
                                    <span class="text-muted">dongwei_6688</span>
<a class="tag" taget="_blank" href="/search/OS/1.htm">OS</a>
                                    <div>1、先安装rsync:yum install rsync 
2、建立一个空的文件夹:mkdir /tmp/test 
3、用rsync删除目标目录:rsync --delete-before -a -H -v --progress --stats /tmp/test/ log/这样我们要删除的log目录就会被清空了,删除的速度会非常快。rsync实际上用的是替换原理,处理数十万个文件也是秒删。 
</div>
                                </li>
                                <li><a href="/article/2666.htm"
                                       title="Yii CModel中rules验证规格" target="_blank">Yii CModel中rules验证规格</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/rules/1.htm">rules</a><a class="tag" taget="_blank" href="/search/yii/1.htm">yii</a><a class="tag" taget="_blank" href="/search/validate/1.htm">validate</a>
                                    <div>Yii cValidator主要用法分析:  
 yii验证rulesit 分类: Yii yii的rules验证 cValidator主要属性 attributes ,builtInValidators,enableClientValidation,message,on,safe,skipOnError 
 </div>
                                </li>
                                <li><a href="/article/2793.htm"
                                       title="基于vagrant的redis主从实验" target="_blank">基于vagrant的redis主从实验</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/vagrant/1.htm">vagrant</a>
                                    <div>平台: Mac 
工具: Vagrant 
系统: Centos6.5 
实验目的: Redis主从 
  
实现思路 
制作一个基于sentos6.5, 已经安装好reids的box, 添加一个脚本配置从机, 然后作为后面主机从机的基础box 
  
制作sentos6.5+redis的box 
  
mkdir vagrant_redis 
cd vagrant_</div>
                                </li>
                                <li><a href="/article/2920.htm"
                                       title="Memcached(二)、Centos安装Memcached服务器" target="_blank">Memcached(二)、Centos安装Memcached服务器</a>
                                    <span class="text-muted">frank1234</span>
<a class="tag" taget="_blank" href="/search/centos/1.htm">centos</a><a class="tag" taget="_blank" href="/search/memcached/1.htm">memcached</a>
                                    <div>一、安装gcc 
rpm和yum安装memcached服务器连接没有找到,所以我使用的是make的方式安装,由于make依赖于gcc,所以要先安装gcc 
 
开始安装,命令如下,[color=red][b]顺序一定不能出错[/b][/color]:

建议可以先切换到root用户,不然可能会遇到权限问题:su root 输入密码......


rpm -ivh kernel-head</div>
                                </li>
                                <li><a href="/article/3047.htm"
                                       title="Remove Duplicates from Sorted List" target="_blank">Remove Duplicates from Sorted List</a>
                                    <span class="text-muted">hcx2013</span>
<a class="tag" taget="_blank" href="/search/remove/1.htm">remove</a>
                                    <div>Given a sorted linked list, delete all duplicates such that each element appear only once. 
For example,Given 1->1->2, return 1->2.Given 1->1->2->3->3, return&</div>
                                </li>
                                <li><a href="/article/3174.htm"
                                       title="Spring4新特性——JSR310日期时间API的支持" target="_blank">Spring4新特性——JSR310日期时间API的支持</a>
                                    <span class="text-muted">jinnianshilongnian</span>
<a class="tag" taget="_blank" href="/search/spring4/1.htm">spring4</a>
                                    <div>Spring4新特性——泛型限定式依赖注入 
Spring4新特性——核心容器的其他改进 
Spring4新特性——Web开发的增强 
Spring4新特性——集成Bean Validation 1.1(JSR-349)到SpringMVC  
Spring4新特性——Groovy Bean定义DSL 
Spring4新特性——更好的Java泛型操作API  
Spring4新</div>
                                </li>
                                <li><a href="/article/3301.htm"
                                       title="浅谈enum与单例设计模式" target="_blank">浅谈enum与单例设计模式</a>
                                    <span class="text-muted">247687009</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%8D%95%E4%BE%8B/1.htm">单例</a>
                                    <div>在JDK1.5之前的单例实现方式有两种(懒汉式和饿汉式并无设计上的区别故看做一种),两者同是私有构
造器,导出静态成员变量,以便调用者访问。

第一种 
package singleton;

public class Singleton {
        //导出全局成员
        public final static Singleton INSTANCE = new S</div>
                                </li>
                                <li><a href="/article/3428.htm"
                                       title="使用switch条件语句需要注意的几点" target="_blank">使用switch条件语句需要注意的几点</a>
                                    <span class="text-muted">openwrt</span>
<a class="tag" taget="_blank" href="/search/c/1.htm">c</a><a class="tag" taget="_blank" href="/search/break/1.htm">break</a><a class="tag" taget="_blank" href="/search/switch/1.htm">switch</a>
                                    <div>1. 当满足条件的case中没有break,程序将依次执行其后的每种条件(包括default)直到遇到break跳出 
 
int main()
{
    int n = 1;
    switch(n) {
    case 1:
        printf("--1--\n");
    default:
        printf("defa</div>
                                </li>
                                <li><a href="/article/3555.htm"
                                       title="配置Spring Mybatis JUnit测试环境的应用上下文" target="_blank">配置Spring Mybatis JUnit测试环境的应用上下文</a>
                                    <span class="text-muted">schnell18</span>
<a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/mybatis/1.htm">mybatis</a><a class="tag" taget="_blank" href="/search/JUnit/1.htm">JUnit</a>
                                    <div>Spring-test模块中的应用上下文和web及spring boot的有很大差异。主要试下来差异有: 
 
 单元测试的app context不支持从外部properties文件注入属性 
 @Value注解不能解析带通配符的路径字符串 
 
解决第一个问题可以配置一个PropertyPlaceholderConfigurer的bean。 
第二个问题的具体实例是: 
   </div>
                                </li>
                                <li><a href="/article/3682.htm"
                                       title="Java 定时任务总结一" target="_blank">Java 定时任务总结一</a>
                                    <span class="text-muted">tuoni</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/timer/1.htm">timer</a><a class="tag" taget="_blank" href="/search/quartz/1.htm">quartz</a><a class="tag" taget="_blank" href="/search/timertask/1.htm">timertask</a>
                                    <div> Java定时任务总结  一.从技术上分类大概分为以下三种方式:  1.Java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务;   说明:    java.util.Timer定时器,实际上是个线程,定时执行TimerTask类 &</div>
                                </li>
                                <li><a href="/article/3809.htm"
                                       title="一种防止用户生成内容站点出现商业广告以及非法有害等垃圾信息的方法" target="_blank">一种防止用户生成内容站点出现商业广告以及非法有害等垃圾信息的方法</a>
                                    <span class="text-muted">yangshangchuan</span>
<a class="tag" taget="_blank" href="/search/rank/1.htm">rank</a><a class="tag" taget="_blank" href="/search/%E7%9B%B8%E4%BC%BC%E5%BA%A6%E8%AE%A1%E7%AE%97/1.htm">相似度计算</a><a class="tag" taget="_blank" href="/search/%E6%96%87%E6%9C%AC%E7%9B%B8%E4%BC%BC%E5%BA%A6/1.htm">文本相似度</a><a class="tag" taget="_blank" href="/search/%E8%AF%8D%E8%A2%8B%E6%A8%A1%E5%9E%8B/1.htm">词袋模型</a><a class="tag" taget="_blank" href="/search/%E4%BD%99%E5%BC%A6%E7%9B%B8%E4%BC%BC%E5%BA%A6/1.htm">余弦相似度</a>
                                    <div>本文描述了一种在ITEYE博客频道上面出现的新型的商业广告形式及其应对方法,对于其他的用户生成内容站点类型也具有同样的适用性。 
  
最近在ITEYE博客频道上面出现了一种新型的商业广告形式,方法如下: 
    1、注册多个账号(一般10个以上)。 
    2、从多个账号中选择一个账号,发表1-2篇博文</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>