网页端debugger反调试的几种对抗方式

简单总结下目前我掌握的几种对抗debugger反调试的方法,也欢迎大佬们有新的好用的方式补充。

首先写一个简单的html演示:
看下下面的这段JS,很简单,运行时做了一下验证,对比test方法的文本,如果不一样就通过setInterval无限调用debugger。
    function test(x,y){
            z=x+y;
            return z;
        }
        setInterval(function()
        {test+""=="function test(x,y){z=x+y;return z;}" ? console.log("未修改") 
:setInterval(
        function(){
            debugger;
            },1000);}
            ,1000);
        test(100,200);

然后我们添加这一句,也就是对源代码进行破坏,让他验证不通过。

浏览器打开HTML文件,打开F12开发者工具。可以看到已经进入无限debugger模式了。

方法一:通过停用断点

应该是各位见过最多的方法了,就是开发者工具的这个按钮:

点击切换成这个样子后,已经停用了断点调试,无限debugger将消失:
如果只是从干掉debugger的层面上讲,那么我们的目的已经达到了。但是这种方法不好用,干掉debugger的同时,也无法再对该网页进行任何调试。然而往往我们打开F12就是为了调试,你把调试给禁了,我开F12干嘛。。

方法二:条件断点

想必各位对如下打断点的方式并不陌生:

点击代码行数就会添加断点。这是普通断点的快捷添加方法。在浏览器中还有一种条件断点。

条件断点与打常规断点的方法类似,在要添加的行号上右键,选择Add conditional breakpoint:
然后输入false,回车:
代码变成了这个样子:

再按下F9,你会发现debugger已经消失了。

方法三:离老子远点!(Never Pause Here)

字面意思,不从这行代码经过。

依旧是右键点击行号,选择Never pause here。

以上是常规操作,接下来介绍比较骚操作的方法。
首先是用fiddler&charles&multiproxy之类的工具。接下来我会用fiddler演示,其他的工具类似。

方法四:替换文件

我们既然已经知道代码里有反调试,那么用以上工具替换response内容不就行了吗?这里演示有点蛋疼,服务器到期了,我又不想去专门找个有反调试的网站。。于是自己注入一个吧。

使用到Fiddler的Fiddler Script功能,Fiddler Script使用的语言是JScript.NET。语法和JS类似,我是当做JS来写的,细微差别注意一下就好了,反正用到这个功能一般也不会写太多代码。。

首先,百度主页是没有任何debugger的,我们接下来要做的是在百度中注入一段反调试代码,让他进入到debugger中。打开Fiddler,在右边可以找到Fiddler Script选项卡。

下面这些是Fiddler提供给我们的一些生命周期钩子,做过前端或者安卓开发很容易就会理解。
简单说,OnBeforeRequest会在拦截请求之前执行,属于拦截到了,但是还没有发出去的状态,在这里你可以修改一些请求头等内容。
OnBeforeResponse是在拦截响应前执行,比如我们在网页中打开了百度,百度的代码已经返回来了,但被Fiddler拦截在了这里,还没有到达浏览器!我们可以在这个阶段劫持响应内容。

其他的可以去查找相关资料或者阅读官方文档,Fiddler Script是Fiddler强大之处之一。

我们可以在这里写代码扩展一些自己想要的东西。这个的应用其实很广,比如有时候不得不用selenium抓数据,但是又不想通过selenium读数据,因为要等网页渲染,实在太慢了。这时候就可以使用Fiddler Script,在里面写一段脚本,让响应回来的时候直接解析,然后把数据保存在数据库里。

咳咳,扯远了。先来注入:选择OnBeforeResponse,会自动跳到这个函数的位置:

然后我们添加注入的代码:
比较简单,我将上面例子中的那段debugger代码添加到百度页面中的标签前面。保存,打开百度主页,按下F12: <div class="image-package"> <div class="image-container" style="max-width: 700px; max-height: 428px;"> <div class="image-view"> </div> </div> <div class="image-caption"></div> </div>已经把debugger注入到网页中了。 <p>接下来我们要干掉他。AutoResponser:</p> <div class="image-package"> <div class="image-container" style="max-width: 700px; max-height: 120px;"> <div class="image-view"> </div> </div> <div class="image-caption"></div> </div> <br> 先右键点击查看网页源代码,把源代码拷贝下来一份,放到我们写好的html中。 <div class="image-package"> <div class="image-container" style="max-width: 700px; max-height: 494px;"> <div class="image-view"> </div> </div> <div class="image-caption"></div> </div>然后修改代码,把debugger置为false: <div class="image-package"> <div class="image-container" style="max-width: 700px; max-height: 234px;"> <div class="image-view"> </div> </div> <div class="image-caption"></div> </div>Fiddler中找到要替换的请求:把他拖进AutoResponser中: <div class="image-package"> <div class="image-container" style="max-width: 700px; max-height: 674px;"> <div class="image-view"> </div> </div> <div class="image-caption"></div> </div>选择Find a file,并在里面选择我们准备好的html文件。 <div class="image-package"> <div class="image-container" style="max-width: 700px; max-height: 454px;"> <div class="image-view"> </div> </div> <div class="image-caption"></div> </div> <div class="image-package"> <div class="image-container" style="max-width: 700px; max-height: 137px;"> <div class="image-view"> </div> </div> <div class="image-caption"></div> </div>刷新页面。 <div class="image-package"> <div class="image-container" style="max-width: 700px; max-height: 128px;"> <div class="image-view"> </div> </div> <div class="image-caption"></div> </div>我们发现已经不会停在我们注入的地方了。也就是debugger失效了。 <br> <br> PS:万万没想到网页里还是出现了debugger,是因为Fiddler Script注入的地方没有关。。也验证了,Fiddler Script的优先级 > AutoResponser。AutoResponser执行后才会走Fiddler Script <p></p> <h2>方法五:脚本注入</h2> <p>方法四是比较方便的,但是有时候你会发现要修改的JS代码是动态的,每次加载都不一样,这时候如果盲目替换文件,很可能导致网页的逻辑无法使用。我们仅仅需要把debugger的地方干掉就可以了。</p> <p>也就是,通过注入,修改指定代码。细心的你可能已经发现了,这不就是上面我们注入debugger做的事吗?是的。。。所以,没有看上面方法四的建议回去看一下。。。方法类似,指定Host,用正则替换掉debugger代码。<br> 这里不再讲了。</p> <h2>方法六:JS Hook劫持方法</h2> <p>首先要装一个油猴插件,这个程序员应该都装了吧。。。实现各种骚操作。<br> js的hook和Frida中的很像,或者说比Frida的hook更简单。我们现在知道了debugger是在setInterval中执行的,那我们尝试劫持setInterval。点击这里,新建一个油猴脚本:</p> <br> <div class="image-package"> <div class="image-container" style="max-width: 200px; max-height: 355px;"> <div class="image-view"> </div> </div> <div class="image-caption"></div> </div> <p></p> 编辑内容如下: <div class="image-package"> <div class="image-container" style="max-width: 592px; max-height: 385px;"> <div class="image-view"> </div> </div> <div class="image-caption"></div> </div>简单解释下,match代表应用的网址,也可以用正则配成*。require引入了jquery...这行不看也罢,以前写的模板,直接带过来了。run-at document-start在加载的时候运行。 <br> 然后就是主要代码了: <pre><code>var new_setInterval=setInterval; window.setInterval=function(a,b){ if(a.toString().indexOf("debugger")!=-1) { return null; } new_setInterval(a,b); } </code></pre> <p>首先用new_setInterval接收了原生的setInterval。然后hook原生setInterval,如果在参数a,也就是定时器结束时调用的函数中出现debugger的话,就让函数返回null,什么都不做,再继续运行定时器。<br> </p> <p></p> 效果: <div class="image-package"> <div class="image-container" style="max-width: 700px; max-height: 415px;"> <div class="image-view"> </div> </div> <div class="image-caption"></div> </div> <h1>总结</h1> <p>以前遇到debugger,没有处理的经验,真的是一脸懵逼,慢慢也积累下来一些对抗的方法,希望能抛砖引玉,各位如果有其他方法也可以交流一下。</p> <p>其实通过这些,学到的不仅仅是针对反调试,这些方法在其他的地方也有相当多的应用场景。比如Hook,这么好用的方法难道仅仅用来对付反调试?不不不,他还可以hook任意JS加密方法,hook Cookie的生成,hook一个搜索不到的入口等等等。。留给大家自己研究了。</p> <p>如果后续我找到新的对付无限debugger的方法,也会更新在这里。</p> </article> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1714358130013450240"></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">你可能感兴趣的:(网页端debugger反调试的几种对抗方式)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1903071482167226368.htm" title="10.2 如何解决从复杂 PDF 文件中提取数据的问题?" target="_blank">10.2 如何解决从复杂 PDF 文件中提取数据的问题?</a> <span class="text-muted">墨染辉</span> <a class="tag" taget="_blank" href="/search/%E5%A4%A7%E8%AF%AD%E8%A8%80%E6%A8%A1%E5%9E%8B/1.htm">大语言模型</a><a class="tag" taget="_blank" href="/search/pdf/1.htm">pdf</a> <div>10.2如何解决从复杂PDF文件中提取数据的问题?解决方案:嵌入式表格检索解释:嵌入式表格检索是一种专门针对从复杂PDF文件中的表格提取数据的技术。它结合了表格识别、解析和语义理解,使得从复杂结构的表格中检索信息成为可能。具体步骤:表格检测和识别:目标:在PDF页面中准确地定位和识别表格区域。方法:使用计算机视觉和深度学习技术,如卷积神经网络(CNN)或其他先进的图像处理算法。效果:能够检测出页面</div> </li> <li><a href="/article/1903071476467167232.htm" title="面试可能会问到的问题dSP" target="_blank">面试可能会问到的问题dSP</a> <span class="text-muted">xinyizhangwei</span> <a class="tag" taget="_blank" href="/search/dsp/1.htm">dsp</a> <div>1.如何选择外部时钟?DSP的内部指令周期较高,外部晶振的主频不够,因此DSP大多数片内均有PLL。但每个系列不尽相同。1)TMS320C2000系列:TMS320C20x:PLL可以÷2,×1,×2和×4,因此外部时钟可以为5MHz-40MHz。TMS320F240:PLL可以÷2,×1,×1.5,×2,×2.5,×3,×4,×4.5,×5和×9,因此外部时钟可以为2.22MHz-40MHz。T</div> </li> <li><a href="/article/1903071190902173696.htm" title="软件研发如何量化管理考核KPI指标" target="_blank">软件研发如何量化管理考核KPI指标</a> <span class="text-muted"></span> <a class="tag" taget="_blank" href="/search/%E8%BD%AF%E4%BB%B6%E5%B7%A5%E7%A8%8B/1.htm">软件工程</a> <div>明确关键业务目标、量化数据指标、过程管控与反馈、重视协同与激励是软件研发中量化管理考核KPI的主要切入点。其中,过程管控与反馈尤为关键,因为它能帮助团队及时发现进度和质量问题,并快速响应调整策略,让每个阶段的目标与执行更趋于一致。通过持续监控研发过程中各项数据指标,并对出现的偏差进行即时纠偏,可以让团队在激烈的竞争环境中始终保持高效迭代和持续创新的能力,为业务拓展提供源源不断的动力。一、软件研发量</div> </li> <li><a href="/article/1903070845459296256.htm" title="6.Redis 缓存使用问题及解决方案" target="_blank">6.Redis 缓存使用问题及解决方案</a> <span class="text-muted">拾柒mm</span> <a class="tag" taget="_blank" href="/search/%E7%BC%93%E5%AD%98/1.htm">缓存</a><a class="tag" taget="_blank" href="/search/redis/1.htm">redis</a><a class="tag" taget="_blank" href="/search/mybatis/1.htm">mybatis</a> <div>引言Redis作为一种高效的缓存解决方案,广泛应用于各类项目中。然而,使用缓存时也会面临一些问题,特别是数据一致性、缓存穿透、击穿、雪崩等问题。1.数据一致性数据一致性是指在使用缓存时,缓存中的数据与数据库中的数据保持一致。数据不一致可能导致用户获取到过时的信息,影响用户体验。1.1数据操作方案在进行数据增删改操作时,常见的方案有:先更新缓存,再更新数据库:优点:缓存命中率提高,用户可以快速获取到</div> </li> <li><a href="/article/1903070846642089984.htm" title="适合阅读源码的 Java 优质开源框架、库盘点(初级友好项目、中级进阶项目、高级深入项目)" target="_blank">适合阅读源码的 Java 优质开源框架、库盘点(初级友好项目、中级进阶项目、高级深入项目)</a> <span class="text-muted">我命由我12345</span> <a class="tag" taget="_blank" href="/search/Java/1.htm">Java</a><a class="tag" taget="_blank" href="/search/-/1.htm">-</a><a class="tag" taget="_blank" href="/search/%E9%A1%B9%E7%9B%AE/1.htm">项目</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E6%BA%90/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/java-ee/1.htm">java-ee</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/boot/1.htm">boot</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/intellij-idea/1.htm">intellij-idea</a> <div>一、初级友好项目1、JUnit5基本介绍:JUnit5是单元测试框架,代码简洁,适合学习测试驱动开发(TDD)和设计模式GitHub地址:https://github.com/junit-team/junit5特点:代码量适中,模块化设计,适合学习测试框架的实现原理2、Guava基本介绍:Guava是Google核心库,包含集合、缓存、字符串处理等工具类GitHub地址:https://githu</div> </li> <li><a href="/article/1903070841189494784.htm" title="深入了解 C# 中的 LINQ:功能、语法与应用解析" target="_blank">深入了解 C# 中的 LINQ:功能、语法与应用解析</a> <span class="text-muted">江沉晚呤时</span> <a class="tag" taget="_blank" href="/search/Net/1.htm">Net</a><a class="tag" taget="_blank" href="/search/core/1.htm">core</a><a class="tag" taget="_blank" href="/search/C%23/1.htm">C#</a><a class="tag" taget="_blank" href="/search/solr/1.htm">solr</a><a class="tag" taget="_blank" href="/search/lucene/1.htm">lucene</a><a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a><a class="tag" taget="_blank" href="/search/.netcore/1.htm">.netcore</a> <div>1.什么是LINQ?LINQ(LanguageIntegratedQuery,语言集成查询)是C#和其他.NET语言中的一种强大的查询功能,它允许开发者在语言中直接执行查询操作。LINQ使得开发者可以使用C#语法(或VB.NET)直接对集合、数据库、XML等数据源进行查询和操作,而不需要依赖外部查询语言(如SQL)或者复杂的API。LINQ提供了一个统一的查询模型,可以对各种数据源进行查询,包括集</div> </li> <li><a href="/article/1903070434291675136.htm" title="单例模式实现" target="_blank">单例模式实现</a> <span class="text-muted"></span> <a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a> <div>一、是什么单例模式(SingletonPattern):创建型模式,提供了一种创建对象的最佳方式,这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建在应用程序运行期间,单例模式只会在全局作用域下创建一次实例对象,让所有需要调用的地方都共享这一单例对象,如下图所示:二、实现在javascript中,实现一个单例模式可以用一个变量来标志当前的类已经创建过对象,如果下次获取当</div> </li> <li><a href="/article/1903068827298623488.htm" title="embed 标签怎么嵌入pdf_如何在网页中嵌入PDF文件" target="_blank">embed 标签怎么嵌入pdf_如何在网页中嵌入PDF文件</a> <span class="text-muted">weixin_39822443</span> <a class="tag" taget="_blank" href="/search/embed/1.htm">embed</a><a class="tag" taget="_blank" href="/search/%E6%A0%87%E7%AD%BE%E6%80%8E%E4%B9%88%E5%B5%8C%E5%85%A5pdf/1.htm">标签怎么嵌入pdf</a> <div>如何在网页中嵌入PDF文件编辑:oa161办公商城您想要到包括代码嵌入到PDFfile.2Type,打开的对象标记,它看起来像这样:<object3Insert的type属性的说明1Locate的位置在您的网页的代码。您的文件类型是PDF。因此,您的代码将看起来像这样:=“application/pdf上”4指定的文件名。要做到这一点,类型:数据=“NAMEofFILE.pdf”地方那句“NA</div> </li> <li><a href="/article/1903067945920163840.htm" title="html 中加载pdf,在HTML中嵌入PDF的推荐方法?" target="_blank">html 中加载pdf,在HTML中嵌入PDF的推荐方法?</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/%E4%B8%AD%E5%8A%A0%E8%BD%BDpdf/1.htm">中加载pdf</a> <div>GeorgeMahar..9我们的问题是,出于法律原因,我们不允许在硬盘上临时存储PDF.此外,在浏览器中将PDF显示为"预览"时,不应重新加载整个页面.首先我们尝试了PDF.jS.它适用于Firefox和Chrome浏览器中的Base64.但是,我们的PDF格式慢得令人无法接受.IE/Edge根本不起作用.因此,我们在HTML对象标记中使用Base64字符串进行了尝试.这再次对IE/Edge不起</div> </li> <li><a href="/article/1903067819621281792.htm" title="【Kivy App】Bubble气泡使用方法、常用属性和BubbleButton按钮实例" target="_blank">【Kivy App】Bubble气泡使用方法、常用属性和BubbleButton按钮实例</a> <span class="text-muted">Botiway</span> <a class="tag" taget="_blank" href="/search/%E7%A7%BB%E5%8A%A8APP/1.htm">移动APP</a><a class="tag" taget="_blank" href="/search/Kivy/1.htm">Kivy</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>在Kivy中,Bubble是一个用于显示浮动气泡的UI组件,通常用于显示上下文菜单、提示信息或其他浮动内容。Bubble可以包含多个子组件,例如BubbleButton(气泡按钮)。以下是Bubble的使用方法、常用属性以及BubbleButton的实例。1.基本使用方法首先,确保你已经安装了Kivy库。如果没有安装,可以使用以下命令进行安装:pipinstallkivy然后,你可以在Kivy应用</div> </li> <li><a href="/article/1903067189280305152.htm" title="收入突破 5 万,从大专生到大模型开发-第二篇(下)" target="_blank">收入突破 5 万,从大专生到大模型开发-第二篇(下)</a> <span class="text-muted">智码工坊</span> <a class="tag" taget="_blank" href="/search/AI%E7%BC%96%E7%A8%8B/1.htm">AI编程</a><a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E4%BA%BA%E7%94%9F/1.htm">程序人生</a> <div>第二篇下:实战案例拆解——我用AI干掉80%重复工作大家好,我是明聪,98年逆袭的大模型研发工程师,前Java转型幸存者,湖北荆州人,毕业武汉某职校。学习心得:突出“普通人破局”的真实挣扎深夜破防:我也想过放弃1:学RAG时,连续3天卡在向量数据库检索效果,甚至想“回去干Java算了”。直到发现LangChain-Chatchat开源项目,直接套用现成框架,才重拾信心。2:第一次面试被质疑“半路出</div> </li> <li><a href="/article/1903066307931205632.htm" title="Java高级技术" target="_blank">Java高级技术</a> <span class="text-muted">星星不打輰</span> <a class="tag" taget="_blank" href="/search/Java/1.htm">Java</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>Java高级技术单元测试:Junit单元测试框架针对于最小的功能单元:方法,编写测试代码对于其进行正确性测试自动测试全部方法样例:packagejunittest;publicclassStringUtil{publicstaticintgetLength(Stringstr){if(str==null||"".equals(str)){return-1;}returnstr.length();}</div> </li> <li><a href="/article/1903065804073660416.htm" title="Redis缓存中间件(非关系型数据库)" target="_blank">Redis缓存中间件(非关系型数据库)</a> <span class="text-muted">小狼人发JO酸奶</span> <a class="tag" taget="_blank" href="/search/%E7%BC%93%E5%AD%98/1.htm">缓存</a><a class="tag" taget="_blank" href="/search/redis/1.htm">redis</a><a class="tag" taget="_blank" href="/search/%E4%B8%AD%E9%97%B4%E4%BB%B6/1.htm">中间件</a> <div>最近一段时间整理了关于一些知识的总结,其中就拿出Redis来说说,其他的整理的有些杂还在梳理,相信不久就会和大家见面,期待ne.......,不废话了,开始!Redis作为非关系型数据库,终是要涉及到持久化的,毕竟缓存可没落地,很可能丢失的。Redis持久化主要为:RDB全量持久,AOF增量持久:RDB耗时长非实时记录应配合AOF使用,从而避免停机大量丢失数据。Redis重启时:RDB重构内存+A</div> </li> <li><a href="/article/1903065772477968384.htm" title="2025年ITIL 4与敏捷开发的结合:提升IT服务交付的灵活性与响应速度 — ITIL证书" target="_blank">2025年ITIL 4与敏捷开发的结合:提升IT服务交付的灵活性与响应速度 — ITIL证书</a> <span class="text-muted"></span> <a class="tag" taget="_blank" href="/search/itil/1.htm">itil</a> <div>随着敏捷开发和持续交付的兴起,企业对IT服务的交付方式要求越来越高。传统的IT服务管理框架往往难以满足快速变化的业务需求和技术环境,而ITIL4的灵活性和可扩展性使其能够与敏捷开发方法有效结合,从而提升IT服务交付的灵活性、响应速度和质量。本文将探讨ITIL4与敏捷开发方法结合的优势,并介绍如何通过这种结合优化服务交付流程、提高团队协作效率、推动持续改进。ITIL4与敏捷开发的关系敏捷开发强调迭代</div> </li> <li><a href="/article/1903065645411528704.htm" title="“大国品牌”建设全面启动,工业电商生态加速成型" target="_blank">“大国品牌”建设全面启动,工业电商生态加速成型</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> <div>3月17日,AMT企源与中国工业互联网研究院(简称“工联院”)于北京、上海两地同步举行“大国品牌”电商平台项目启动仪式。工联院相关领导和负责人,AMT企源团队负责人、项目经理和项目骨干,共同出席本次启动仪式。工联院成立于2018年,是工业和信息化部直属的科研机构,承担工业互联网相关的发展战略、规划、政策、标准研究,网络、平台、安全体系建设,国际交流与合作等工作。为落实品牌强国战略,加速优质品牌的培</div> </li> <li><a href="/article/1903065517007106048.htm" title="YashanDB备份" target="_blank">YashanDB备份</a> <span class="text-muted"></span> <a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a> <div>本文内容来自YashanDB官网,原文内容请见https://doc.yashandb.com/yashandb/23.3/zh/%E6%95%B0%E6%8D%AE%...操作说明使用本方式执行备份时,要求数据库运行于OPEN状态且归档模式开启。备份命令仅SYS超级用户或拥有SYSDBA、SYSBACKUP权限的用户才可执行,备份语法详细说明请参考开发手册BACKUPDATABASE。若数据库在</div> </li> <li><a href="/article/1903065518303145984.htm" title="YashanDB恢复" target="_blank">YashanDB恢复</a> <span class="text-muted"></span> <a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a> <div>本文内容来自YashanDB官网,原文内容请见https://doc.yashandb.com/yashandb/23.3/zh/%E6%95%B0%E6%8D%AE%...操作说明使用本方式执行恢复时,要求当前数据库实例处于NOMOUNT状态。执行恢复操作的数据库版本需与生成备份集的数据库版本完全一致。共享集群部署中,只能在主集群上执行恢复操作(即其角色必须为MASTER\_ROLE,可查询视图</div> </li> <li><a href="/article/1903065390011969536.htm" title="YashanDB SQL命令备份恢复" target="_blank">YashanDB SQL命令备份恢复</a> <span class="text-muted"></span> <a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a> <div>本文内容来自YashanDB官网,原文内容请见https://doc.yashandb.com/yashandb/23.3/zh/%E6%95%B0%E6%8D%AE%...SQL命令方式的备份恢复操作适用于单机/共享集群部署的数据库。操作示例以下为对单机部署的数据库执行备份恢复的模拟场景:1.通过yasql连接数据库,将数据库切换到归档模式,归档模式必须在数据库MOUNT状态下才能开启。$yas</div> </li> <li><a href="/article/1903065045613473792.htm" title="如何在 Vue 项目中实现动态组件加载,有什么应用场景?" target="_blank">如何在 Vue 项目中实现动态组件加载,有什么应用场景?</a> <span class="text-muted">前端大白话</span> <a class="tag" taget="_blank" href="/search/%E5%A4%A7%E7%99%BD%E8%AF%9D%E5%89%8D%E7%AB%AF%E5%85%AB%E8%82%A1/1.htm">大白话前端八股</a><a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>大白话如何在Vue项目中实现动态组件加载,有什么应用场景?什么是动态组件加载在Vue项目里,动态组件加载就是能够在程序运行时动态地决定要渲染哪个组件。打个比方,就像你去餐馆点菜,不同的时间你可能想吃不同的菜,动态组件加载就好比你可以随时更换菜单上的菜品,而不需要重新做一份新菜单。实现动态组件加载的步骤1.创建不同的组件首先,你得有几个不同的组件,就像餐馆里有不同的菜品一样。下面是三个简单的组件示例</div> </li> <li><a href="/article/1903065046842404864.htm" title="如何在 React 项目中优化列表渲染性能,避免不必要的重绘?" target="_blank">如何在 React 项目中优化列表渲染性能,避免不必要的重绘?</a> <span class="text-muted">前端大白话</span> <a class="tag" taget="_blank" href="/search/%E5%A4%A7%E7%99%BD%E8%AF%9D%E5%89%8D%E7%AB%AF%E5%85%AB%E8%82%A1/1.htm">大白话前端八股</a><a class="tag" taget="_blank" href="/search/react.js/1.htm">react.js</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E6%A1%86%E6%9E%B6/1.htm">前端框架</a> <div>大白话如何在React项目中优化列表渲染性能,避免不必要的重绘?在React项目里,要是列表数据量很大,每次数据变化都重新渲染列表,会严重影响性能。1.使用key属性key属性能帮助React识别哪些元素发生了变化,这样在更新列表时,React就只更新那些真正改变的元素,而不是重新渲染整个列表。importReactfrom'react';//假设这是我们的数据列表constdata=[{id:1</div> </li> <li><a href="/article/1903065047958089728.htm" title="C/C++学习路线概述" target="_blank">C/C++学习路线概述</a> <span class="text-muted">DustWind丶</span> <a class="tag" taget="_blank" href="/search/C%2FC%2B%2B/1.htm">C/C++</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a> <div>根据如下视频和文章总结:想做C语言/C++开发?这些才是你该学的东西!C语言/C++直通企业级开发的详细学习路线节选:肝了半个月,我整理出了这篇嵌入式开发学习学习路线+知识点梳理目录1C/C++学习概述1.1C语言的基础知识1.2C++的基础知识2C/C++编程学习四大件2.1数据结构和算法2.2操作系统2.3计算机网络2.3.1计算机网络分层2.3.2典型协议(以TCP/IP四层模型举例)2.4</div> </li> <li><a href="/article/1903065048440434688.htm" title="说说Spring和SpringBoot之间的区别和联系?" target="_blank">说说Spring和SpringBoot之间的区别和联系?</a> <span class="text-muted">一蓑烟雨渡平生</span> <a class="tag" taget="_blank" href="/search/Java%E9%9D%A2%E8%AF%95%E7%9F%A5%E8%AF%86%E7%82%B9/1.htm">Java面试知识点</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/boot/1.htm">boot</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>说说Spring和SpringBoot之间的区别和联系?联系:Spring和SpringBoot框架的核心是IOC(控制反转)和AOP(面向切面编程);IoC和AOP都是一种设计思想,接下来先介绍对于这两种设计思想的理解;IoC(InverseofControl)是一种设计思想,就是将原本在程序中手动创建对象的控制权,交给Spring框架来管理,IoC在其他语言中也有应用,并非Spring特有。I</div> </li> <li><a href="/article/1903064667643768832.htm" title="211 本硕研三,已拿 C++ 桌面应用研发 offer,计划转音视频或嵌入式如何规划学习路线?" target="_blank">211 本硕研三,已拿 C++ 桌面应用研发 offer,计划转音视频或嵌入式如何规划学习路线?</a> <span class="text-muted">程序员yt</span> <a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/%E9%9F%B3%E8%A7%86%E9%A2%91/1.htm">音视频</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a> <div>今天给大家分享的是一位粉丝的提问,211本硕研三,已拿C++桌面应用研发offer,计划转音视频或嵌入式如何规划学习路线?接下来把粉丝的具体提问和我的回复分享给大家,希望也能给一些类似情况的小伙伴一些启发和帮助。同学提问:前辈您好,我是211本硕,目前研三,秋招拿到C++桌面应用研发的offer,但计划的这个岗位最多干3-4年左右,后续企业规划上想往音视频开发或嵌入式上转;个人感觉C++八股,算法</div> </li> <li><a href="/article/1903064533841276928.htm" title="GitHub霸榜神器!NextChat领衔DeepSeek全栈开发范式" target="_blank">GitHub霸榜神器!NextChat领衔DeepSeek全栈开发范式</a> <span class="text-muted">大禹智库</span> <a class="tag" taget="_blank" href="/search/%E3%80%8A%E5%90%91%E9%87%8F%E6%95%B0%E6%8D%AE%E5%BA%93%E6%8C%87%E5%8D%97%E3%80%8B/1.htm">《向量数据库指南》</a><a class="tag" taget="_blank" href="/search/%E3%80%8A%E5%AE%9E%E6%88%98AI%E6%99%BA%E8%83%BD%E4%BD%93%E3%80%8B/1.htm">《实战AI智能体》</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/RAG/1.htm">RAG</a><a class="tag" taget="_blank" href="/search/AI%E6%99%BA%E8%83%BD%E4%BD%93/1.htm">AI智能体</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/Manus/1.htm">Manus</a><a class="tag" taget="_blank" href="/search/deepseek/1.htm">deepseek</a><a class="tag" taget="_blank" href="/search/NextChat/1.htm">NextChat</a> <div>一、项目概况与生态定位NextChat(原ChatGPT-Next-Web)是GitHub上斩获81.2K星标的现象级开源项目,定位为"轻量级AI助手终端",支持DeepSeek、Claude、GPT-4、Gemini等20+主流大模型。其核心价值在于以5MB超小客户端实现跨平台(Windows/Mac/Linux/iOS/Android)无缝衔接,同时提供云端一键部署方案,成为个人用户与企业私有</div> </li> <li><a href="/article/1903063651842060288.htm" title="JavaScript HTML DOM 节点列表" target="_blank">JavaScript HTML DOM 节点列表</a> <span class="text-muted">宇哥资料</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>NodeList对象是一个从文档中获取的节点列表(集合)。NodeList对象类似HTMLCollection对象。一些旧版本浏览器中的方法(如:getElementsByClassName())返回的是NodeList对象,而不是HTMLCollection对象。所有浏览器的childNodes属性返回的是NodeList对象。大部分浏览器的querySelectorAll()返回NodeLis</div> </li> <li><a href="/article/1903062644412182528.htm" title="golang-嵌套结构体" target="_blank">golang-嵌套结构体</a> <span class="text-muted">lmryBC49</span> <a class="tag" taget="_blank" href="/search/golang/1.htm">golang</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a> <div>结构体嵌套golang中没有类,他通过结构体来实现其他编程语言中类的相关功能。具名结构体基本语法基本语法golang的结构体嵌套特别简单。type结构体类型1struct{字段类型1字段类型2}//这样就实现了结构体的嵌套type结构体类型2struct{字段类型1字段类型2字段结构体类型1}举例packagestruct_knowledgeimport"fmt"typeWorkerstruct{</div> </li> <li><a href="/article/1903062518021025792.htm" title="js知识点-拓展运算符和剩余运算符" target="_blank">js知识点-拓展运算符和剩余运算符</a> <span class="text-muted">lmryBC49</span> <a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/ecmascript/1.htm">ecmascript</a> <div>概述在现代JavaScript开发中,ES6引入的拓展运算符(SpreadOperator)和剩余运算符(RestOperator)让代码更加简洁和灵活。无论是数组、对象的拆分与合并,还是函数参数的处理,这两个运算符都是非常实用的工具。拓展运算符1.什么是拓展运算符?拓展运算符(SpreadOperator)由三个连续的点...表示,用于将一个可迭代对象(例如数组、字符串等)展开成多个元素。拓展运</div> </li> <li><a href="/article/1903061510767308800.htm" title="Golang-Queue 项目常见问题解决方案" target="_blank">Golang-Queue 项目常见问题解决方案</a> <span class="text-muted">施余牧</span> <div>Golang-Queue项目常见问题解决方案queueQueueisaGolanglibraryforspawningandmanagingaGoroutinepool项目地址:https://gitcode.com/gh_mirrors/queu/queue项目基础介绍Golang-Queue是一个使用Go语言编写的库,用于创建和管理Goroutine池。该库允许根据机器有限的CPU数量创建多个</div> </li> <li><a href="/article/1903061384158048256.htm" title="SSRF 攻击与防御:从原理到落地实践" target="_blank">SSRF 攻击与防御:从原理到落地实践</a> <span class="text-muted">花千树-010</span> <a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1/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/%E5%AE%89%E5%85%A8/1.htm">安全</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/%E5%AE%B9%E5%99%A8/1.htm">容器</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a><a class="tag" taget="_blank" href="/search/docker/1.htm">docker</a> <div>1.什么是SSRF?SSRF(Server-SideRequestForgery)是一种常见的Web安全漏洞。当服务器提供了某种对外请求的功能,如“URL参数直接转发请求”,攻击者就可以通过精心构造的URL,让服务器“自己”去访问特定的地址,从而达到以下目的:扫描内网:探测企业内网中未暴露在公网的资产,如数据库、私有API等。获取云元数据:例如访问http://169.254.169.254/la</div> </li> <li><a href="/article/1903061380278317056.htm" title="Docker 镜像优化:如何避免重复安装软件,加速服务的构建与部署" target="_blank">Docker 镜像优化:如何避免重复安装软件,加速服务的构建与部署</a> <span class="text-muted">花千树-010</span> <a class="tag" taget="_blank" href="/search/Docker/1.htm">Docker</a><a class="tag" taget="_blank" href="/search/docker/1.htm">docker</a><a class="tag" taget="_blank" href="/search/%E5%AE%B9%E5%99%A8/1.htm">容器</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a> <div>在日常开发中,我们经常遇到这样的问题:由于服务需要额外安装大量软件(如JDK、vim、curl、git等),导致Docker镜像构建时间过长,并且每次构建都需要重复安装这些依赖。今天,我们将探讨几种优化方案,通过构建中间层镜像和使用多阶段构建,从而显著提高构建和部署效率。问题分析当你在Dockerfile中直接使用aptinstall安装依赖时,通常会面临以下问题:重复安装导致构建缓慢每次构建镜像</div> </li> <li><a href="/article/22.htm" title="redis学习笔记——不仅仅是存取数据" target="_blank">redis学习笔记——不仅仅是存取数据</a> <span class="text-muted">Everyday都不同</span> <a class="tag" taget="_blank" href="/search/returnSource/1.htm">returnSource</a><a class="tag" taget="_blank" href="/search/expire%2Fdel/1.htm">expire/del</a><a class="tag" taget="_blank" href="/search/incr%2Flpush/1.htm">incr/lpush</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93%E5%88%86%E5%8C%BA/1.htm">数据库分区</a><a class="tag" taget="_blank" href="/search/redis/1.htm">redis</a> <div>最近项目中用到比较多redis,感觉之前对它一直局限于get/set数据的层面。其实作为一个强大的NoSql数据库产品,如果好好利用它,会带来很多意想不到的效果。(因为我搞java,所以就从jedis的角度来补充一点东西吧。PS:不一定全,只是个人理解,不喜勿喷)   1、关于JedisPool.returnSource(Jedis jeids)   这个方法是从red</div> </li> <li><a href="/article/149.htm" title="SQL性能优化-持续更新中。。。。。。" target="_blank">SQL性能优化-持续更新中。。。。。。</a> <span class="text-muted">atongyeye</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a> <div>1 通过ROWID访问表--索引 你可以采用基于ROWID的访问方式情况,提高访问表的效率, , ROWID包含了表中记录的物理位置信息..ORACLE采用索引(INDEX)实现了数据和存放数据的物理位置(ROWID)之间的联系. 通常索引提供了快速访问ROWID的方法,因此那些基于索引列的查询就可以得到性能上的提高. 2 共享SQL语句--相同的sql放入缓存 3 选择最有效率的表</div> </li> <li><a href="/article/276.htm" title="[JAVA语言]JAVA虚拟机对底层硬件的操控还不完善" target="_blank">[JAVA语言]JAVA虚拟机对底层硬件的操控还不完善</a> <span class="text-muted">comsci</span> <a class="tag" taget="_blank" href="/search/JAVA%E8%99%9A%E6%8B%9F%E6%9C%BA/1.htm">JAVA虚拟机</a> <div>      如果我们用汇编语言编写一个直接读写CPU寄存器的代码段,然后利用这个代码段去控制被操作系统屏蔽的硬件资源,这对于JVM虚拟机显然是不合法的,对操作系统来讲,这样也是不合法的,但是如果是一个工程项目的确需要这样做,合同已经签了,我们又不能够这样做,怎么办呢? 那么一个精通汇编语言的那种X客,是否在这个时候就会发生某种至关重要的作用呢? &n</div> </li> <li><a href="/article/403.htm" title="lvs- real" target="_blank">lvs- real</a> <span class="text-muted">男人50</span> <a class="tag" taget="_blank" href="/search/LVS/1.htm">LVS</a> <div>#!/bin/bash # # Script to start LVS DR real server. # description: LVS DR real server # #.  /etc/rc.d/init.d/functions VIP=10.10.6.252 host='/bin/hostname' case "$1" in sta</div> </li> <li><a href="/article/530.htm" title="生成公钥和私钥" target="_blank">生成公钥和私钥</a> <span class="text-muted">oloz</span> <a class="tag" taget="_blank" href="/search/DSA/1.htm">DSA</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8%E5%8A%A0%E5%AF%86/1.htm">安全加密</a> <div>package com.msserver.core.util; import java.security.KeyPair; import java.security.PrivateKey; import java.security.PublicKey; import java.security.SecureRandom; public class SecurityUtil { </div> </li> <li><a href="/article/657.htm" title="UIView 中加入的cocos2d,背景透明" target="_blank">UIView 中加入的cocos2d,背景透明</a> <span class="text-muted">374016526</span> <a class="tag" taget="_blank" href="/search/cocos2d/1.htm">cocos2d</a><a class="tag" taget="_blank" href="/search/glClearColor/1.htm">glClearColor</a> <div>要点是首先pixelFormat:kEAGLColorFormatRGBA8,必须有alpha层才能透明。然后view设置为透明glView.opaque = NO;[director setOpenGLView:glView];[self.viewController.view setBackgroundColor:[UIColor clearColor]];[self.viewControll</div> </li> <li><a href="/article/784.htm" title="mysql常用命令" target="_blank">mysql常用命令</a> <span class="text-muted">香水浓</span> <a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a> <div>连接数据库 mysql -u troy -ptroy 备份表 mysqldump -u troy -ptroy mm_database mm_user_tbl > user.sql 恢复表(与恢复数据库命令相同) mysql -u troy -ptroy mm_database < user.sql 备份数据库 mysqldump -u troy -ptroy</div> </li> <li><a href="/article/911.htm" title="我的架构经验系列文章 - 后端架构 - 系统层面" target="_blank">我的架构经验系列文章 - 后端架构 - 系统层面</a> <span class="text-muted">agevs</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a><a class="tag" taget="_blank" href="/search/html5/1.htm">html5</a> <div>系统层面: 高可用性 所谓高可用性也就是通过避免单独故障加上快速故障转移实现一旦某台物理服务器出现故障能实现故障快速恢复。一般来说,可以采用两种方式,如果可以做业务可以做负载均衡则通过负载均衡实现集群,然后针对每一台服务器进行监控,一旦发生故障则从集群中移除;如果业务只能有单点入口那么可以通过实现Standby机加上虚拟IP机制,实现Active机在出现故障之后虚拟IP转移到Standby的快速</div> </li> <li><a href="/article/1038.htm" title="利用ant进行远程tomcat部署" target="_blank">利用ant进行远程tomcat部署</a> <span class="text-muted">aijuans</span> <a class="tag" taget="_blank" href="/search/tomcat/1.htm">tomcat</a> <div>在javaEE项目中,需要将工程部署到远程服务器上,如果部署的频率比较高,手动部署的方式就比较麻烦,可以利用Ant工具实现快捷的部署。这篇博文详细介绍了ant配置的步骤(http://www.cnblogs.com/GloriousOnion/archive/2012/12/18/2822817.html),但是在tomcat7以上不适用,需要修改配置,具体如下: 1.配置tomcat的用户角色</div> </li> <li><a href="/article/1165.htm" title="获取复利总收入" target="_blank">获取复利总收入</a> <span class="text-muted">baalwolf</span> <a class="tag" taget="_blank" href="/search/%E8%8E%B7%E5%8F%96/1.htm">获取</a> <div>       public static void main(String args[]){         int money=200;         int year=1;         double rate=0.1; &</div> </li> <li><a href="/article/1292.htm" title="eclipse.ini解释" target="_blank">eclipse.ini解释</a> <span class="text-muted">BigBird2012</span> <a class="tag" taget="_blank" href="/search/eclipse/1.htm">eclipse</a> <div>大多数java开发者使用的都是eclipse,今天感兴趣去eclipse官网搜了一下eclipse.ini的配置,供大家参考,我会把关键的部分给大家用中文解释一下。还是推荐有问题不会直接搜谷歌,看官方文档,这样我们会知道问题的真面目是什么,对问题也有一个全面清晰的认识。 Overview 1、Eclipse.ini的作用 Eclipse startup is controlled by th</div> </li> <li><a href="/article/1419.htm" title="AngularJS实现分页功能" target="_blank">AngularJS实现分页功能</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/AngularJS/1.htm">AngularJS</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E9%A1%B5/1.htm">分页</a> <div>        对于大多数web应用来说显示项目列表是一种很常见的任务。通常情况下,我们的数据会比较多,无法很好地显示在单个页面中。在这种情况下,我们需要把数据以页的方式来展示,同时带有转到上一页和下一页的功能。既然在整个应用中这是一种很常见的需求,那么把这一功能抽象成一个通用的、可复用的分页(Paginator)服务是很有意义的。   &nbs</div> </li> <li><a href="/article/1546.htm" title="[Maven学习笔记三]Maven archetype" target="_blank">[Maven学习笔记三]Maven archetype</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/ArcheType/1.htm">ArcheType</a> <div>archetype的英文意思是原型,Maven archetype表示创建Maven模块的模版,比如创建web项目,创建Spring项目等等.   mvn archetype提供了一种命令行交互式创建Maven项目或者模块的方式,   mvn archetype   1.在LearnMaven-ch03目录下,执行命令mvn archetype:gener</div> </li> <li><a href="/article/1673.htm" title="【Java命令三】jps" target="_blank">【Java命令三】jps</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/Java%E5%91%BD%E4%BB%A4/1.htm">Java命令</a> <div>jps很简单,用于显示当前运行的Java进程,也可以连接到远程服务器去查看   [hadoop@hadoop bin]$ jps -help usage: jps [-help] jps [-q] [-mlvV] [<hostid>] Definitions: <hostid>: <hostname>[:</div> </li> <li><a href="/article/1800.htm" title="ZABBIX2.2 2.4 等各版本之间的兼容性" target="_blank">ZABBIX2.2 2.4 等各版本之间的兼容性</a> <span class="text-muted">ronin47</span> <div>zabbix更新很快,从2009年到现在已经更新多个版本,为了使用更多zabbix的新特性,随之而来的便是升级版本,zabbix版本兼容性是必须优先考虑的一点 客户端AGENT兼容 zabbix1.x到zabbix2.x的所有agent都兼容zabbix server2.4:如果你升级zabbix server,客户端是可以不做任何改变,除非你想使用agent的一些新特性。 Zabbix代理(p</div> </li> <li><a href="/article/1927.htm" title="unity 3d还是cocos2dx哪个适合游戏?" target="_blank">unity 3d还是cocos2dx哪个适合游戏?</a> <span class="text-muted">brotherlamp</span> <a class="tag" taget="_blank" href="/search/unity%E8%87%AA%E5%AD%A6/1.htm">unity自学</a><a class="tag" taget="_blank" href="/search/unity%E6%95%99%E7%A8%8B/1.htm">unity教程</a><a class="tag" taget="_blank" href="/search/unity%E8%A7%86%E9%A2%91/1.htm">unity视频</a><a class="tag" taget="_blank" href="/search/unity%E8%B5%84%E6%96%99/1.htm">unity资料</a><a class="tag" taget="_blank" href="/search/unity/1.htm">unity</a> <div>unity 3d还是cocos2dx哪个适合游戏? 问:unity 3d还是cocos2dx哪个适合游戏? 答:首先目前来看unity视频教程因为是3d引擎,目前对2d支持并不完善,unity 3d 目前做2d普遍两种思路,一种是正交相机,3d画面2d视角,另一种是通过一些插件,动态创建mesh来绘制图形单元目前用的较多的是2d toolkit,ex2d,smooth moves,sm2, </div> </li> <li><a href="/article/2054.htm" title="百度笔试题:一个已经排序好的很大的数组,现在给它划分成m段,每段长度不定,段长最长为k,然后段内打乱顺序,请设计一个算法对其进行重新排序" target="_blank">百度笔试题:一个已经排序好的很大的数组,现在给它划分成m段,每段长度不定,段长最长为k,然后段内打乱顺序,请设计一个算法对其进行重新排序</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/%E7%99%BE%E5%BA%A6/1.htm">百度</a><a class="tag" taget="_blank" href="/search/%E6%8B%9B%E8%81%98/1.htm">招聘</a> <div> import java.util.Arrays; /** * 最早是在陈利人老师的微博看到这道题: * #面试题#An array with n elements which is K most sorted,就是每个element的初始位置和它最终的排序后的位置的距离不超过常数K * 设计一个排序算法。It should be faster than O(n*lgn)。</div> </li> <li><a href="/article/2181.htm" title="获取checkbox复选框的值" target="_blank">获取checkbox复选框的值</a> <span class="text-muted">chiangfai</span> <a class="tag" taget="_blank" href="/search/checkbox/1.htm">checkbox</a> <div><title>CheckBox</title> <script type = "text/javascript"> doGetVal: function doGetVal() { //var fruitName = document.getElementById("apple").value;//根据</div> </li> <li><a href="/article/2308.htm" title="MySQLdb用户指南" target="_blank">MySQLdb用户指南</a> <span class="text-muted">chenchao051</span> <a class="tag" taget="_blank" href="/search/mysqldb/1.htm">mysqldb</a> <div>原网页被墙,放这里备用。 MySQLdb User's Guide Contents Introduction Installation _mysql MySQL C API translation MySQL C API function mapping Some _mysql examples MySQLdb </div> </li> <li><a href="/article/2435.htm" title="HIVE 窗口及分析函数" target="_blank">HIVE 窗口及分析函数</a> <span class="text-muted">daizj</span> <a class="tag" taget="_blank" href="/search/hive/1.htm">hive</a><a class="tag" taget="_blank" href="/search/%E7%AA%97%E5%8F%A3%E5%87%BD%E6%95%B0/1.htm">窗口函数</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E6%9E%90%E5%87%BD%E6%95%B0/1.htm">分析函数</a> <div>窗口函数应用场景: (1)用于分区排序 (2)动态Group By (3)Top N (4)累计计算 (5)层次查询 一、分析函数 用于等级、百分点、n分片等。 函数             说明 RANK()     &nbs</div> </li> <li><a href="/article/2562.htm" title="PHP ZipArchive 实现压缩解压Zip文件" target="_blank">PHP ZipArchive 实现压缩解压Zip文件</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a><a class="tag" taget="_blank" href="/search/zip/1.htm">zip</a> <div> PHP ZipArchive 是PHP自带的扩展类,可以轻松实现ZIP文件的压缩和解压,使用前首先要确保PHP ZIP 扩展已经开启,具体开启方法就不说了,不同的平台开启PHP扩增的方法网上都有,如有疑问欢迎交流。这里整理一下常用的示例供参考。 一、解压缩zip文件 01 02 03 04 05 06 07 08 09 10 11 </div> </li> <li><a href="/article/2689.htm" title="精彩英语贺词" target="_blank">精彩英语贺词</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/%E8%8B%B1%E8%AF%AD/1.htm">英语</a> <div>I'm always here              我会一直在这里支持你                &nb</div> </li> <li><a href="/article/2816.htm" title="基于Java注解的Spring的IoC功能" target="_blank">基于Java注解的Spring的IoC功能</a> <span class="text-muted">e200702084</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/bean/1.htm">bean</a><a class="tag" taget="_blank" href="/search/IOC/1.htm">IOC</a><a class="tag" taget="_blank" href="/search/Office/1.htm">Office</a> <div>                                  </div> </li> <li><a href="/article/2943.htm" title="java模拟post请求" target="_blank">java模拟post请求</a> <span class="text-muted">geeksun</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>一般API接收客户端(比如网页、APP或其他应用服务)的请求,但在测试时需要模拟来自外界的请求,经探索,使用HttpComponentshttpClient可模拟Post提交请求。 此处用HttpComponents的httpclient来完成使命。 import org.apache.http.HttpEntity ; import org.apache.http.HttpRespon</div> </li> <li><a href="/article/3070.htm" title="Swift语法之 ---- ?和!区别" target="_blank">Swift语法之 ---- ?和!区别</a> <span class="text-muted">hongtoushizi</span> <a class="tag" taget="_blank" href="/search/%3F/1.htm">?</a><a class="tag" taget="_blank" href="/search/swift/1.htm">swift</a><a class="tag" taget="_blank" href="/search/%21/1.htm">!</a> <div>转载自: http://blog.sina.com.cn/s/blog_71715bf80102ux3v.html   Swift语言使用var定义变量,但和别的语言不同,Swift里不会自动给变量赋初始值,也就是说变量不会有默认值,所以要求使用变量之前必须要对其初始化。如果在使用变量之前不进行初始化就会报错: var stringValue : String //</div> </li> <li><a href="/article/3197.htm" title="centos7安装jdk1.7" target="_blank">centos7安装jdk1.7</a> <span class="text-muted">jisonami</span> <a class="tag" taget="_blank" href="/search/jdk/1.htm">jdk</a><a class="tag" taget="_blank" href="/search/centos/1.htm">centos</a> <div>安装JDK1.7 步骤1、解压tar包在当前目录 [root@localhost usr]#tar -xzvf jdk-7u75-linux-x64.tar.gz 步骤2:配置环境变量 在etc/profile文件下添加 export JAVA_HOME=/usr/java/jdk1.7.0_75 export CLASSPATH=/usr/java/jdk1.7.0_75/lib </div> </li> <li><a href="/article/3324.htm" title="数据源架构模式之数据映射器" target="_blank">数据源架构模式之数据映射器</a> <span class="text-muted">home198979</span> <a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E6%98%A0%E5%B0%84%E5%99%A8/1.htm">数据映射器</a><a class="tag" taget="_blank" href="/search/datamapper/1.htm">datamapper</a> <div>前面分别介绍了数据源架构模式之表数据入口、数据源架构模式之行和数据入口数据源架构模式之活动记录,相较于这三种数据源架构模式,数据映射器显得更加“高大上”。   一、概念 数据映射器(Data Mapper):在保持对象和数据库(以及映射器本身)彼此独立的情况下,在二者之间移动数据的一个映射器层。概念永远都是抽象的,简单的说,数据映射器就是一个负责将数据映射到对象的类数据。 &nb</div> </li> <li><a href="/article/3451.htm" title="在Python中使用MYSQL" target="_blank">在Python中使用MYSQL</a> <span class="text-muted">pda158</span> <a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>缘由   近期在折腾一个小东西须要抓取网上的页面。然后进行解析。将结果放到 数据库中。   了解到 Python在这方面有优势,便选用之。   由于我有台 server上面安装有 mysql,自然使用之。在进行数据库的这个操作过程中遇到了不少问题,这里 记录一下,大家共勉。    python中mysql的调用    百度之后能够通过MySQLdb进行数据库操作。</div> </li> <li><a href="/article/3578.htm" title="单例模式" target="_blank">单例模式</a> <span class="text-muted">hxl1988_0311</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%8D%95%E4%BE%8B/1.htm">单例</a><a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a><a class="tag" taget="_blank" href="/search/%E5%8D%95%E4%BB%B6/1.htm">单件</a> <div>package com.sosop.designpattern.singleton; /* * 单件模式:保证一个类必须只有一个实例,并提供全局的访问点 * * 所以单例模式必须有私有的构造器,没有私有构造器根本不用谈单件 * * 必须考虑到并发情况下创建了多个实例对象 * */ /** * 虽然有锁,但是只在第一次创建对象的时候加锁,并发时不会存在效率</div> </li> <li><a href="/article/3705.htm" title="27种迹象显示你应该辞掉程序员的工作" target="_blank">27种迹象显示你应该辞掉程序员的工作</a> <span class="text-muted">vipshichg</span> <a class="tag" taget="_blank" href="/search/%E5%B7%A5%E4%BD%9C/1.htm">工作</a> <div>1、你仍然在等待老板在2010年答应的要提拔你的暗示。 2、你的上级近10年没有开发过任何代码。 3、老板假装懂你说的这些技术,但实际上他完全不知道你在说什么。 4、你干完的项目6个月后才部署到现场服务器上。 5、时不时的,老板在检查你刚刚完成的工作时,要求按新想法重新开发。 6、而最终这个软件只有12个用户。 7、时间全浪费在办公室政治中,而不是用在开发好的软件上。 8、部署前5分钟才开始测试。</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>