async学习笔记记录

JS中的异步处理。

在javascript中,语言的执行环境是”单线程”。
所谓“所谓"单线程",就是指一次只能完成一件任务。如果有多个任务,就必须排队,前面一个任务完成,再执行后面一个任务“。

处理js异步的方法:

async函数。
async函数返回一个Promise对象。

举个例子:

async function getStockPriceByName(name){
    var symbol = await getStockSymbol(name);
    var stockPrice = await getStockPrice(symbol);
    return stockPrice;
}

getStockPriceByName('krislee').then(function(result){
console.log(result);
});

函数前面的async关键字,表明该函数内部有异步操作。调用该函数时,会立即返回一个Promise对象。
再举个例子:指定多少毫秒后输出一个值。

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',50);

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('/acatars/$(name).jpg');
}
const storage = new Storage();
storage.getAvatar('jake').then(...);

//箭头函数
const foo = async () =>{};

语法

返回Promise对象。
async function f(){
    return 'hello world';
}
f().then(v=>console.log(v))

Promise 对象的状态变化

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

eg:

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> 
 <h4>await命令</h4> 
 <p>正常请客下,await命令后面是一个Promise对象。如果不是,会被转成一个立即resolve的Promise对象。</p> 
 <pre><code>async funtion f(){
    return await 123;
}
f().then(v=>console.log(v))
</code></pre> 
 <p>如果是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><strong>只要一个await语句后面的Promsie变为reject,那么整个async函数都会中断执行</strong></p> 
 <h4>有时,我们希望即使前一个异步操作失败,也不要中断后面的异步操作。</h4> 
 <p>这时可以将第一个await放在try...catch结构里面,这样不管这个异步操作是否成功,第二个await都会执行。</p> 
 <p>eg:</p> 
 <pre><code>async function f(){
    try{
        awiat Promise.reject('出错了');
    }catch(e){
        
    }
    return await Promise.resolve('hello world');
}
f().then(v=>console.log(v))
</code></pre> 
 <p>此外还有另一个方法是await 后面的Promise对象再跟一个catch方法,处理前面可能出现的错误。</p> 
 <pre><code>async function f(){
    awiat Promise.reject('chucuole').catch(e => console.log(e));
    return await Promise.resolve('hello world');
}

f().then(v=>console.log(v))
//出错了
//hello world
</code></pre> 
 <h4>错误处理</h4> 
 <pre><code>async function f(){
    await new Promise(function (resolve,reject){
        throw new Error('出错了');
    })
}

f().then(v=>console.log(v)).catch(e=>console.log(e))
</code></pre> 
 <p>上面代码中,async函数f执行后,await后面的Promise对象会抛出一个错误对象,导致catch方法的回调函数被调用。</p> 
 <p>如果有多个await命令,可以统一放在try...catch结构中。</p> 
 <pre><code>async function main() {
  try {
    var val1 = await firstStep();
    var val2 = await secondStep(val1);
    var val3 = await thirdStep(val1, val2);

    console.log('Final: ', val3);
  }
  catch (err) {
    console.error(err);
  }
   return await('hello world');
}
</code></pre> 
 <h4>使用注意点</h4> 
 <ol> 
  <li><p>第一点 await命令后面的Promise对象,运行结构可能是rejected,所以最好把await命令放在try...catch代码块中。</p></li> 
  <li> <p>多个await命令后面的异步操作,如果不存在继发关系,最好让它们同时触发。</p> <p>let foo = await getFoo();<br> let bar = await getBar();</p> <p><strong>上面代码中,getFoo,getBar是两个独立的异步操作(互不依赖),被写成继发关系,这样比较耗时,因为只有getFoo完成后,才会执行getBar,完全可以让它们同时触发。</strong></p> <p><strong>写法一</strong></p> <pre><code class="let"></code></pre> <h6>Promise.all是放在数组里。</h6> <p><strong>写法二</strong></p> <pre><code>let fooPromise = getFoo();

let barPromise = getBar();

let foo = await fooPromise;

let bar = await barPromise;
</code></pre> <h6>写法2的阅读性较高。</h6> </li> 
  <li><p>await命令只能用在async函数之中,如果用在普通函数,就会报错。</p></li> 
  <li><p>如果确实希望多个请求并发执行,可以使用Promise.all方法。当三个请求都会resolved时候,下面两种写法效果相同。</p></li> 
 </ol> 
 <pre><code>async function dbFuc(db) {
  let docs = [{}, {}, {}];
  let promises = docs.map((doc) => db.post(doc));

  let results = await Promise.all(promises);
  console.log(results);
}
</code></pre> 
 <p>or</p> 
 <pre><code>async function dbFuc(db) {
  let docs = [{}, {}, {}];
  let promises = docs.map((doc) => db.post(doc));

  let results = [];
  for (let promise of promises) {
    results.push(await promise);
  }
  console.log(results);
}
</code></pre> 
 <h3>async 函数实现原理。</h3> 
 <p><em>async函数的实现原理,其实async就是Generator函数的语法糖。就是将Generator函数和自动执行器,包装在一个函数里。(Generator,spawn)</em></p> 
</article>
                            </div>
                        </div>
                    </div>
                    <!--PC和WAP自适应版-->
                    <div id="SOHUCS" sid="1190166091352088576"></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/1882902336301494272.htm"
                           title="基于深度学习的鸟类识别系统详解(UI界面 + YOLOv10 + 数据集)" target="_blank">基于深度学习的鸟类识别系统详解(UI界面 + YOLOv10 + 数据集)</a>
                        <span class="text-muted">2025年数学建模美赛</span>
<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/ui/1.htm">ui</a><a class="tag" taget="_blank" href="/search/YOLO/1.htm">YOLO</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/python/1.htm">python</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>引言鸟类识别是计算机视觉领域中一个独具挑战性的任务,尤其是在复杂的自然环境中,识别不同种类的鸟类需要非常强大的模型和丰富的数据集。随着深度学习技术的发展,基于YOLO(YouOnlyLookOnce)系列模型的目标检测系统展现了卓越的性能,特别是在速度和精度上的平衡方面。本博客将详细讲解如何利用YOLOv10模型来构建一个基于深度学习的鸟类识别系统。该系统会结合自定义鸟类数据集,设计一个简洁直观的</div>
                    </li>
                    <li><a href="/article/1882900948800565248.htm"
                           title="PLS_INTEGER:Oracle PL/SQL中的整数类型深度解析" target="_blank">PLS_INTEGER:Oracle PL/SQL中的整数类型深度解析</a>
                        <span class="text-muted">小小野猪</span>
<a class="tag" taget="_blank" href="/search/Oracle/1.htm">Oracle</a><a class="tag" taget="_blank" href="/search/PL%2FSQL%E8%AF%AD%E6%B3%95%E4%B8%8E%E6%A1%88%E4%BE%8B%E6%B7%B1%E5%BA%A6%E8%A7%A3%E6%9E%90/1.htm">PL/SQL语法与案例深度解析</a><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/PLS_INTEGER/1.htm">PLS_INTEGER</a>
                        <div>PLS_INTEGER:OraclePL/SQL中的整数类型深度解析一、概述二、PLS_INTEGER简介三、PLS_INTEGER的优点四、PLS_INTEGER的简单示例示例1:声明并使用PLS_INTEGER变量示例2:在存储过程中使用PLS_INTEGER五、资深应用的代码示例示例3:使用PLS_INTEGER进行复杂的数学计算六、结论七、学习与成长一、概述在Oracle数据库中,PL/S</div>
                    </li>
                    <li><a href="/article/1882898300533796864.htm"
                           title="QT学习小案例" target="_blank">QT学习小案例</a>
                        <span class="text-muted">Liguopi666</span>
<a class="tag" taget="_blank" href="/search/qt/1.htm">qt</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a>
                        <div>dialog.h#ifndefDIALOG_H#defineDIALOG_H#include#include#include#include#includeQT_BEGIN_NAMESPACEnamespaceUi{classDialog;}QT_END_NAMESPACEclassDialog:publicQDialog{Q_OBJECTpublic:Dialog(QWidget*parent=</div>
                    </li>
                    <li><a href="/article/1882891875396939776.htm"
                           title="Nginx与API Gateway:服务路由" target="_blank">Nginx与API Gateway:服务路由</a>
                        <span class="text-muted">墨瑾轩</span>
<a class="tag" taget="_blank" href="/search/%E4%B8%80%E8%B5%B7%E5%AD%A6%E5%AD%A6Nginx%E3%80%90%E4%B8%80%E3%80%91/1.htm">一起学学Nginx【一】</a><a class="tag" taget="_blank" href="/search/nginx/1.htm">nginx</a><a class="tag" taget="_blank" href="/search/gateway/1.htm">gateway</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                        <div>关注墨瑾轩,带你探索编程的奥秘!超萌技术攻略,轻松晋级编程高手技术宝库已备好,就等你来挖掘订阅墨瑾轩,智趣学习不孤单即刻启航,编程之旅更有趣欢迎来到Nginx与APIGateway的世界!今天我们要一起探索的是如何使用Nginx作为APIGateway来实现服务路由。想象一下,Nginx就像是一位超级向导,它能够引导每一位游客(请求)去往他们想去的景点(服务)。引言:APIGateway的魅力在微</div>
                    </li>
                    <li><a href="/article/1882890867686043648.htm"
                           title="MySQL入门学习-索引.删除索引" target="_blank">MySQL入门学习-索引.删除索引</a>
                        <span class="text-muted">守护者170</span>
<a class="tag" taget="_blank" href="/search/MySQL%E5%AD%A6%E4%B9%A0/1.htm">MySQL学习</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%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a>
                        <div>一、索引的概念索引是一种特殊的数据结构,用于加速数据库中数据的检索。它可以提高查询的效率,减少磁盘I/O操作,从而加快数据的访问速度。二、索引的类型MySQL支持多种类型的索引,包括:1.主键索引(PRIMARYKEY):用于唯一标识表中的每行记录。2.唯一索引(UNIQUE):确保表中某一列的值是唯一的。3.普通索引(INDEX):用于加速数据的查询。4.全文索引(FULLTEXT):用于对文本</div>
                    </li>
                    <li><a href="/article/1882887716421562368.htm"
                           title="自动驾驶系统研发系列—追尾风险不再隐形:解密后碰撞预警系统(RCW)的技术与应用" target="_blank">自动驾驶系统研发系列—追尾风险不再隐形:解密后碰撞预警系统(RCW)的技术与应用</a>
                        <span class="text-muted">学步_技术</span>
<a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%8A%A8%E9%A9%BE%E9%A9%B6%E7%B3%BB%E7%BB%9F%E7%A0%94%E5%8F%91/1.htm">自动驾驶系统研发</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%8A%A8%E9%A9%BE%E9%A9%B6/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/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/1.htm">机器学习</a><a class="tag" taget="_blank" href="/search/RCW/1.htm">RCW</a>
                        <div>欢迎来到我的技术小筑,一个专为技术探索者打造的交流空间。在这里,我们不仅分享代码的智慧,还探讨技术的深度与广度。无论您是资深开发者还是技术新手,这里都有一片属于您的天空。让我们在知识的海洋中一起航行,共同成长,探索技术的无限可能。探索专栏:学步_技术的首页——持续学习,不断进步,让学习成为我们共同的习惯,让总结成为我们前进的动力。技术导航:人工智能:深入探讨人工智能领域核心技术。自动驾驶:分享自动</div>
                    </li>
                    <li><a href="/article/1882884944854839296.htm"
                           title="解锁编程智慧:23种设计模式案例分享" target="_blank">解锁编程智慧:23种设计模式案例分享</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>
                        <div>为什么要学习设计模式?你可以把设计模式想象成一些做饭的菜谱。当我们需要做一道菜(开发一个功能)时,如果按照自己的想法随意添加调料(编写代码),很可能做出的菜味道不好(功能不稳定或有bug)。但是,如果我们按照一个成功的菜谱(设计模式)来做,就能更容易地做出美味的菜肴(开发出稳定的功能)。设计模式就是一些在软件开发中经常被使用的“菜谱”,它们可以帮助我们更好地组织代码、提高代码的可读性和可维护性。这</div>
                    </li>
                    <li><a href="/article/1882884061937070080.htm"
                           title="spring cloud之gateway和JWT回顾" target="_blank">spring cloud之gateway和JWT回顾</a>
                        <span class="text-muted">晨的挥霍</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/gateway/1.htm">gateway</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a>
                        <div>最开始学习时,没怎么用,只知道它是网关,当时因为经常使用Nginx做网关,慢慢就淡忘了,最近为了代码整合性,就使用它,非常棒。关于JWT以前也使用,后面调用基本以第三方接口开发的比较多,当时自己的服务,添加自己的规则生成token整合gateway网关1、pomorg.springframework.bootspring-boot-starter-actuatororg.springframewo</div>
                    </li>
                    <li><a href="/article/1882883934514114560.htm"
                           title="C语言青蛙跳台阶问题" target="_blank">C语言青蛙跳台阶问题</a>
                        <span class="text-muted">共享家9527</span>
<a class="tag" taget="_blank" href="/search/c%E8%AF%AD%E8%A8%80/1.htm">c语言</a>
                        <div>在算法学习中,青蛙跳台阶问题是一个经典的递归和动态规划入门案例。它通过简单的场景,揭示了复杂的算法思想,非常适合初学者理解递归与动态规划的核心概念。一、问题描述一只青蛙要跳上n级台阶,每次它可以跳1级或者2级台阶。那么,青蛙跳上n级台阶总共有多少种不同的跳法呢?二、解题思路递归思路:-对于第n级台阶,青蛙到达它的方式要么是从第n-1级台阶跳1级上来,要么是从第n-2级台阶跳2级上来。-所以,跳上n</div>
                    </li>
                    <li><a href="/article/1882883930001043456.htm"
                           title="分享一个基于.NET6包含DDD,ES,CQRS等概念的开源项目" target="_blank">分享一个基于.NET6包含DDD,ES,CQRS等概念的开源项目</a>
                        <span class="text-muted">寒冰屋</span>
<a class="tag" taget="_blank" href="/search/ASP.NET/1.htm">ASP.NET</a><a class="tag" taget="_blank" href="/search/CORE/1.htm">CORE</a><a class="tag" taget="_blank" href="/search/.net6/1.htm">.net6</a><a class="tag" taget="_blank" href="/search/ddd/1.htm">ddd</a><a class="tag" taget="_blank" href="/search/CQRS/1.htm">CQRS</a>
                        <div>当你在学习DDD、CQRS或时间溯源时,除了大量的学习资源(比如书籍和文章)之外,你还接触到了许多概念,这些资源只是在讨论理论问题。这很好,我们知道他们在说什么,但我们如何在一个真正的项目中使用他们呢?我们如何实现这些目标呢?当您试图获取一些代码示例时,通常会发现一些简单的示例通过在仅包含一个实体的域中移动来演示这些复杂的概念,而该域通常包含一个实体,而该实体通常是消费者。这些都是很好的例子,但是</div>
                    </li>
                    <li><a href="/article/1882883677990481920.htm"
                           title="Django学习笔记" target="_blank">Django学习笔记</a>
                        <span class="text-muted">mengmwng</span>
<a class="tag" taget="_blank" href="/search/Django/1.htm">Django</a><a class="tag" taget="_blank" href="/search/django/1.htm">django</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a>
                        <div>学习视频来源:最新Python的web开发全家桶代码仓库:https://gitee.com/m_engmeng/django-learning1.创建项目Django中项目会有一些默认的文件和文件夹1.1在终端打开终端进入某个目录(项目放在哪里)输入命令——创建项目(最后一个参数是项目名)django-adminstartprojectmysite继续输入——创建app(最后一个参数是app所处</div>
                    </li>
                    <li><a href="/article/1882879138520428544.htm"
                           title="python3+TensorFlow 2.x 基础学习(一)" target="_blank">python3+TensorFlow 2.x 基础学习(一)</a>
                        <span class="text-muted">刀客123</span>
<a class="tag" taget="_blank" href="/search/python%E5%AD%A6%E4%B9%A0/1.htm">python学习</a><a class="tag" taget="_blank" href="/search/tensorflow/1.htm">tensorflow</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a>
                        <div>目录TensorFlow2.x基础1、安装TensorFlow2.x2、TensorFlow2.x基础概念2、1EagerExecution2、2TensorFlow张量(Tensor)3、使用Keras构建神经网络模型3、1构建Sequential模型3、2编译模型1、Optimizer(优化器)2、Loss(损失函数)3、Metrics(评估指标)3、3训练模型3、4评估模型3、5预测4、使用</div>
                    </li>
                    <li><a href="/article/1882878884467240960.htm"
                           title="Bootstrap Blazor 组件库 Table 组件 OnQueryAsync 查询 EF Core 键集分页、偏移分页 使用备忘" target="_blank">Bootstrap Blazor 组件库 Table 组件 OnQueryAsync 查询 EF Core 键集分页、偏移分页 使用备忘</a>
                        <span class="text-muted">cqths</span>
<a class="tag" taget="_blank" href="/search/EF/1.htm">EF</a><a class="tag" taget="_blank" href="/search/Core/1.htm">Core</a><a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/Blazor/1.htm">Blazor</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/App/1.htm">App</a><a class="tag" taget="_blank" href="/search/bootstrap/1.htm">bootstrap</a><a class="tag" taget="_blank" href="/search/.net/1.htm">.net</a><a class="tag" taget="_blank" href="/search/web/1.htm">web</a><a class="tag" taget="_blank" href="/search/app/1.htm">app</a>
                        <div>privatelonglastId=0,firstId=0;privatelonglastPageIndex=0;privateintlastPageItems=0;privateasyncTask>OnQueryAsync(QueryPageOptionsoptions){IEnumerableitems;//不是翻页:刷新、改变每页条数、过虑,此时,清除跟踪(清除缓存)if(!options.</div>
                    </li>
                    <li><a href="/article/1882878881824829440.htm"
                           title="Entity Framework Core(EF Core) 跟踪 Tracker 缓存刷新问题" target="_blank">Entity Framework Core(EF Core) 跟踪 Tracker 缓存刷新问题</a>
                        <span class="text-muted">cqths</span>
<a class="tag" taget="_blank" href="/search/EF/1.htm">EF</a><a class="tag" taget="_blank" href="/search/Core/1.htm">Core</a><a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/Blazor/1.htm">Blazor</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/App/1.htm">App</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/c%23/1.htm">c#</a><a class="tag" taget="_blank" href="/search/.net/1.htm">.net</a><a class="tag" taget="_blank" href="/search/web/1.htm">web</a><a class="tag" taget="_blank" href="/search/app/1.htm">app</a>
                        <div>一、问题场景UserA、UserB分别打开页面、使用DbContext在页面中显示相同数据列表。然后UserA在列表中增加一条记录、修改一条记录,使用DbContext.SaveChangesAsync()更新数据库。此时,UserB刷新数据列表,只会加载UserA新增加的记录,而修改的记录不会刷新显示修改结果。如果UserB注销或者关闭浏览器重新打开页面,则会显示所有变化。二、问题原因分析EFC</div>
                    </li>
                    <li><a href="/article/1882876487770632192.htm"
                           title="微积分公式大全" target="_blank">微积分公式大全</a>
                        <span class="text-muted">.NET跨平台</span>
<a class="tag" taget="_blank" href="/search/%E4%B9%A6%E7%B1%8D/1.htm">书籍</a><a class="tag" taget="_blank" href="/search/%E5%BE%AE%E7%A7%AF%E5%88%86/1.htm">微积分</a>
                        <div>在微积分的进阶学习中,会涉及许多更加复杂和深奥的公式与定理。以下是一些常见的复杂公式和定理,涵盖了多变量微积分、无穷级数、积分变换、极限等方面:1.多变量微积分偏导数和梯度偏导数:∂∂xf(x,y,z)\frac{\partial}{\partialx}f(x,y,z)∂x∂f(x,y,z)是函数f(x,y,z)f(x,y,z)f(x,y,z)对变量xxx的偏导数。梯度(Gradient):∇f=</div>
                    </li>
                    <li><a href="/article/1882871315824701440.htm"
                           title="自动驾驶系列—自动驾驶MCU架构全方位解析:从单核到多核的选型指南与应用实例" target="_blank">自动驾驶系列—自动驾驶MCU架构全方位解析:从单核到多核的选型指南与应用实例</a>
                        <span class="text-muted">学步_技术</span>
<a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%8A%A8%E9%A9%BE%E9%A9%B6/1.htm">自动驾驶</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%8A%A8%E9%A9%BE%E9%A9%B6/1.htm">自动驾驶</a><a class="tag" taget="_blank" href="/search/%E5%8D%95%E7%89%87%E6%9C%BA/1.htm">单片机</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/MCU/1.htm">MCU</a>
                        <div>欢迎来到我的技术小筑,一个专为技术探索者打造的交流空间。在这里,我们不仅分享代码的智慧,还探讨技术的深度与广度。无论您是资深开发者还是技术新手,这里都有一片属于您的天空。让我们在知识的海洋中一起航行,共同成长,探索技术的无限可能。探索专栏:学步_技术的首页——持续学习,不断进步,让学习成为我们共同的习惯,让总结成为我们前进的动力。技术导航:人工智能:深入探讨人工智能领域核心技术。自动驾驶:分享自动</div>
                    </li>
                    <li><a href="/article/1882868164346310656.htm"
                           title="经典卷积网络算法-VGG16" target="_blank">经典卷积网络算法-VGG16</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%E5%AD%A6%E4%B9%A0%E8%BF%9B%E9%98%B6/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/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C/1.htm">神经网络</a><a class="tag" taget="_blank" href="/search/%E5%9B%BE%E5%83%8F%E8%AF%86%E5%88%AB/1.htm">图像识别</a>
                        <div>目录前言TensorFlow2.x中的tf.keras.applications使用示例主要参数迁移学习TensorFlow2.x的优势VGG16前置理解:全连接池化层具体作用与1x1池化的区别使用场景示例与1x1池化的对比总结VGG16的原始结构全局平均池化层在VGG16中的应用1.替代全连接层2.优势修改后的VGG16结构示例修改后的模型结构对比原始VGG16和修改后的模型使用场景总结前言ti</div>
                    </li>
                    <li><a href="/article/1882866270408339456.htm"
                           title="python学opencv|读取图像(四十四)原理探究:bitwise_and()函数实现图像按位与运算" target="_blank">python学opencv|读取图像(四十四)原理探究:bitwise_and()函数实现图像按位与运算</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/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/opencv/1.htm">opencv</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%A7%86%E8%A7%89/1.htm">计算机视觉</a>
                        <div>【1】引言前序学习进程中,已经掌握了两张图片按位与操作的基本技巧:python学opencv|读取图像(四十三)使用cv2.bitwise_and()函数实现图像按位与运算-CSDN博客【2】cv2.bitwise_and()函数实现图像按位与运算原理【2.1】图像运算在前述学习过程中,我们只是使用了cv2.bitwise_and()函数,其实未曾深入探究其根本原理。为实现原理探索,直接使用彩色图</div>
                    </li>
                    <li><a href="/article/1882857948166811648.htm"
                           title="2025数学建模美赛——神经网络预测模型详解" target="_blank">2025数学建模美赛——神经网络预测模型详解</a>
                        <span class="text-muted">前程算法屋</span>
<a class="tag" taget="_blank" href="/search/%E6%95%B0%E5%AD%A6%E5%BB%BA%E6%A8%A1%E6%95%99%E7%A8%8B/1.htm">数学建模教程</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E5%AD%A6%E5%BB%BA%E6%A8%A1/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/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a>
                        <div>2025数学建模美赛——神经网络预测模型详解一、神经网络预测模型基础1.1、神经网络概述神经网络是一种模拟人脑神经元工作方式的计算模型,它由大量的节点(或称为神经元)组成,这些节点通过连接权重相互连接。这种模型能够进行复杂的非线性数据处理,通过调整连接权重,可以从数据中学习到复杂的模式和关系。神经网络的基本结构包括输入层、隐藏层和输出层。输入层接收外部数据,隐藏层对数据进行处理,输出层则给出模型的</div>
                    </li>
                    <li><a href="/article/1882857569349857280.htm"
                           title="【python学习】一篇带你玩转 Python JSON 操作的终极指南:dump、dumps、load、loads 全解析" target="_blank">【python学习】一篇带你玩转 Python JSON 操作的终极指南:dump、dumps、load、loads 全解析</a>
                        <span class="text-muted">NLP仙人</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><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/json/1.htm">json</a>
                        <div>在现代编程中,JSON(JavaScriptObjectNotation)是一种广泛使用的数据交换格式。在Python中,处理JSON数据是一项常见的任务,Python提供了强大的json模块来轻松地进行JSON编码和解码。本文将详细介绍json.dump、json.dumps、json.load和json.loads四个函数的用法,并通过代码示例帮助你掌握这些工具。json.dump和json.</div>
                    </li>
                    <li><a href="/article/1882857570029334528.htm"
                           title="【含文档+PPT+源码】基于小程序的智能停车管理系统设计与开发" target="_blank">【含文档+PPT+源码】基于小程序的智能停车管理系统设计与开发</a>
                        <span class="text-muted">小咕聊编程</span>
<a class="tag" taget="_blank" href="/search/%E5%B0%8F%E7%A8%8B%E5%BA%8F/1.htm">小程序</a>
                        <div>项目介绍本课程演示的是一款基于小程序的智能停车管理系统设计与开发,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。1.包含:项目源码、项目文档、数据库脚本、软件工具等所有资料2.带你从零开始部署运行本套系统3.该项目附带的源码资料可作为毕设使用智能停车管理系统的重要核心功能包括管理注册用户、管理停车场公告、车辆信息管理、车位信息管理、车辆入库、车辆出库、数据统计、查找附</div>
                    </li>
                    <li><a href="/article/1882854039788515328.htm"
                           title="Linux Vim最全面的教程" target="_blank">Linux Vim最全面的教程</a>
                        <span class="text-muted">109702008</span>
<a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B/1.htm">编程</a><a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/linux%E7%B3%BB%E7%BB%9F/1.htm">linux系统</a><a class="tag" taget="_blank" href="/search/vim/1.htm">vim</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a>
                        <div>GPT-4o(OpenAI)学习和掌握Vim可能需要一些时间和耐心,但一旦精通,它将成为一个非常强大的文本编辑工具。以下是一个涵盖Vim各个方面的全面教程:1.基础概念-启动和退出:-启动Vim:vimfilename-普通模式下退出:`:q`(无修改)或:q!(放弃修改)-保存并退出:`:wq`或:x-只保存:`:w`-模式:-普通模式(Normalmode)-插入模式(Insertmode):</div>
                    </li>
                    <li><a href="/article/1882851643637166080.htm"
                           title="25.1.24学习内容" target="_blank">25.1.24学习内容</a>
                        <span class="text-muted">The_cute_cat</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%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a>
                        <div>A-美国血统AmericanHeritageDescription农夫约翰非常认真地对待他的奶牛们的血统。然而他不是一个真正优秀的记帐员。他把他的奶牛们的家谱作成二叉树,并且把二叉树以更线性的“树的中序遍历”和“树的前序遍历”的符号加以记录而不是用图形的方法。你的任务是在被给予奶牛家谱的“树中序遍历”和“树前序遍历”的符号后,创建奶牛家谱的“树的后序遍历”的符号。每一头奶牛的姓名被译为一个唯一的字</div>
                    </li>
                    <li><a href="/article/1882849501660639232.htm"
                           title="[Python从零到壹] 七十七.图像识别及经典案例篇之目标检测入门普及和ImageAI对象检测详解" target="_blank">[Python从零到壹] 七十七.图像识别及经典案例篇之目标检测入门普及和ImageAI对象检测详解</a>
                        <span class="text-muted">Eastmount</span>
<a class="tag" taget="_blank" href="/search/Python%E4%BB%8E%E9%9B%B6%E5%88%B0%E5%A3%B9/1.htm">Python从零到壹</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E7%9B%AE%E6%A0%87%E6%A3%80%E6%B5%8B/1.htm">目标检测</a><a class="tag" taget="_blank" href="/search/ImageAI/1.htm">ImageAI</a><a class="tag" taget="_blank" href="/search/%E5%9B%BE%E5%83%8F%E6%98%AF%E8%A2%AB/1.htm">图像是被</a><a class="tag" taget="_blank" href="/search/%E5%9F%BA%E7%A1%80%E7%B3%BB%E5%88%97/1.htm">基础系列</a>
                        <div>欢迎大家来到“Python从零到壹”,在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界。所有文章都将结合案例、代码和作者的经验讲解,真心想把自己近十年的编程经验分享给大家,希望对您有所帮助,文章中不足之处也请海涵。Python系列整体框架包括基础语法10篇、网络爬虫30篇、可视化分析10篇、机器学习20篇、大数据分析20篇、图像识别30篇、人工智</div>
                    </li>
                    <li><a href="/article/1882845468724097024.htm"
                           title="2024 年度学习总结" target="_blank">2024 年度学习总结</a>
                        <span class="text-muted">Sunrise_angel</span>
<a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a>
                        <div>目录1.前言2.csdn对于我的意义3.写博客的初衷3.1现在的想法4.写博客的意义5.关于生活和博客创作5.1写博客较于纸质笔记的优势6.致20251.前言不知不觉,来到csdn已经快一年了,在这一年中,我通过csdn学习到了很多知识,结识了很多的良师益友.最重要的是,在技术上,我有了质的飞跃.2.csdn对于我的意义csdn,对我来说不仅是一个学习平台,更记录了我在2024的成长历程,可以说,</div>
                    </li>
                    <li><a href="/article/1882829828676186112.htm"
                           title="MyBatis-Plus 学习笔记-条件构造器(不想写sql)" target="_blank">MyBatis-Plus 学习笔记-条件构造器(不想写sql)</a>
                        <span class="text-muted">咕德猫宁丶</span>
<a class="tag" taget="_blank" href="/search/Mybatis-plus%E5%AD%A6%E4%B9%A0/1.htm">Mybatis-plus学习</a><a class="tag" taget="_blank" href="/search/mybatis/1.htm">mybatis</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/boot/1.htm">boot</a>
                        <div>MyBatis-Plus提供了一套强大的条件构造器(Wrapper),用于构建复杂的数据库查询条件。Wrapper类允许开发者以链式调用的方式构造查询条件,无需编写繁琐的SQL语句,从而提高开发效率并减少SQL注入的风险。在MyBatis-Plus中,Wrapper类是构建查询和更新条件的核心工具。以下是主要的Wrapper类及其功能:AbstractWrapper:这是一个抽象基类,提供了所有W</div>
                    </li>
                    <li><a href="/article/1882827181130838016.htm"
                           title="Abaqus中批量对节点施加集中力荷载" target="_blank">Abaqus中批量对节点施加集中力荷载</a>
                        <span class="text-muted">有限元术仿真</span>
<a class="tag" taget="_blank" href="/search/Abaqus%E4%BA%8C%E6%AC%A1%E5%BC%80%E5%8F%91/1.htm">Abaqus二次开发</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a>
                        <div>笔者为科研界最后的摆烂王,目前利用python代码对Abaqus进行二次开发尚在学习中。欢迎各位摆烂的仁人志士们和我一起摆烂!ps:搞什么科研,如果不是被逼无奈,谁要搞科研!先前撰写了一篇关于Abaqus批量施加荷载(位移)的文章,但是很多哥哥们私信小弟的问题,大都是需要施加集中力或者其他节点力。所以昨天也是抽空写了一下,关于Abaqus批量施加集中力荷载在任一节点上的python脚本。在这段过程</div>
                    </li>
                    <li><a href="/article/1882816976296931328.htm"
                           title="C++深入学习string类成员函数(4):字符串的操作" target="_blank">C++深入学习string类成员函数(4):字符串的操作</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%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>引言在c++中,std::string提供了许多字符串操作符函数,让我们能够秦松驾驭文本数据,而与此同时,非成员函数的重载更是为string类增添了别样的魅力,输入输出流的重载让我们像处理基本类型的数据一样方便地读取和输出字符串,连接操作符的重载使得字符串的拼接变得简洁直观。在这篇博客中,我们将一同深入剖析C++中string类的字符串操作符和非成员函数的重载,为大家在编程之旅中增添一份有力的武器</div>
                    </li>
                    <li><a href="/article/1882814580518875136.htm"
                           title="自动控制原理实验:解锁典型环节时域响应的奥秘" target="_blank">自动控制原理实验:解锁典型环节时域响应的奥秘</a>
                        <span class="text-muted">戒了9</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/%E7%BD%91%E7%BB%9C/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/%E8%AF%BE%E7%A8%8B%E8%AE%BE%E8%AE%A1/1.htm">课程设计</a>
                        <div>实验背景与目的在自动控制原理的学习旅程中,实验环节犹如一把钥匙,为我们打开了通往深入理解和实际应用的大门。它不仅仅是理论知识的简单验证,更是将抽象概念转化为实际认知的关键桥梁。通过实验,我们能够在实践中探索自动控制的奥秘,将书本上的公式和原理与真实的系统行为联系起来,从而深化对知识的理解,提升解决实际问题的能力。本次实验聚焦于典型环节的时域响应,这是自动控制领域中至关重要的研究内容。典型环节作为构</div>
                    </li>
                    <li><a href="/article/1882812813978693632.htm"
                           title="清除redux数据(hooks写法)" target="_blank">清除redux数据(hooks写法)</a>
                        <span class="text-muted">Sun_小杰杰哇</span>
<a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/React/1.htm">React</a><a class="tag" taget="_blank" href="/search/web/1.htm">web</a><a class="tag" taget="_blank" href="/search/%E6%A1%86%E6%9E%B6/1.htm">框架</a><a class="tag" taget="_blank" href="/search/redux/1.htm">redux</a><a class="tag" taget="_blank" href="/search/react/1.htm">react</a><a class="tag" taget="_blank" href="/search/%E6%B8%85%E9%99%A4/1.htm">清除</a><a class="tag" taget="_blank" href="/search/web/1.htm">web</a>
                        <div>清除redux数据的场景A页面初始化调用A接口,希望在当前页面生效,跳转页面不保存数据,但redux中已经存有历史数据,所以在页面销毁时清除redux数据。A页面请求A接口useEffect(()=>{initData();},[orderCode]);constinitData=async()=>{setLoading(true);constaction=awaitActions.getData</div>
                    </li>
                                <li><a href="/article/77.htm"
                                       title="算法 单链的创建与删除" target="_blank">算法 单链的创建与删除</a>
                                    <span class="text-muted">换个号韩国红果果</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>
先创建结构体
struct student {
	int data;
	//int tag;//标记这是第几个
	struct student *next;
};
//  addone 用于将一个数插入已从小到大排好序的链中
struct student *addone(struct student *h,int x){
		if(h==NULL)  //??????
			</div>
                                </li>
                                <li><a href="/article/204.htm"
                                       title="《大型网站系统与Java中间件实践》第2章读后感" target="_blank">《大型网站系统与Java中间件实践》第2章读后感</a>
                                    <span class="text-muted">白糖_</span>
<a class="tag" taget="_blank" href="/search/java%E4%B8%AD%E9%97%B4%E4%BB%B6/1.htm">java中间件</a>
                                    <div>       断断续续花了两天时间试读了《大型网站系统与Java中间件实践》的第2章,这章总述了从一个小型单机构建的网站发展到大型网站的演化过程---整个过程会遇到很多困难,但每一个屏障都会有解决方案,最终就是依靠这些个解决方案汇聚到一起组成了一个健壮稳定高效的大型系统。 
  
       看完整章内容,</div>
                                </li>
                                <li><a href="/article/331.htm"
                                       title="zeus持久层spring事务单元测试" target="_blank">zeus持久层spring事务单元测试</a>
                                    <span class="text-muted">deng520159</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/DAO/1.htm">DAO</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/jdbc/1.htm">jdbc</a>
                                    <div>今天把zeus事务单元测试放出来,让大家指出他的毛病, 
1.ZeusTransactionTest.java 单元测试 
  
package com.dengliang.zeus.webdemo.test;

import java.util.ArrayList;
import java.util.List;

import org.junit.Test;
import </div>
                                </li>
                                <li><a href="/article/458.htm"
                                       title="Rss 订阅 开发" target="_blank">Rss 订阅 开发</a>
                                    <span class="text-muted">周凡杨</span>
<a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/xml/1.htm">xml</a><a class="tag" taget="_blank" href="/search/%E8%AE%A2%E9%98%85/1.htm">订阅</a><a class="tag" taget="_blank" href="/search/rss/1.htm">rss</a><a class="tag" taget="_blank" href="/search/%E8%A7%84%E8%8C%83/1.htm">规范</a>
                                    <div>  
              RSS是 Really Simple Syndication的缩写(对rss2.0而言,是这三个词的缩写,对rss1.0而言则是RDF Site Summary的缩写,1.0与2.0走的是两个体系)。 
  
RSS</div>
                                </li>
                                <li><a href="/article/585.htm"
                                       title="分页查询实现" target="_blank">分页查询实现</a>
                                    <span class="text-muted">g21121</span>
<a class="tag" taget="_blank" href="/search/%E5%88%86%E9%A1%B5%E6%9F%A5%E8%AF%A2/1.htm">分页查询</a>
                                    <div>在查询列表时我们常常会用到分页,分页的好处就是减少数据交换,每次查询一定数量减少数据库压力等等。 
按实现形式分前台分页和服务器分页: 
前台分页就是一次查询出所有记录,在页面中用js进行虚拟分页,这种形式在数据量较小时优势比较明显,一次加载就不必再访问服务器了,但当数据量较大时会对页面造成压力,传输速度也会大幅下降。 
服务器分页就是每次请求相同数量记录,按一定规则排序,每次取一定序号直接的数据</div>
                                </li>
                                <li><a href="/article/712.htm"
                                       title="spring jms异步消息处理" target="_blank">spring jms异步消息处理</a>
                                    <span class="text-muted">510888780</span>
<a class="tag" taget="_blank" href="/search/jms/1.htm">jms</a>
                                    <div>spring JMS对于异步消息处理基本上只需配置下就能进行高效的处理。其核心就是消息侦听器容器,常用的类就是DefaultMessageListenerContainer。该容器可配置侦听器的并发数量,以及配合MessageListenerAdapter使用消息驱动POJO进行消息处理。且消息驱动POJO是放入TaskExecutor中进行处理,进一步提高性能,减少侦听器的阻塞。具体配置如下: </div>
                                </li>
                                <li><a href="/article/839.htm"
                                       title="highCharts柱状图" target="_blank">highCharts柱状图</a>
                                    <span class="text-muted">布衣凌宇</span>
<a class="tag" taget="_blank" href="/search/hightCharts/1.htm">hightCharts</a><a class="tag" taget="_blank" href="/search/%E6%9F%B1%E5%9B%BE/1.htm">柱图</a>
                                    <div>第一步:导入 exporting.js,grid.js,highcharts.js;第二步:写controller 
  
@Controller@RequestMapping(value="${adminPath}/statistick")public class StatistickController {  private UserServi</div>
                                </li>
                                <li><a href="/article/966.htm"
                                       title="我的spring学习笔记2-IoC(反向控制 依赖注入)" target="_blank">我的spring学习笔记2-IoC(反向控制 依赖注入)</a>
                                    <span class="text-muted">aijuans</span>
<a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/mvc/1.htm">mvc</a><a class="tag" taget="_blank" href="/search/Spring+%E6%95%99%E7%A8%8B/1.htm">Spring 教程</a><a class="tag" taget="_blank" href="/search/spring3+%E6%95%99%E7%A8%8B/1.htm">spring3 教程</a><a class="tag" taget="_blank" href="/search/Spring+%E5%85%A5%E9%97%A8/1.htm">Spring 入门</a>
                                    <div>IoC(反向控制 依赖注入)这是Spring提出来了,这也是Spring一大特色。这里我不用多说,我们看Spring教程就可以了解。当然我们不用Spring也可以用IoC,下面我将介绍不用Spring的IoC。 
IoC不是框架,她是java的技术,如今大多数轻量级的容器都会用到IoC技术。这里我就用一个例子来说明: 
如:程序中有 Mysql.calss 、Oracle.class 、SqlSe</div>
                                </li>
                                <li><a href="/article/1093.htm"
                                       title="TLS java简单实现" target="_blank">TLS java简单实现</a>
                                    <span class="text-muted">antlove</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/ssl/1.htm">ssl</a><a class="tag" taget="_blank" href="/search/keystore/1.htm">keystore</a><a class="tag" taget="_blank" href="/search/tls/1.htm">tls</a><a class="tag" taget="_blank" href="/search/secure/1.htm">secure</a>
                                    <div>  
1. SSLServer.java 
package ssl;

import java.io.FileInputStream;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.security.KeyStore;
import </div>
                                </li>
                                <li><a href="/article/1220.htm"
                                       title="Zip解压压缩文件" target="_blank">Zip解压压缩文件</a>
                                    <span class="text-muted">百合不是茶</span>
<a class="tag" taget="_blank" href="/search/Zip%E6%A0%BC%E5%BC%8F%E8%A7%A3%E5%8E%8B/1.htm">Zip格式解压</a><a class="tag" taget="_blank" href="/search/Zip%E6%B5%81%E7%9A%84%E4%BD%BF%E7%94%A8/1.htm">Zip流的使用</a><a class="tag" taget="_blank" href="/search/%E6%96%87%E4%BB%B6%E8%A7%A3%E5%8E%8B/1.htm">文件解压</a>
                                    <div>  
 ZIP文件的解压缩实质上就是从输入流中读取数据。Java.util.zip包提供了类ZipInputStream来读取ZIP文件,下面的代码段创建了一个输入流来读取ZIP格式的文件; 
ZipInputStream in = new ZipInputStream(new FileInputStream(zipFileName)); 
  
  
&n</div>
                                </li>
                                <li><a href="/article/1347.htm"
                                       title="underscore.js 学习(一)" target="_blank">underscore.js 学习(一)</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/underscore/1.htm">underscore</a>
                                    <div>        工作中需要用到underscore.js,发现这是一个包括了很多基本功能函数的js库,里面有很多实用的函数。而且它没有扩展 javascript的原生对象。主要涉及对Collection、Object、Array、Function的操作。       学</div>
                                </li>
                                <li><a href="/article/1474.htm"
                                       title="java jvm常用命令工具——jstatd命令(Java Statistics Monitoring Daemon)" target="_blank">java jvm常用命令工具——jstatd命令(Java Statistics Monitoring Daemon)</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/jvm/1.htm">jvm</a><a class="tag" taget="_blank" href="/search/jstatd/1.htm">jstatd</a>
                                    <div>1.介绍 
        jstatd是一个基于RMI(Remove Method Invocation)的服务程序,它用于监控基于HotSpot的JVM中资源的创建及销毁,并且提供了一个远程接口允许远程的监控工具连接到本地的JVM执行命令。 
        jstatd是基于RMI的,所以在运行jstatd的服务</div>
                                </li>
                                <li><a href="/article/1601.htm"
                                       title="【Spring框架三】Spring常用注解之Transactional" target="_blank">【Spring框架三】Spring常用注解之Transactional</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/transactional/1.htm">transactional</a>
                                    <div>Spring可以通过注解@Transactional来为业务逻辑层的方法(调用DAO完成持久化动作)添加事务能力,如下是@Transactional注解的定义: 
  
/*
 * Copyright 2002-2010 the original author or authors.
 *
 * Licensed under the Apache License, Version </div>
                                </li>
                                <li><a href="/article/1728.htm"
                                       title="我(程序员)的前进方向" target="_blank">我(程序员)的前进方向</a>
                                    <span class="text-muted">bitray</span>
<a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E5%91%98/1.htm">程序员</a>
                                    <div>作为一个普通的程序员,我一直游走在java语言中,java也确实让我有了很多的体会.不过随着学习的深入,java语言的新技术产生的越来越多,从最初期的javase,我逐渐开始转变到ssh,ssi,这种主流的码农,.过了几天为了解决新问题,webservice的大旗也被我祭出来了,又过了些日子jms架构的activemq也开始必须学习了.再后来开始了一系列技术学习,osgi,restful.....</div>
                                </li>
                                <li><a href="/article/1855.htm"
                                       title="nginx lua开发经验总结" target="_blank">nginx lua开发经验总结</a>
                                    <span class="text-muted">ronin47</span>

                                    <div>使用nginx lua已经两三个月了,项目接开发完毕了,这几天准备上线并且跟高德地图对接。回顾下来lua在项目中占得必中还是比较大的,跟PHP的占比差不多持平了,因此在开发中遇到一些问题备忘一下  1:content_by_lua中代码容量有限制,一般不要写太多代码,正常编写代码一般在100行左右(具体容量没有细心测哈哈,在4kb左右),如果超出了则重启nginx的时候会报 too long pa</div>
                                </li>
                                <li><a href="/article/1982.htm"
                                       title="java-66-用递归颠倒一个栈。例如输入栈{1,2,3,4,5},1在栈顶。颠倒之后的栈为{5,4,3,2,1},5处在栈顶" target="_blank">java-66-用递归颠倒一个栈。例如输入栈{1,2,3,4,5},1在栈顶。颠倒之后的栈为{5,4,3,2,1},5处在栈顶</a>
                                    <span class="text-muted">bylijinnan</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                                    <div>
import java.util.Stack;

public class ReverseStackRecursive {

	/**
	 * Q 66.颠倒栈。
	 * 题目:用递归颠倒一个栈。例如输入栈{1,2,3,4,5},1在栈顶。
	 * 颠倒之后的栈为{5,4,3,2,1},5处在栈顶。
	 *1. Pop the top element
	 *2. Revers</div>
                                </li>
                                <li><a href="/article/2109.htm"
                                       title="正确理解Linux内存占用过高的问题" target="_blank">正确理解Linux内存占用过高的问题</a>
                                    <span class="text-muted">cfyme</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a>
                                    <div>Linux开机后,使用top命令查看,4G物理内存发现已使用的多大3.2G,占用率高达80%以上: 
Mem:   3889836k total,  3341868k used,   547968k free,   286044k buffers 
Swap:  6127608k total,&nb</div>
                                </li>
                                <li><a href="/article/2236.htm"
                                       title="[JWFD开源工作流]当前流程引擎设计的一个急需解决的问题" target="_blank">[JWFD开源工作流]当前流程引擎设计的一个急需解决的问题</a>
                                    <span class="text-muted">comsci</span>
<a class="tag" taget="_blank" href="/search/%E5%B7%A5%E4%BD%9C%E6%B5%81/1.htm">工作流</a>
                                    <div> 
 
     当我们的流程引擎进入IRC阶段的时候,当循环反馈模型出现之后,每次循环都会导致一大堆节点内存数据残留在系统内存中,循环的次数越多,这些残留数据将导致系统内存溢出,并使得引擎崩溃。。。。。。 
 
      而解决办法就是利用汇编语言或者其它系统编程语言,在引擎运行时,把这些残留数据清除掉。</div>
                                </li>
                                <li><a href="/article/2363.htm"
                                       title="自定义类的equals函数" target="_blank">自定义类的equals函数</a>
                                    <span class="text-muted">dai_lm</span>
<a class="tag" taget="_blank" href="/search/equals/1.htm">equals</a>
                                    <div>仅作笔记使用 
 

public class VectorQueue {

	private final Vector<VectorItem> queue;

	private class VectorItem {
		private final Object item;
		private final int quantity;

		public VectorI</div>
                                </li>
                                <li><a href="/article/2490.htm"
                                       title="Linux下安装R语言" target="_blank">Linux下安装R语言</a>
                                    <span class="text-muted">datageek</span>
<a class="tag" taget="_blank" href="/search/R%E8%AF%AD%E8%A8%80+linux/1.htm">R语言 linux</a>
                                    <div>命令如下:sudo gedit  /etc/apt/sources.list1、deb http://mirrors.ustc.edu.cn/CRAN/bin/linux/ubuntu/ precise/ 2、deb http://dk.archive.ubuntu.com/ubuntu hardy universesudo apt-key adv --keyserver ke</div>
                                </li>
                                <li><a href="/article/2617.htm"
                                       title="如何修改mysql 并发数(连接数)最大值" target="_blank">如何修改mysql 并发数(连接数)最大值</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a>
                                    <div>MySQL的连接数最大值跟MySQL没关系,主要看系统和业务逻辑了 
  
方法一:进入MYSQL安装目录 打开MYSQL配置文件 my.ini 或 my.cnf查找 max_connections=100 修改为 max_connections=1000 服务里重起MYSQL即可 
  方法二:MySQL的最大连接数默认是100客户端登录:mysql -uusername -ppass</div>
                                </li>
                                <li><a href="/article/2744.htm"
                                       title="单一功能原则" target="_blank">单一功能原则</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1%E7%9A%84%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1/1.htm">面向对象的程序设计</a><a class="tag" taget="_blank" href="/search/%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1/1.htm">软件设计</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B%E5%8E%9F%E5%88%99/1.htm">编程原则</a>
                                    <div>单一功能原则[
编辑]            
SOLID    原则    
 
 单一功能原则 
 开闭原则 
 Liskov代换原则 
 接口隔离原则 
 依赖反转原则 
      
 
 查   
 论   
 编 
      
在面向对象编程领域中,单一功能原则(Single responsibility principle)规定每个类都应该有</div>
                                </li>
                                <li><a href="/article/2871.htm"
                                       title="POJO、VO和JavaBean区别和联系" target="_blank">POJO、VO和JavaBean区别和联系</a>
                                    <span class="text-muted">fanmingxing</span>
<a class="tag" taget="_blank" href="/search/VO/1.htm">VO</a><a class="tag" taget="_blank" href="/search/POJO/1.htm">POJO</a><a class="tag" taget="_blank" href="/search/javabean/1.htm">javabean</a>
                                    <div>POJO和JavaBean是我们常见的两个关键字,一般容易混淆,POJO全称是Plain Ordinary Java Object / Plain Old Java Object,中文可以翻译成:普通Java类,具有一部分getter/setter方法的那种类就可以称作POJO,但是JavaBean则比POJO复杂很多,JavaBean是一种组件技术,就好像你做了一个扳子,而这个扳子会在很多地方被</div>
                                </li>
                                <li><a href="/article/2998.htm"
                                       title="SpringSecurity3.X--LDAP:AD配置" target="_blank">SpringSecurity3.X--LDAP:AD配置</a>
                                    <span class="text-muted">hanqunfeng</span>
<a class="tag" taget="_blank" href="/search/SpringSecurity/1.htm">SpringSecurity</a>
                                    <div>前面介绍过基于本地数据库验证的方式,参考http://hanqunfeng.iteye.com/blog/1155226,这里说一下如何修改为使用AD进行身份验证【只对用户名和密码进行验证,权限依旧存储在本地数据库中】。 
  
将配置文件中的如下部分删除: 
  <!-- 认证管理器,使用自定义的UserDetailsService,并对密码采用md5加密-->  
  </div>
                                </li>
                                <li><a href="/article/3125.htm"
                                       title="mac mysql 修改密码" target="_blank">mac mysql 修改密码</a>
                                    <span class="text-muted">IXHONG</span>
<a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a>
                                    <div>$ sudo /usr/local/mysql/bin/mysqld_safe –user=root & //启动MySQL(也可以通过偏好设置面板来启动)$ sudo /usr/local/mysql/bin/mysqladmin -uroot password yourpassword //设置MySQL密码(注意,这是第一次MySQL密码为空的时候的设置命令,如果是修改密码,还需在-</div>
                                </li>
                                <li><a href="/article/3252.htm"
                                       title="设计模式--抽象工厂模式" target="_blank">设计模式--抽象工厂模式</a>
                                    <span class="text-muted">kerryg</span>
<a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a>
                                    <div>抽象工厂模式: 
 
    工厂模式有一个问题就是,类的创建依赖于工厂类,也就是说,如果想要拓展程序,必须对工厂类进行修改,这违背了闭包原则。我们采用抽象工厂模式,创建多个工厂类,这样一旦需要增加新的功能,直接增加新的工厂类就可以了,不需要修改之前的代码。 
 
    总结:这个模式的好处就是,如果想增加一个功能,就需要做一个实现类,</div>
                                </li>
                                <li><a href="/article/3379.htm"
                                       title="评"高中女生军训期跳楼”" target="_blank">评"高中女生军训期跳楼”</a>
                                    <span class="text-muted">nannan408</span>

                                    <div>   首先,先抛出我的观点,各位看官少点砖头。那就是,中国的差异化教育必须做起来。 
   孔圣人有云:有教无类。不同类型的人,都应该有对应的教育方法。目前中国的一体化教育,不知道已经扼杀了多少创造性人才。我们出不了爱迪生,出不了爱因斯坦,很大原因,是我们的培养思路错了,我们是第一要“顺从”。如果不顺从,我们的学校,就会用各种方法,罚站,罚写作业,各种罚。军</div>
                                </li>
                                <li><a href="/article/3506.htm"
                                       title="scala如何读取和写入文件内容?" target="_blank">scala如何读取和写入文件内容?</a>
                                    <span class="text-muted">qindongliang1922</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/jvm/1.htm">jvm</a><a class="tag" taget="_blank" href="/search/scala/1.htm">scala</a>
                                    <div>直接看如下代码: 
 
package file

import java.io.RandomAccessFile
import java.nio.charset.Charset

import scala.io.Source
import scala.reflect.io.{File, Path}

/**
 * Created by qindongliang on 2015/</div>
                                </li>
                                <li><a href="/article/3633.htm"
                                       title="C语言算法之百元买百鸡" target="_blank">C语言算法之百元买百鸡</a>
                                    <span class="text-muted">qiufeihu</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()
{
	int cock,hen,chick;                               /*定义变量为基本整型*/
	for(coc</div>
                                </li>
                                <li><a href="/article/3760.htm"
                                       title="Hadoop集群安全性:Hadoop中Namenode单点故障的解决方案及详细介绍AvatarNode" target="_blank">Hadoop集群安全性:Hadoop中Namenode单点故障的解决方案及详细介绍AvatarNode</a>
                                    <span class="text-muted">wyz2009107220</span>
<a class="tag" taget="_blank" href="/search/NameNode/1.htm">NameNode</a>
                                    <div>正如大家所知,NameNode在Hadoop系统中存在单点故障问题,这个对于标榜高可用性的Hadoop来说一直是个软肋。本文讨论一下为了解决这个问题而存在的几个solution。 
1. Secondary NameNode 
原理:Secondary NN会定期的从NN中读取editlog,与自己存储的Image进行合并形成新的metadata image 
优点:Hadoop较早的版本都自带,</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>