async函数学习笔记。

含义

async函数是什么?一句话,它就是Generator函数的语法糖。

const fs = require('fs')
const readFile = function(fileName){
    return new Promise(function(resolve,reject){
        fs.readFile(fileName,function(error,data){
            if(error) return reject(error);
            resolve(data);
        })
    })
}
const gen = function*(){
    const f1 = yield readFile('/etc/fstab');
    const f2 = yield readFile('/etc/shells');
    console.log(f1.toString());
    console.log(f2.toString());
}
//上面代码的函数gen可以写成async函数,就是下面这样。
const asyncReadFile = async function(){
    const f1 = await readFile('/etc/fstab');
    cosnt f2 = await readFile('/etc/shells');
    console.log(f1.toString());
    console.log(f2.toString());
}

一比较就会发现,async函数就是将Generator函数的星号替换成async,将yield替换成await,仅此而已。
async函数对Generator函数的改进,体现在以下四点。
(1)内置执行器
Generator函数的执行必须靠执行器,所以才有了co模块,而async函数自带执行器。也就是说,async函数的执行,与普通函数一模一样,只要一行。

asyncReadFile()

上面的代码调用了asyncReadFile函数,然后它就会自动执行,输出最后结果。这完全不像Generator函数,需要调用next方法,或则用co模块,才能真正执行,得到最后结果。
(2)更好的语义
async和await,比起星号和yield,语义更清楚了。async表示函数里有异步操作,await表示紧跟在后面的表达式需要等待结果。
(3)更广的适用性
co模块约定,yield命令后面只能是Thunk函数或Promise对象,而async函数的await命令后面,可以是Promise对象和原始类型的值(数值、字符串和布尔值,但这时等同于同步操作)。
(4)返回值是Promise
async函数的返回值是Promise对象,这比Generator函数的返回值Iterator对象方便多了。你可以用then方法指定下一步的操作。
进一步说,async函数完全可以看作多个异步操作,包装成的一个Promise对象,而await命令就是内部then命令的语法糖。

基本用法

async函数返回一个Promise对象,可以使用then方法添加回调函数。当函数执行的时候,一旦遇到await就会先返回,等到异步操作完成,再接着执行函数体内后面的语句。
下面是一个例子。

async function getStockPriceByName(name){
    const symbol = await getStockSymbol(name);
    const stockPrice = await getStockPrice(symbol);
    return stockPrice;
}
getStockPriceByName('goog').then(function(result){
    console.log(result);
})

上面代码是一个获取股票报价的函数,函数前面的async关键字,表明该函数内部有异步操作。调用该函数时,会立即返回一个Promise对象。
下面是另一个例子,指定多少毫秒后输出一个值。

function timeout(ms){
    return new Promise((resolve)=>{
        setTimeout(resolve,ms);
    })
}
async function asyncPrint(value,ms){
    await timeout(ms);
    console.log(value)
}
asyncPrint('hello world',50);

由于async函数返回的是Promise对象,可以作为await命令的参数。所以,上面的例子也可以写成下面的形式。

async function timeout(ms){
    await new Promise((resolve)=>{
        setTimeout(resolve,ms);
    })
}

async function asyncPrint(value, ms) {
    await timeout(ms);
    console.log(value);
}

asyncPrint('hello world', 5000);

async函数有多种使用形式。

//函数声明
async function foo(){}
//函数表达式
const foo = async function(){};
//对象的方法
let obj = {async foo(){}};
obj.foo().then(...)
//Class的方法
class Storage{
    constructor(){
        this.cachePromise = caches.open('avatars');
    }
    async getAvatar(name){
        const cache = await this.cachePromise;
        return cache.match(`/avatars/${name}.jpg`);
    }
}
const storage = new Storage();
storage.getAvatar('jake').then(...);
//箭头函数
const foo = async()=>{};

返回Promise对象

async函数返回一个Promise对象。
async函数内部return语句返回的值,会成为then方法回调函数的参数。

async function f(){
    return 'hello world';
}
f().then(v=>console.log(v))//'hello world'

上面代码中,函数f内部return命令返回的值,会被then方法回调函数接收到。
async函数内部抛出错误,会导致返回Promise对象变为reject状态。抛出的错误对象会被catch方法回调函数接收到。

async function f(){
    throw new Error('出错了');
}
f().then(
    v=>console.log(v),
    e=>console.log(e)
)
//Error;出错了

Promise对象的状态变化

async函数返回的Promise对象,必须等到内部所有await命令后面的Promise对象执行完,才会发生状态改变,除非遇到return语句或则抛出错误。也就是说,只有async函数内部的异步操作执行完,才会执行then方法指定的回调函数。

async function getTitle(url) {
  let response = await fetch(url);
  let html = await response.text();
  return html.match(/([\s\S]+)<\/title>/i)[1];
}
getTitle('https://tc39.github.io/ecma262/').then(console.log)</code></pre> 
   <p>上面代码中,函数getTitle内部有三个操作:抓取网页、取出文本、匹配页面标题。只有这三个操作全部完成,才会执行then方法里面的console.log()<br>await命令<br>正常情况下,await命令后面是一个Promise对象,返回该对象的结果。如果不是Promsie对象,就直接返回对应的值。</p> 
   <pre><code>async function f(){
    //等同于123;
    return await 123;
}
f().then(v=>console.log(v))</code></pre> 
   <p>上面代码中,await命令的参数是数值123,这时等同于return 123.<br>另一种情况是,await命令后面是一个thenable对象(即定义then方法的对象),那么await会将其等同于Promise对象。</p> 
   <pre><code>class Sleep{
    constructor(timeout){
        this.timeout = timeout;
    }
    then(resolve,reject){
        const startTime = Date.now();
        setTimeout(
            ()=>resolve(Date.now()-startTime)
            this.timeout
        )
    }
}
(async()=>{
    const actualTime = await new Sleep(1000);
    console.log(actualTime);
})();</code></pre> 
   <p>上面代码中,await命令后面是一个Sleep对象的实例。这个实例不是Promise对象,但是因为定义了then方法,await会将其视为Promise处理。<br>await命令后面的Promise对象如果变为reject状态,则reject的参数会被catch方法的回调函数接收到。</p> 
   <pre><code>async function f(){
    await Promise.reject('出错了');
}
f().then(v=>console.log(v)).catch(e=>console.log(e));</code></pre> 
   <p>注意,上面代码中,await语句前面没有return,但是reject方法的参数依然传入到catch方法的回调函数。这里如果是await前面加上return,效果是一样的。<br>任何一个await语句后面的Promise对象变为reject状态,那么整个async函数都会中断执行。<br>有时,我们希望即使前一个异步操作失败,也不要中断后面的异步操作。这时可以将第一个await放在try...catch结构里面,这样不管这个异步操作是否成功,第二个await都会执行。</p> 
   <pre><code>async function f(){
    try{
        await Promise.reject('出错了');
    }catch(e){
    }
    return await Promise.resolve('hello world');
}
f().then(v=>console.log(v))//hello world</code></pre> 
   <p>另一种方法是await后面的Promise对象再跟一个catch方法,处理前面可能出现的错误。</p> 
   <pre><code>async function f(){
    await Promise.reject('出错了')
        .catch(e=>console.log(e));
    return await Promise.resolve('hello world');
}
f().then(v=>console.log(v))
//出错了
//hello world</code></pre> 
   <p>错误处理<br>如果await后面的异步操作出错,那么等同于async函数返回的Promise对象被reject。防止出错的方法,也是将其放在try...catch代码块之中。</p> 
   <pre><code>async function f(){
    try{
        await new Promise(function(resolve,reject){
            throw new Error('出错了')
        });
    }catch(e){}
    return await('hello world');
}</code></pre> 
   <p>如果有多个await命令,可以统一放在try...catch结构中。</p> 
   <pre><code>async function main(){
    try{
        const val1 = await firstStep();
        const val2 = await secondStep(val1);
        const val3 = await thirdStep(val1,val2);
        console.log('Final',val3);
    }
    catch(err){
        console.error(err);
    }
}</code></pre> 
   <p>下面的例子使用try...catch结构,实现多次重复尝试。</p> 
   <pre><code>const superagent = require('superagent');
const NUM_RETRIES = 3;
async function test(){
    let i;
    for(i=0;i<NUM_RETRIES;i++){
        await superagent.get('http://goole.com/this-throws-an-error');
        break;
    }catch(err){}
    console.log(i);//3
}
test();</code></pre> 
   <p>上面代码中,如果await操作成功,就会使用break语句退出循环;如果失败,会被catch语句捕捉,然后进入下一轮循环。</p> 
  </div> 
 </div> 
</div>
                            </div>
                        </div>
                    </div>
                    <!--PC和WAP自适应版-->
                    <div id="SOHUCS" sid="1292665765278851072"></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">你可能感兴趣的:(async函数学习笔记。)</h4>
        <div id="paradigm-article-related">
            <div class="recommend-post mb30">
                <ul class="widget-links">
                    <li><a href="/article/1950232190038110208.htm"
                           title="day15|前端框架学习和算法" target="_blank">day15|前端框架学习和算法</a>
                        <span class="text-muted">universe_01</span>
<a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/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/%E7%AC%94%E8%AE%B0/1.htm">笔记</a>
                        <div>T22括号生成先把所有情况都画出来,然后(在满足什么情况下)把不符合条件的删除。T78子集要画树状图,把思路清晰。可以用暴力法、回溯法和DFS做这个题DFS深度搜索:每个边都走完,再回溯应用:二叉树搜索,图搜索回溯算法=DFS+剪枝T200岛屿数量(非常经典BFS宽度把树状转化成队列形式,lambda匿名函数“一次性的小函数,没有名字”setup语法糖:让代码更简洁好写的语法ref创建:基本类型的</div>
                    </li>
                    <li><a href="/article/1950225785054883840.htm"
                           title="Java | 多线程经典问题 - 售票" target="_blank">Java | 多线程经典问题 - 售票</a>
                        <span class="text-muted">Ada54</span>

                        <div>一、售票需求1)同一个票池2)多个窗口卖票,不能出售同一张票二、售票问题代码实现(线程与进程小总结,请戳:Java|线程和进程,创建线程)step1:定义SaleWindow类实现Runnable接口,覆盖run方法step2:实例化SaleWindow对象,创建Thread对象,将SaleWindow作为参数传给Thread类的构造函数,然后通过Thread.start()方法启动线程step3</div>
                    </li>
                    <li><a href="/article/1950222345163567104.htm"
                           title="深入理解汇编语言子程序设计与系统调用" target="_blank">深入理解汇编语言子程序设计与系统调用</a>
                        <span class="text-muted">网安spinage</span>
<a class="tag" taget="_blank" href="/search/%E6%B1%87%E7%BC%96%E8%AF%AD%E8%A8%80/1.htm">汇编语言</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E6%B1%87%E7%BC%96/1.htm">汇编</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a>
                        <div>本文将全面解析汇编语言中子程序设计的核心技术以及系统调用的实现方法,涵盖参数传递的多种方式、堆栈管理、API调用等关键知识点,并提供实际案例演示。一、子程序设计:参数传递的艺术1.寄存器传参:高效简洁.386.modelflat,stdcalloptioncasemap:none.dataxdd5;定义变量ydd6sumdd?.code;函数定义:addxy1addxy1procpushebpmo</div>
                    </li>
                    <li><a href="/article/1950217809610993664.htm"
                           title="分支和循环(下)" target="_blank">分支和循环(下)</a>
                        <span class="text-muted">tryxr</span>
<a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a>
                        <div>写⼀个猜数字游戏游戏要求:1.电脑⾃动⽣成1~100的随机数2.玩家猜数字,猜数字的过程中,根据猜测数据的⼤⼩给出⼤了或⼩了的反馈,直到猜对,游戏结束1.随机数生成要想完成猜数字游戏,⾸先得产⽣随机数,那怎么产⽣随机数呢?randC语⾔提供了⼀个函数叫rand,这函数是可以⽣成随机数的,函数原型如下所⽰:intrand(void);rand函数会返回⼀个伪随机数,这个随机数的范围是在0~RAND_</div>
                    </li>
                    <li><a href="/article/1950214784112717824.htm"
                           title="C++ :vector的模拟" target="_blank">C++ :vector的模拟</a>
                        <span class="text-muted">诚自然成</span>
<a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>目录一、vector的迭代器二、vector的构造函数默认构造函数参数构造函数迭代器范围构造函数拷贝构造函数swap:交换vector重载赋值符析构函数reserve:扩容vectorresize:调整大小push_back:添加元素empty:判空pop_back:后删获取大小与容量:size(),capacity()重载operator[]:元素访问insert:插入元素erase:删除一个元</div>
                    </li>
                    <li><a href="/article/1950208107430866944.htm"
                           title="python笔记14介绍几个魔法方法" target="_blank">python笔记14介绍几个魔法方法</a>
                        <span class="text-muted">抢公主的大魔王</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a>
                        <div>python笔记14介绍几个魔法方法先声明一下各位大佬,这是我的笔记。如有错误,恳请指正。另外,感谢您的观看,谢谢啦!(1).__doc__输出对应的函数,类的说明文档print(print.__doc__)print(value,...,sep='',end='\n',file=sys.stdout,flush=False)Printsthevaluestoastream,ortosys.std</div>
                    </li>
                    <li><a href="/article/1950202936449626112.htm"
                           title="Qwen3 大模型实战:使用 vLLM 部署与函数调用(Function Call)全攻略" target="_blank">Qwen3 大模型实战:使用 vLLM 部署与函数调用(Function Call)全攻略</a>
                        <span class="text-muted">曦紫沐</span>
<a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%A8%A1%E5%9E%8B/1.htm">大模型</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%A8%A1%E5%9E%8B%E9%83%A8%E7%BD%B2/1.htm">大模型部署</a><a class="tag" taget="_blank" href="/search/Qwen3/1.htm">Qwen3</a><a class="tag" taget="_blank" href="/search/vLLM/1.htm">vLLM</a><a class="tag" taget="_blank" href="/search/%E5%87%BD%E6%95%B0%E8%B0%83%E7%94%A8/1.htm">函数调用</a>
                        <div>文章摘要本文将带你从零开始,深入掌握如何使用Qwen3-8B大语言模型,结合vLLM进行高性能部署,并通过函数调用(FunctionCall)实现模型与外部工具的智能联动。我们将详细讲解部署命令、调用方式、代码示例及实际应用场景,帮助你快速构建基于Qwen3的智能应用。一、Qwen3简介与部署环境准备Qwen3是通义千问系列的最新一代大语言模型,具备强大的自然语言理解和生成能力,尤其在函数调用、工</div>
                    </li>
                    <li><a href="/article/1950202684451647488.htm"
                           title="[spring6: Mvc-网关]-源码解析" target="_blank">[spring6: Mvc-网关]-源码解析</a>
                        <span class="text-muted"></span>

                        <div>推荐阅读:[spring6:Mvc-函数式编程]-源码解析GatewayServerMvcAutoConfiguration@AutoConfiguration(after={HttpClientAutoConfiguration.class,RestTemplateAutoConfiguration.class,RestClientAutoConfiguration.class,FilterAu</div>
                    </li>
                    <li><a href="/article/1950196906563006464.htm"
                           title="Unity学习笔记1" target="_blank">Unity学习笔记1</a>
                        <span class="text-muted">zy_777</span>

                        <div>通过一个星期的简单学习,初步了解了下unity,unity的使用,以及场景的布局,UI,以及用C#做一些简单的逻辑。好记性不如烂笔头,一些关键帧还是记起来比较好,哈哈,不然可能转瞬即逝了,(PS:纯小白观点,unity大神可以直接忽略了)一:MonoBehaviour类的初始化1,Instantiate()创建GameObject2,通过Awake()和Start()来做初始化3,Update、L</div>
                    </li>
                    <li><a href="/article/1950192217708621824.htm"
                           title="lesson20:Python函数的标注" target="_blank">lesson20:Python函数的标注</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/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>目录引言:为什么函数标注是现代Python开发的必备技能一、函数标注的基础语法1.1参数与返回值标注1.2支持的标注类型1.3Python3.9+的重大改进:标准集合泛型二、高级标注技巧与最佳实践2.1复杂参数结构标注2.2函数类型与回调标注2.3变量注解与类型别名三、静态类型检查工具应用3.1mypy:最流行的类型检查器3.2Pyright与IDE集成3.3运行时类型验证四、函数标注的工程价值与</div>
                    </li>
                    <li><a href="/article/1950187554129113088.htm"
                           title="Django学习笔记(一)" target="_blank">Django学习笔记(一)</a>
                        <span class="text-muted"></span>

                        <div>学习视频为:pythondjangoweb框架开发入门全套视频教程一、安装pipinstalldjango==****检查是否安装成功django.get_version()二、django新建项目操作1、新建一个项目django-adminstartprojectproject_name2、新建APPcdproject_namedjango-adminstartappApp注:一个project</div>
                    </li>
                    <li><a href="/article/1950185789447008256.htm"
                           title="Python 程序设计讲义(26):字符串的用法——字符的编码" target="_blank">Python 程序设计讲义(26):字符串的用法——字符的编码</a>
                        <span class="text-muted">睿思达DBA_WGX</span>
<a class="tag" taget="_blank" href="/search/Python/1.htm">Python</a><a class="tag" taget="_blank" href="/search/%E8%AE%B2%E4%B9%89/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>Python程序设计讲义(26):字符串的用法——字符的编码目录Python程序设计讲义(26):字符串的用法——字符的编码一、字符的编码二、`ASCII`编码三、`Unicode`编码四、使用`ord()`函数查询一个字符对应的`Unicode`编码五、使用`chr()`函数查询一个`Unicode`编码对应的字符六、`Python`字符串的特征一、字符的编码计算机默认只能处理二进制数,而不能处</div>
                    </li>
                    <li><a href="/article/1950179614320029696.htm"
                           title="python学习笔记(汇总)" target="_blank">python学习笔记(汇总)</a>
                        <span class="text-muted">朕的剑还未配妥</span>
<a class="tag" taget="_blank" href="/search/python%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0%E6%95%B4%E7%90%86/1.htm">python学习笔记整理</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>文章目录一.基础知识二.python中的数据类型三.运算符四.程序的控制结构五.列表六.字典七.元组八.集合九.字符串十.函数十一.解决bug一.基础知识print函数字符串要加引号,数字可不加引号,如print(123.4)print('小谢')print("洛天依")还可输入表达式,如print(1+3)如果使用三引号,print打印的内容可不在同一行print("line1line2line</div>
                    </li>
                    <li><a href="/article/1950164355706318848.htm"
                           title="001 Configuration结构体构造" target="_blank">001 Configuration结构体构造</a>
                        <span class="text-muted">盖世灬英雄z</span>
<a class="tag" taget="_blank" href="/search/DramSys/1.htm">DramSys</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a>
                        <div>目录DramSys代码分析1Configuration结构体构造1.1`from_path`函数详解1.2构造过程总结这种设计的好处2Simulator例化过程2.1instantiateInitiatorDramSys代码分析1Configuration结构体构造好的,我们来详细解释一下DRAMSysConfiguration.cpp文件中from_path函数的配置构造过程。这个文件是DRAM</div>
                    </li>
                    <li><a href="/article/1950163694096805888.htm"
                           title="运算符重载" target="_blank">运算符重载</a>
                        <span class="text-muted">紫诺不离</span>

                        <div>+、-、*、/、++、--、==、!=、*->、&&、||...对于内置数据类型,编译器知道如何做运算,编译器不知道如何让两个类进行运算如果向让自定义数据类型进行+法运算,就需要重载+运算符在成员函数或者全局函数里,重写一个+法运算符的函数函数名operator+(){}运算符重载也可以提供多个版本加法运算符类名+operator+(){};例:成员函数classPerson{public:Per</div>
                    </li>
                    <li><a href="/article/1950161706533580800.htm"
                           title="SQL笔记纯干货" target="_blank">SQL笔记纯干货</a>
                        <span class="text-muted">AI入门修炼</span>
<a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</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/sql/1.htm">sql</a>
                        <div>软件:DataGrip2023.2.3,phpstudy_pro,MySQL8.0.12目录1.DDL语句(数据定义语句)1.1数据库操作语言1.2数据表操作语言2.DML语句(数据操作语言)2.1增删改2.2题2.3备份表3.DQL语句(数据查询语言)3.1查询操作3.2题一3.3题二4.多表详解4.1一对多4.2多对多5.多表查询6.窗口函数7.拓展:upsert8.sql注入攻击演示9.拆表</div>
                    </li>
                    <li><a href="/article/1950158303287898112.htm"
                           title="零数学基础理解AI核心概念:梯度下降可视化实战" target="_blank">零数学基础理解AI核心概念:梯度下降可视化实战</a>
                        <span class="text-muted">九章云极AladdinEdu</span>
<a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/gpu%E7%AE%97%E5%8A%9B/1.htm">gpu算力</a><a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a><a class="tag" taget="_blank" href="/search/pytorch/1.htm">pytorch</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E8%AF%AD%E8%A8%80%E6%A8%A1%E5%9E%8B/1.htm">语言模型</a><a class="tag" taget="_blank" href="/search/opencv/1.htm">opencv</a>
                        <div>点击“AladdinEdu,同学们用得起的【H卡】算力平台”,H卡级别算力,按量计费,灵活弹性,顶级配置,学生专属优惠。用Python动画演示损失函数优化过程,数学公式具象化读者收获:直观理解模型训练本质,破除"数学恐惧症"当盲人登山者摸索下山路径时,他本能地运用了梯度下降算法。本文将用动态可视化技术,让你像感受重力一样理解AI训练的核心原理——无需任何数学公式推导。一、梯度下降:AI世界的"万有</div>
                    </li>
                    <li><a href="/article/1950147339964444672.htm"
                           title="【Druid】学习笔记" target="_blank">【Druid】学习笔记</a>
                        <span class="text-muted">fixAllenSun</span>
<a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a><a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a>
                        <div>【Druid】学习笔记【一】简介【1】简介【2】数据库连接池(1)能解决的问题(2)使用数据库连接池的好处【3】监控(1)监控信息采集的StatFilter(2)监控不影响性能(3)SQL参数化合并监控(4)执行次数、返回行数、更新行数和并发监控(5)慢查监控(6)Exception监控(7)区间分布(8)内置监控DEMO【4】Druid基本配置参数介绍【5】Druid相比于其他数据库连接池的优点</div>
                    </li>
                    <li><a href="/article/1950146206252462080.htm"
                           title="OnJava8-学习分享(附资源)" target="_blank">OnJava8-学习分享(附资源)</a>
                        <span class="text-muted">李超同学</span>
<a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E4%B9%A6%E7%B1%8D/1.htm">书籍</a><a class="tag" taget="_blank" href="/search/onjava8/1.htm">onjava8</a>
                        <div>本书是布鲁斯•埃克尔时隔15年,继ThinkinginJava之后又一力作,基于Java的3个长期支持版(Java8、11、17),讲解Java核心语法,并对Java的核心变化进行详述。全书内容通俗易懂,配合示例讲解逐步深入,并结合实际开发需要,从语言底层设计出发,有效帮读者规避一些常见的开发陷阱。主体部分共22章,内容包含对象、操作符、控制流、初始化和清理、复用、多态、接口、内部类、集合、函数式</div>
                    </li>
                    <li><a href="/article/1950142042847899648.htm"
                           title="java学习笔记8" target="_blank">java学习笔记8</a>
                        <span class="text-muted">幸福,你等等我</span>
<a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                        <div>一、异常处理Error:错误,程序员无法处理,如OOM内存溢出错误、内存泄漏...会导出程序崩溃1.异常:程序中一些程序自身处理不了的特殊情况2.异常类Exception3.异常的分类:(1).检查型异常(编译异常):在编译时就会抛出的异常(代码上会报错),需要在代码中编写处理方式(和程序之外的资源访问)直接继承Exception(2).运行时异常:在代码运行阶段可能会出现的异常,可以不用明文处理</div>
                    </li>
                    <li><a href="/article/1950138760230400000.htm"
                           title="C语言基础-数组和指针的区别" target="_blank">C语言基础-数组和指针的区别</a>
                        <span class="text-muted">阿部春光</span>
<a class="tag" taget="_blank" href="/search/C%E8%AF%AD%E8%A8%80/1.htm">C语言</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a>
                        <div>在C语言中,数组和指针是两个密切相关但又有显著区别的概念。下面我会详细解释它们之间的区别和联系。区别数组和指针在C语言中虽然经常一起使用,但它们是两个不同的概念,具有一些关键的区别:本质不同:数组:数组是一种数据结构,用于存储固定数量的同类型元素的连续内存块。数组名在某些上下文中(如取地址操作或sizeof操作符)代表整个数组,但在其他上下文中(如作为函数参数或用于指针算术)通常退化为指向数组第一</div>
                    </li>
                    <li><a href="/article/1950137599754563584.htm"
                           title="xgboost原理" target="_blank">xgboost原理</a>
                        <span class="text-muted">茶尽</span>

                        <div>阅读XGBoost与BoostedTree基学习器:CART每个叶子节点上面有一个分数不够厉害,所以找一个更强的模型treeensemble对每个样本的预测结果是每棵树预测分数的和目标函数采用boosting(additivetraining)方法,每一次都加入一个新的函数。依赖每个数据点上的误差函数的一阶导数和二阶导(区别于GBDT)。树的复杂度复杂度包含了一棵树里面的叶子个数和输出分数的L2模</div>
                    </li>
                    <li><a href="/article/1950125525758439424.htm"
                           title="window 显示驱动开发-Direct3D 呈现性能改进(四)" target="_blank">window 显示驱动开发-Direct3D 呈现性能改进(四)</a>
                        <span class="text-muted">程序员王马</span>
<a class="tag" taget="_blank" href="/search/windows%E5%9B%BE%E5%BD%A2%E6%98%BE%E7%A4%BA%E9%A9%B1%E5%8A%A8%E5%BC%80%E5%8F%91/1.htm">windows图形显示驱动开发</a><a class="tag" taget="_blank" href="/search/%E9%A9%B1%E5%8A%A8%E5%BC%80%E5%8F%91/1.htm">驱动开发</a>
                        <div>调用资源创建、映射和取消映射函数的行为更改对于WDDM1.3及更高版本驱动程序实现的这些函数,Direct3D运行时为映射默认方案提供一组受限的输入值。这些受限值仅适用于支持功能级别11.1及更高版本的驱动程序。CreateResource(D3D11)函数—这些输入D3D11DDIARG_CREATERESOURCE结构成员受到限制:调用资源创建、映射和取消映射函数的行为更改对于WDDM1.3及</div>
                    </li>
                    <li><a href="/article/1950122628761055232.htm"
                           title="使用Python操作Excel,删重复数据及keep参数用法并保存的例子" target="_blank">使用Python操作Excel,删重复数据及keep参数用法并保存的例子</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/excel/1.htm">excel</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/Python%E7%BC%96%E7%A8%8B/1.htm">Python编程</a><a class="tag" taget="_blank" href="/search/Python%E5%AD%A6%E4%B9%A0/1.htm">Python学习</a><a class="tag" taget="_blank" href="/search/%E6%8A%80%E8%83%BD%E5%88%86%E4%BA%AB/1.htm">技能分享</a>
                        <div>01Ex按列标题删重复的数据解析:我们使用了pandas库读取Excel文件,并使用drop_duplicates()函数删除重复数据。其中,subset参数指定了删除重复数据的列(列名),keep参数指定了保留哪个重复记录(默认为第一个记录)。inplace=True参数表示在原始数据上进行操作。最后,我们使用to_excel()函数将处理后的数据,保存到一个新的Excel文件中,其中index</div>
                    </li>
                    <li><a href="/article/1950122432392130560.htm"
                           title="R语言笔记Day1(排序、筛选以及分类汇总))" target="_blank">R语言笔记Day1(排序、筛选以及分类汇总))</a>
                        <span class="text-muted">养猪场小老板</span>

                        <div>一、排序1、单变量序列排序2、数据表(矩阵)排序二、筛选三、分类汇总一、排序1、单变量序列排序rank、sort和order函数>aa[1]315#rank用来计算序列中每个元素的秩#这里的“秩”可以理解为该元素在序列中由小到大排列的次序#上面例子给出的序列[3,1,5]中,1最小,5最大,3居中#于是1的秩为1,3的秩为2,5的秩为3,(3,1,5)对应的秩的结果就是(2,1,3)>rank(a</div>
                    </li>
                    <li><a href="/article/1950117835502055424.htm"
                           title="Python day27" target="_blank">Python day27</a>
                        <span class="text-muted">赵英英俊</span>
<a class="tag" taget="_blank" href="/search/Python%E8%AE%AD%E7%BB%83/1.htm">Python训练</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a>
                        <div>@浙大疏锦行Pythonday27内容:Python中的装饰器:封装的思想,使用@注解将函数封装起来从而实现在函数运行前后完成目标操作,即将被封装函数的行为视为整体运行过程中的一部分无返回值:函数无返回值,只需要完成封装逻辑即可。有返回值:函数有返回值,函数有返回值时,需要在装饰器函数位置接受返回值并返回给用户。importtimedefdisplay_time(func):"""支持任意参数的时</div>
                    </li>
                    <li><a href="/article/1950114809991196672.htm"
                           title="10. addEventListener 参数有哪些" target="_blank">10. addEventListener 参数有哪些</a>
                        <span class="text-muted">yqcoder</span>
<a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E9%9D%A2%E8%AF%95-CSS/1.htm">前端面试-CSS</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>总结el.addEventListener(type,listener,useCapture)el:事件对象type:事件类型listener:事件处理函数useCapture:布尔或对象,布尔时false为冒泡,true为捕获。对象时,{captrue:false,once:false,passive:false}addEventListener是用于为元素绑定事件监听器的标准方法,支持更灵活的</div>
                    </li>
                    <li><a href="/article/1950113424281235456.htm"
                           title="2025 最强 Agent 智能体 学习笔记 (71)" target="_blank">2025 最强 Agent 智能体 学习笔记 (71)</a>
                        <span class="text-muted">一刀7段</span>
<a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a>
                        <div>Agent智能体的系统学习与职业发展核心内容概览本集是《2025最强Agent智能体全套教程》的第72集,聚焦Agent智能体领域的系统学习方法与职业发展路径,系统梳理了从入门到专家的能力体系、关键学习资源、职业方向选择及行业发展机遇。内容结合技术趋势与职场需求,为不同背景的学习者(学生、开发者、转行人士)提供清晰的成长蓝图,帮助其在Agent智能体领域高效成长,实现职业目标。系统学习的能力体系与</div>
                    </li>
                    <li><a href="/article/1950110272614100992.htm"
                           title="OpenGL里相机的运动控制" target="_blank">OpenGL里相机的运动控制</a>
                        <span class="text-muted">qq_42987967</span>
<a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%9B%BE%E5%BD%A2%E5%AD%A6%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/1.htm">计算机图形学学习笔记</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E7%A0%81%E7%9B%B8%E6%9C%BA/1.htm">数码相机</a>
                        <div>相机的核心构造一个是glm::lookAt函数,一个是glm::perspective函数,本文相机的一切运动都在于如何构建相应的参数传入上述两个函数里。glm::mat4glm::lookAt(glm::vec3const&eye,//相机所在位置glm::vec3const¢er,//要凝视的点glm::vec3const&up//相机上向量);glm::mat4perspective</div>
                    </li>
                    <li><a href="/article/1950095708468080640.htm"
                           title="【学习笔记】CBT工作坊第二天:动机驱动行为" target="_blank">【学习笔记】CBT工作坊第二天:动机驱动行为</a>
                        <span class="text-muted">花团与芥末</span>

                        <div>什么叫动机?在认知行为疗法中,动机是引导我们行为的各种外在和内在的力量,唤起行为起始的力量,朝着一定目标与方向进行的力量,维持或停止的力量。也就是说,在我们的所有行为包括没有做的行为背后,都隐藏着某种动机。那么,动机一般有哪些呢?大家一般听说过的,是马斯洛的需求层次理论。在他的金字塔理论中,将动机需求分为了6个层次,从初级到高级分别是:生存(活着的必须条件)--安全(活下去)--爱--尊重--自我</div>
                    </li>
                                <li><a href="/article/106.htm"
                                       title="书其实只有三类" target="_blank">书其实只有三类</a>
                                    <span class="text-muted">西蜀石兰</span>
<a class="tag" taget="_blank" href="/search/%E7%B1%BB/1.htm">类</a>
                                    <div>一个人一辈子其实只读三种书,知识类、技能类、修心类。 
 
知识类的书可以让我们活得更明白。类似十万个为什么这种书籍,我一直不太乐意去读,因为单纯的知识是没法做事的,就像知道地球转速是多少一样(我肯定不知道),这种所谓的知识,除非用到,普通人掌握了完全是一种负担,维基百科能找到的东西,为什么去记忆? 
知识类的书,每个方面都涉及些,让自己显得不那么没文化,仅此而已。社会认为的学识渊博,肯定不是站在</div>
                                </li>
                                <li><a href="/article/233.htm"
                                       title="《TCP/IP 详解,卷1:协议》学习笔记、吐槽及其他" target="_blank">《TCP/IP 详解,卷1:协议》学习笔记、吐槽及其他</a>
                                    <span class="text-muted">bylijinnan</span>
<a class="tag" taget="_blank" href="/search/tcp/1.htm">tcp</a>
                                    <div>《TCP/IP 详解,卷1:协议》是经典,但不适合初学者。它更像是一本字典,适合学过网络的人温习和查阅一些记不清的概念。 
 
这本书,我看的版本是机械工业出版社、范建华等译的。这本书在我看来,翻译得一般,甚至有明显的错误。如果英文熟练,看原版更好: 
http://pcvr.nl/tcpip/ 
 
下面是我的一些笔记,包括我看书时有疑问的地方,也有对该书的吐槽,有不对的地方请指正: 
 
1.</div>
                                </li>
                                <li><a href="/article/360.htm"
                                       title="Linux—— 静态IP跟动态IP设置" target="_blank">Linux—— 静态IP跟动态IP设置</a>
                                    <span class="text-muted">eksliang</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/IP/1.htm">IP</a>
                                    <div>一.在终端输入 
vi /etc/sysconfig/network-scripts/ifcfg-eth0 
静态ip模板如下: 
DEVICE="eth0"      #网卡名称
BOOTPROTO="static" #静态IP(必须)
HWADDR="00:0C:29:B5:65:CA" #网卡mac地址
IPV6INIT=&q</div>
                                </li>
                                <li><a href="/article/487.htm"
                                       title="Informatica update strategy transformation" target="_blank">Informatica update strategy transformation</a>
                                    <span class="text-muted">18289753290</span>

                                    <div>更新策略组件:   标记你的数据进入target里面做什么操作,一般会和lookup配合使用,有时候用0,1,1代表   forward  rejected rows被选中,rejected row是输出在错误文件里,不想看到reject输出,将错误输出到文件,因为有时候数据库原因导致某些column不能update,reject就会output到错误文件里面供查看,在workflow的</div>
                                </li>
                                <li><a href="/article/614.htm"
                                       title="使用Scrapy时出现虽然队列里有很多Request但是却不下载,造成假死状态" target="_blank">使用Scrapy时出现虽然队列里有很多Request但是却不下载,造成假死状态</a>
                                    <span class="text-muted">酷的飞上天空</span>
<a class="tag" taget="_blank" href="/search/request/1.htm">request</a>
                                    <div>现象就是: 
程序运行一段时间,可能是几十分钟或者几个小时,然后后台日志里面就不出现下载页面的信息,一直显示上一分钟抓取了0个网页的信息。 
刚开始已经猜到是某些下载线程没有正常执行回调方法引起程序一直以为线程还未下载完成,但是水平有限研究源码未果。 
经过不停的google终于发现一个有价值的信息,是给twisted提出的一个bugfix 
连接地址如下http://twistedmatrix.</div>
                                </li>
                                <li><a href="/article/741.htm"
                                       title="利用预测分析技术来进行辅助医疗" target="_blank">利用预测分析技术来进行辅助医疗</a>
                                    <span class="text-muted">蓝儿唯美</span>
<a class="tag" taget="_blank" href="/search/%E5%8C%BB%E7%96%97/1.htm">医疗</a>
                                    <div>2014年,克利夫兰诊所(Cleveland Clinic)想要更有效地控制其手术中心做膝关节置换手术的费用。整个系统每年大约进行2600例此类手术,所以,即使降低很少一部分成本,都可以为诊 所和病人节约大量的资金。为了找到适合的解决方案,供应商将视野投向了预测分析技术和工具,但其分析团队还必须花时间向医生解释基于数据的治疗方案意味着 什么。  
克利夫兰诊所负责企业信息管理和分析的医疗</div>
                                </li>
                                <li><a href="/article/868.htm"
                                       title="java 线程(一):基础篇" target="_blank">java 线程(一):基础篇</a>
                                    <span class="text-muted">DavidIsOK</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%A4%9A%E7%BA%BF%E7%A8%8B/1.htm">多线程</a><a class="tag" taget="_blank" href="/search/%E7%BA%BF%E7%A8%8B/1.htm">线程</a>
                                    <div>                                                        &nbs</div>
                                </li>
                                <li><a href="/article/995.htm"
                                       title="Tomcat服务器框架之Servlet开发分析" target="_blank">Tomcat服务器框架之Servlet开发分析</a>
                                    <span class="text-muted">aijuans</span>
<a class="tag" taget="_blank" href="/search/servlet/1.htm">servlet</a>
                                    <div>最近使用Tomcat做web服务器,使用Servlet技术做开发时,对Tomcat的框架的简易分析: 
 
疑问: 为什么我们在继承HttpServlet类之后,覆盖doGet(HttpServletRequest req, HttpServetResponse rep)方法后,该方法会自动被Tomcat服务器调用,doGet方法的参数有谁传递过来?怎样传递? 
 
分析之我见: doGet方法的</div>
                                </li>
                                <li><a href="/article/1122.htm"
                                       title="揭秘玖富的粉丝营销之谜 与小米粉丝社区类似" target="_blank">揭秘玖富的粉丝营销之谜 与小米粉丝社区类似</a>
                                    <span class="text-muted">aoyouzi</span>
<a class="tag" taget="_blank" href="/search/%E6%8F%AD%E7%A7%98%E7%8E%96%E5%AF%8C%E7%9A%84%E7%B2%89%E4%B8%9D%E8%90%A5%E9%94%80%E4%B9%8B%E8%B0%9C/1.htm">揭秘玖富的粉丝营销之谜</a>
                                    <div>玖富旗下悟空理财凭借着一个微信公众号上线当天成交量即破百万,第七天成交量单日破了1000万;第23天时,累计成交量超1个亿……至今成立不到10个月,粉丝已经超过500万,月交易额突破10亿,而玖富平台目前的总用户数也已经超过了1800万,位居P2P平台第一位。很多互联网金融创业者慕名前来学习效仿,但是却鲜有成功者,玖富的粉丝营销对外至今仍然是个谜。 
  
  近日,一直坚持微信粉丝营销</div>
                                </li>
                                <li><a href="/article/1249.htm"
                                       title="Java web的会话跟踪技术" target="_blank">Java web的会话跟踪技术</a>
                                    <span class="text-muted">百合不是茶</span>
<a class="tag" taget="_blank" href="/search/url%E4%BC%9A%E8%AF%9D/1.htm">url会话</a><a class="tag" taget="_blank" href="/search/Cookie%E4%BC%9A%E8%AF%9D/1.htm">Cookie会话</a><a class="tag" taget="_blank" href="/search/Seession%E4%BC%9A%E8%AF%9D/1.htm">Seession会话</a><a class="tag" taget="_blank" href="/search/Java+Web/1.htm">Java Web</a><a class="tag" taget="_blank" href="/search/%E9%9A%90%E8%97%8F%E5%9F%9F%E4%BC%9A%E8%AF%9D/1.htm">隐藏域会话</a>
                                    <div>会话跟踪主要是用在用户页面点击不同的页面时,需要用到的技术点 
  
会话:多次请求与响应的过程 
  
  
1,url地址传递参数,实现页面跟踪技术 
         格式:传一个参数的 
url?名=值  
    传两个参数的 
url?名=值 &名=值 
  
关键代码</div>
                                </li>
                                <li><a href="/article/1376.htm"
                                       title="web.xml之Servlet配置" target="_blank">web.xml之Servlet配置</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/web.xml/1.htm">web.xml</a><a class="tag" taget="_blank" href="/search/Servlet%E9%85%8D%E7%BD%AE/1.htm">Servlet配置</a>
                                    <div>定义: 
<servlet>
  <servlet-name>myservlet</servlet-name>
  <servlet-class>com.myapp.controller.MyFirstServlet</servlet-class>
  <init-param>
   <param-name></div>
                                </li>
                                <li><a href="/article/1503.htm"
                                       title="利用svnsync实现SVN同步备份" target="_blank">利用svnsync实现SVN同步备份</a>
                                    <span class="text-muted">sunjing</span>
<a class="tag" taget="_blank" href="/search/SVN/1.htm">SVN</a><a class="tag" taget="_blank" href="/search/%E5%90%8C%E6%AD%A5/1.htm">同步</a><a class="tag" taget="_blank" href="/search/E000022/1.htm">E000022</a><a class="tag" taget="_blank" href="/search/svnsync/1.htm">svnsync</a><a class="tag" taget="_blank" href="/search/%E9%95%9C%E5%83%8F/1.htm">镜像</a>
                                    <div>1. 在备份SVN服务器上建立版本库 
   svnadmin create test 
2. 创建pre-revprop-change文件 
    cd test/hooks/ 
    cp pre-revprop-change.tmpl pre-revprop-change 
3. 修改pre-revprop-</div>
                                </li>
                                <li><a href="/article/1630.htm"
                                       title="【分布式数据一致性三】MongoDB读写一致性" target="_blank">【分布式数据一致性三】MongoDB读写一致性</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/mongodb/1.htm">mongodb</a>
                                    <div>本系列文章结合MongoDB,探讨分布式数据库的数据一致性,这个系列文章包括: 
 
 数据一致性概述与CAP 
 最终一致性(Eventually Consistency) 
 网络分裂(Network Partition)问题 
 多数据中心(Multi Data Center) 
 多个写者(Multi Writer)最终一致性 
 一致性图表(Consistency Chart) 
 数据</div>
                                </li>
                                <li><a href="/article/1757.htm"
                                       title="Anychart图表组件-Flash图转IMG普通图的方法" target="_blank">Anychart图表组件-Flash图转IMG普通图的方法</a>
                                    <span class="text-muted">白糖_</span>
<a class="tag" taget="_blank" href="/search/Flash/1.htm">Flash</a>
                                    <div>问题背景:项目使用的是Anychart图表组件,渲染出来的图是Flash的,往往一个页面有时候会有多个flash图,而需求是让我们做一个打印预览和打印功能,让多个Flash图在一个页面上打印出来。 
  
那么我们打印预览的思路是获取页面的body元素,然后在打印预览界面通过$("body").append(html)的形式显示预览效果,结果让人大跌眼镜:Flash是</div>
                                </li>
                                <li><a href="/article/1884.htm"
                                       title="Window 80端口被占用 WHY?" target="_blank">Window 80端口被占用 WHY?</a>
                                    <span class="text-muted">bozch</span>
<a class="tag" taget="_blank" href="/search/%E7%AB%AF%E5%8F%A3%E5%8D%A0%E7%94%A8/1.htm">端口占用</a><a class="tag" taget="_blank" href="/search/window/1.htm">window</a>
                                    <div>平时在启动一些可能使用80端口软件的时候,会提示80端口已经被其他软件占用,那一般又会有那些软件占用这些端口呢? 
   下面坐下总结: 
        1、web服务器是最经常见的占用80端口的,例如:tomcat , apache  , IIS , Php等等; 
        2</div>
                                </li>
                                <li><a href="/article/2011.htm"
                                       title="编程之美-数组的最大值和最小值-分治法(两种形式)" target="_blank">编程之美-数组的最大值和最小值-分治法(两种形式)</a>
                                    <span class="text-muted">bylijinnan</span>
<a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B%E4%B9%8B%E7%BE%8E/1.htm">编程之美</a>
                                    <div>

import java.util.Arrays;

public class MinMaxInArray {

	/**
	 * 编程之美 数组的最大值和最小值 分治法
	 * 两种形式
	 */
	public static void main(String[] args) {
		int[] t={11,23,34,4,6,7,8,1,2,23};
		int[] </div>
                                </li>
                                <li><a href="/article/2138.htm"
                                       title="Perl正则表达式" target="_blank">Perl正则表达式</a>
                                    <span class="text-muted">chenbowen00</span>
<a class="tag" taget="_blank" href="/search/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/1.htm">正则表达式</a><a class="tag" taget="_blank" href="/search/perl/1.htm">perl</a>
                                    <div>首先我们应该知道 Perl 程序中,正则表达式有三种存在形式,他们分别是: 
 
 
 
匹配:m/<regexp>;/ (还可以简写为 /<regexp>;/ ,略去 m) 
 
 
 
替换:s/<pattern>;/<replacement>;/ 
 
 
 
转化:tr/<pattern>;/<replacemnt>;</div>
                                </li>
                                <li><a href="/article/2265.htm"
                                       title="[宇宙与天文]行星议会是否具有本行星大气层以外的权力呢?" target="_blank">[宇宙与天文]行星议会是否具有本行星大气层以外的权力呢?</a>
                                    <span class="text-muted">comsci</span>

                                    <div> 
 
      举个例子: 地球,地球上由200多个国家选举出一个代表地球联合体的议会,那么现在地球联合体遇到一个问题,地球这颗星球上面的矿产资源快要采掘完了....那么地球议会全体投票,一致通过一项带有法律性质的议案,既批准地球上的国家用各种技术手段在地球以外开采矿产资源和其它资源........ 
 
   &</div>
                                </li>
                                <li><a href="/article/2392.htm"
                                       title="Oracle Profile 使用详解" target="_blank">Oracle Profile 使用详解</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/profile/1.htm">profile</a><a class="tag" taget="_blank" href="/search/%E8%B5%84%E6%BA%90%E9%99%90%E5%88%B6/1.htm">资源限制</a>
                                    <div>Oracle Profile 使用详解 转 
一、目的: 
Oracle系统中的profile可以用来对用户所能使用的数据库资源进行限制,使用Create Profile命令创建一个Profile,用它来实现对数据库资源的限制使用,如果把该profile分配给用户,则该用户所能使用的数据库资源都在该profile的限制之内。 
 
二、条件: 
创建profile必须要有CREATE PROFIL</div>
                                </li>
                                <li><a href="/article/2519.htm"
                                       title="How HipChat Stores And Indexes Billions Of Messages Using ElasticSearch & Redis" target="_blank">How HipChat Stores And Indexes Billions Of Messages Using ElasticSearch & Redis</a>
                                    <span class="text-muted">dengkane</span>
<a class="tag" taget="_blank" href="/search/elasticsearch/1.htm">elasticsearch</a><a class="tag" taget="_blank" href="/search/Lucene/1.htm">Lucene</a>
                                    <div>This article is from an interview with Zuhaib Siddique, a production engineer at HipChat, makers of group chat and IM for teams. 
HipChat started in an unusual space, one you might not </div>
                                </li>
                                <li><a href="/article/2646.htm"
                                       title="循环小示例,菲波拉契序列,循环解一元二次方程以及switch示例程序" target="_blank">循环小示例,菲波拉契序列,循环解一元二次方程以及switch示例程序</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/c/1.htm">c</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a>
                                    <div># include <stdio.h>

int main(void)
{
	int n;
	int i;
	int f1, f2, f3;

	f1 = 1;
	f2 = 1;

	printf("请输入您需要求的想的序列:");
	scanf("%d", &n);

	for (i=3; i<n; i</div>
                                </li>
                                <li><a href="/article/2773.htm"
                                       title="macbook的lamp环境" target="_blank">macbook的lamp环境</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/lamp/1.htm">lamp</a>
                                    <div>  
sudo vim /etc/apache2/httpd.conf 
  
/Library/WebServer/Documents 
是默认的网站根目录 
  
重启Mac上的Apache服务 
    
这个命令很早以前就查过了,但是每次使用的时候还是要在网上查: 
停止服务:sudo /usr/sbin/apachectl stop 
开启服务:s</div>
                                </li>
                                <li><a href="/article/2900.htm"
                                       title="java ArrayList源码 下" target="_blank">java ArrayList源码 下</a>
                                    <span class="text-muted">shuizhaosi888</span>
<a class="tag" taget="_blank" href="/search/ArrayList%E6%BA%90%E7%A0%81/1.htm">ArrayList源码</a>
                                    <div>版本 jdk-7u71-windows-x64 
  
JavaSE7 ArrayList源码上:http://flyouwith.iteye.com/blog/2166890    
  
	/**
	 * 从这个列表中移除所有c中包含元素
	 */
	public boolean removeAll(Collection<?> c) {</div>
                                </li>
                                <li><a href="/article/3027.htm"
                                       title="Spring Security(08)——intercept-url配置" target="_blank">Spring Security(08)——intercept-url配置</a>
                                    <span class="text-muted">234390216</span>
<a class="tag" taget="_blank" href="/search/Spring+Security/1.htm">Spring Security</a><a class="tag" taget="_blank" href="/search/intercept-url/1.htm">intercept-url</a><a class="tag" taget="_blank" href="/search/%E8%AE%BF%E9%97%AE%E6%9D%83%E9%99%90/1.htm">访问权限</a><a class="tag" taget="_blank" href="/search/%E8%AE%BF%E9%97%AE%E5%8D%8F%E8%AE%AE/1.htm">访问协议</a><a class="tag" taget="_blank" href="/search/%E8%AF%B7%E6%B1%82%E6%96%B9%E6%B3%95/1.htm">请求方法</a>
                                    <div>intercept-url配置 
目录 
1.1     指定拦截的url 
1.2     指定访问权限 
1.3     指定访问协议 
1.4     指定请求方法 
   

1.1   &n</div>
                                </li>
                                <li><a href="/article/3154.htm"
                                       title="Linux环境下的oracle安装" target="_blank">Linux环境下的oracle安装</a>
                                    <span class="text-muted">jayung</span>
<a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a>
                                    <div>linux系统下的oracle安装 
本文档是Linux(redhat6.x、centos6.x、redhat7.x) 64位操作系统安装Oracle 11g(Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production),本文基于各种网络资料精心整理而成,共享给有需要的朋友。如有问题可联系:QQ:52-7</div>
                                </li>
                                <li><a href="/article/3281.htm"
                                       title="hotspot虚拟机" target="_blank">hotspot虚拟机</a>
                                    <span class="text-muted">leichenlei</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/HotSpot/1.htm">HotSpot</a><a class="tag" taget="_blank" href="/search/jvm/1.htm">jvm</a><a class="tag" taget="_blank" href="/search/%E8%99%9A%E6%8B%9F%E6%9C%BA/1.htm">虚拟机</a><a class="tag" taget="_blank" href="/search/%E6%96%87%E6%A1%A3/1.htm">文档</a>
                                    <div>JVM参数  
http://docs.oracle.com/javase/6/docs/technotes/guides/vm/index.html 
  
JVM工具 
http://docs.oracle.com/javase/6/docs/technotes/tools/index.html 
  
JVM垃圾回收 
http://www.oracle.com</div>
                                </li>
                                <li><a href="/article/3408.htm"
                                       title="读《Node.js项目实践:构建可扩展的Web应用》 ——引编程慢慢变成系统化的“砌砖活”" target="_blank">读《Node.js项目实践:构建可扩展的Web应用》 ——引编程慢慢变成系统化的“砌砖活”</a>
                                    <span class="text-muted">noaighost</span>
<a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/node.js/1.htm">node.js</a>
                                    <div>读《Node.js项目实践:构建可扩展的Web应用》 
——引编程慢慢变成系统化的“砌砖活” 
眼里的Node.JS 
初初接触node是一年前的事,那时候年少不更事。还在纠结什么语言可以编写出牛逼的程序,想必每个码农都会经历这个月经性的问题:微信用什么语言写的?facebook为什么推荐系统这么智能,用什么语言写的?dota2的外挂这么牛逼,用什么语言写的?……用什么语言写这句话,困扰人也是阻碍</div>
                                </li>
                                <li><a href="/article/3535.htm"
                                       title="快速开发Android应用" target="_blank">快速开发Android应用</a>
                                    <span class="text-muted">rensanning</span>
<a class="tag" taget="_blank" href="/search/android/1.htm">android</a>
                                    <div>Android应用开发过程中,经常会遇到很多常见的类似问题,解决这些问题需要花时间,其实很多问题已经有了成熟的解决方案,比如很多第三方的开源lib,参考 
Android Libraries 和 
Android UI/UX Libraries。 
 
编码越少,Bug越少,效率自然会高。 
 
但可能由于 根本没听说过、听说过但没用过、特殊原因不能用、自己已经有了解决方案等等原因,这些成熟的解决</div>
                                </li>
                                <li><a href="/article/3662.htm"
                                       title="理解Java中的弱引用" target="_blank">理解Java中的弱引用</a>
                                    <span class="text-muted">tomcat_oracle</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%B7%A5%E4%BD%9C/1.htm">工作</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a>
                                    <div> 不久之前,我 
面试了一些求职Java高级开发工程师的应聘者。我常常会面试他们说,“你能给我介绍一些Java中得弱引用吗?”,如果面试者这样说,“嗯,是不是垃圾回收有关的?”,我就会基本满意了,我并不期待回答是一篇诘究本末的论文描述。     然而事与愿违,我很吃惊的发现,在将近20多个有着平均5年开发经验和高学历背景的应聘者中,居然只有两个人知道弱引用的存在,但是在这两个人之中只有一个人真正了</div>
                                </li>
                                <li><a href="/article/3789.htm"
                                       title="关于<c:out value=""/>标签输出html标签" target="_blank">关于<c:out value=""/>标签输出html标签</a>
                                    <span class="text-muted">xshdch</span>
<a class="tag" taget="_blank" href="/search/jsp/1.htm">jsp</a>
                                    <div>http://back-888888.iteye.com/blog/1181202 
 
 
关于<c:out value=""/>标签的使用,其中有一个属性是escapeXml默认是true(将html标签当做转移字符,直接显示不在浏览器上面进行解析),当设置escapeXml属性值为false的时候就是不过滤xml,这样就能在浏览器上解析html标签, 
&nb</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>