XPath 语法入门

XPath 语法入门

什么是 XPath?

XPath(XML Path Language) 是一种用于在 XML 文档中定位节点的语言。它可以用来选择 XML 文档中的元素、属性、文本内容等。此外,XPath 还支持通过条件筛选节点,并且可以结合函数和运算符进行复杂的查询操作。

虽然 XPath 最初是为处理 XML 设计的,但它也被广泛应用于 HTML 文档(如在 Selenium 中用于定位网页元素)。掌握 XPath 的基本语法,能够帮助你高效地提取数据或操作文档。


XPath 的核心概念

1. 节点选择

XPath 可以选择 XML 或 HTML 文档中的节点。常见的节点类型包括:

  • 元素节点:如 </code>。</li> <li><strong>属性节点</strong>:如 <code><book id="123"></code> 中的 <code>id</code> 属性。</li> <li><strong>文本节点</strong>:如 <code><title>XML Tutorial 中的 XML Tutorial

2. 轴(Axis)

轴用于指定节点的选择范围。常见的轴包括:

  • child:::选择当前节点的所有子节点。
  • parent:::选择当前节点的父节点。
  • descendant:::选择当前节点的所有后代节点。
  • self:::选择当前节点本身。

3. 谓词(Predicate)

谓词用于筛选符合条件的节点。它使用方括号 [] 包裹,并可以包含条件表达式。

4. 通配符和函数

XPath 提供了多种通配符(如 * 表示任意元素)和内置函数(如 contains()text() 等),用于增强查询能力。


XPath 的基本语法

1. 选择元素节点

使用元素名称直接选择节点:

/books/book
  • 上述表达式表示从根节点 /books 下选择所有 元素。
示例 XML 文档:
<books>
    <book id="1">
        <title>XML Tutorialtitle>
        <price>50.00price>
    book>
    <book id="2">
        <title>HTML Guidetitle>
        <price>30.00price>
    book>
books>
示例:选择所有 元素
/books/book

结果会返回文档中所有的 节点。


2. 使用轴

默认情况下,XPath 使用 child:: 轴选择子节点。以下是一些常见的轴示例:

示例:使用 parent::
/books/book/parent::
  • 上述表达式返回 元素的父节点(即 )。
示例:使用 descendant::
/books/descendant::price
  • 返回 下所有后代节点中的 元素。

3. 谓词筛选

谓词用于根据条件筛选节点。常见的谓词包括:

  • 筛选特定的元素(如 position())。
  • 使用比较运算符(=, >, <, >=, <=)。
  • 使用逻辑运算符(and, or)。
示例:筛选价格大于 40 的书籍
/books/book[price > 40]
  • 返回所有 元素中,子元素 的值大于 40 的节点。
示例:使用 position() 筛选第一个
/books/book[position() = 1]
  • 返回第一个 节点。

4. 属性选择

要选择某个元素的属性,可以使用 @ 符号:

/books/book/@id
  • 上述表达式返回所有 元素的 id 属性值。
示例:筛选 id 为 1 的书籍
/books/book[@id = '1']

5. 文本内容选择

要提取某个元素的文本内容,可以使用 text() 函数:

/books/book/title/text()
  • 上述表达式返回所有 </code> 元素中的文本内容。</li> </ul> <h5>示例:筛选标题包含 “XML” 的书籍</h5> <pre><code class="prism language-xpath">/books/book[title[contains(text(), 'XML')]] </code></pre> <hr> <h4>6. 通配符和函数</h4> <p>XPath 提供了多种通配符和内置函数,用于增强查询能力。</p> <h5>常见的通配符:</h5> <ul> <li><code>*</code>:匹配任意元素。</li> <li><code>@*</code>:匹配任意属性。</li> </ul> <h5>示例:选择所有 <code><book></code> 的子节点</h5> <pre><code class="prism language-xpath">/books/book/* </code></pre> <h5>常见的函数:</h5> <ul> <li><code>contains()</code>:判断文本是否包含某个子串。</li> <li><code>starts-with()</code>:判断文本是否以某个字符串开头。</li> <li><code>concat()</code>:拼接字符串。</li> <li><code>position()</code>:返回当前节点的位置。</li> </ul> <hr> <h3>XPath 的应用场景</h3> <h4>1. 数据提取</h4> <p>XPath 常用于从 XML 或 HTML 文档中提取数据。例如:</p> <pre><code class="prism language-xpath">//table/tr/td[2] </code></pre> <ul> <li>上述表达式可以用于提取网页表格中的第二列数据。</li> </ul> <h4>2. 自动化测试(如 Selenium)</h4> <p>在自动化测试中,XPath 可以用来定位网页元素。例如:</p> <pre><code class="prism language-xpath">//*[@id='login-button'] </code></pre> <ul> <li>上述表达式定位 <code>id</code> 属性为 <code>login-button</code> 的按钮。</li> </ul> <h4>3. XML 文档处理</h4> <p>XPath 是处理 XML 文档的首选语言之一。例如:</p> <pre><code class="prism language-xpath">/books/book[price > 40] </code></pre> <ul> <li>上述表达式筛选价格大于 40 的书籍。</li> </ul> <hr> <h3>常见问题与技巧</h3> <h4>1. 如何处理重复节点?</h4> <p>如果需要选择某个特定的节点,可以使用 <code>position()</code> 函数。例如:</p> <pre><code class="prism language-xpath">/books/book[position() = 2] </code></pre> <h4>2. 如何忽略大小写?</h4> <p>XPath 不区分大小写,默认情况下会将文本按原样匹配。可以通过转换函数(如 <code>lower-case()</code>)处理。</p> <h5>示例:不区分大小写的筛选</h5> <pre><code class="prism language-xpath">//title[contains(lower-case(text()), 'xml')] </code></pre> <h4>3. 如何避免过度具体化?</h4> <p>编写 XPath 表达式时,尽量保持简洁,避免过度依赖路径。例如:</p> <pre><code class="prism language-xpath">//*[contains(@id, 'login')] </code></pre> <ul> <li>上述表达式选择任意 <code>id</code> 属性中包含 <code>login</code> 的元素。</li> </ul> <hr> <h3>总结</h3> <p>通过本文的学习,你应该掌握了 XPath 的基本语法和核心概念,包括节点选择、轴、谓词、属性选择以及函数的使用。这些知识将帮助你高效地处理 XML 文档或提取网页数据。如果你希望进一步深入学习,可以尝试结合实际项目进行练习,例如在自动化测试中编写更复杂的 XPath 表达式。</p> <hr> <p><strong>参考资料</strong></p> <ul> <li>XPath Tutorial</li> <li>Selenium with XPath</li> </ul> </div> </div> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1915274814428344320"></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">你可能感兴趣的:(前端,服务器,java,前端)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1939334851035459584.htm" title="前端开发中的AI辅助测试:从手动到智能的转变" target="_blank">前端开发中的AI辅助测试:从手动到智能的转变</a> <span class="text-muted">喜葵</span> <a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a> <div>前端开发中的AI辅助测试:从手动到智能的转变作者:喜葵更新时间:2025-05-16前言前端测试一直是开发流程中的痛点:写测试代码耗时、维护成本高、覆盖率难提升。随着AI技术的发展,前端测试正在经历一场从"手动编写"到"AI辅助生成"的革命性转变。本文将探讨AI如何改变前端测试的现状,以及实际应用中的最佳实践。文章目录前端测试的现状与挑战AI辅助测试的核心技术实战案例:AI生成单元测试智能测试的优</div> </li> <li><a href="/article/1939332832878981120.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%E9%A1%B9%E7%9B%AE%E5%AE%9E%E6%88%98/1.htm">Java项目实战</a><a class="tag" taget="_blank" href="/search/%E5%BE%AE%E6%9C%8D%E5%8A%A1-%E4%BA%91%E5%8E%9F%E7%94%9F/1.htm">微服务-云原生</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a><a class="tag" taget="_blank" href="/search/%E4%BA%91%E5%8E%9F%E7%94%9F/1.htm">云原生</a><a class="tag" taget="_blank" href="/search/%E5%BE%AE%E6%9C%8D%E5%8A%A1/1.htm">微服务</a><a class="tag" taget="_blank" href="/search/kubernetes/1.htm">kubernetes</a><a class="tag" taget="_blank" href="/search/istio/1.htm">istio</a> <div>引言在当今互联网产品快速迭代的背景下,如何在保证服务稳定性的同时,快速验证新功能的有效性,成为了技术团队面临的重要挑战。灰度发布(CanaryRelease)作为一种重要的发布策略,能够将新版本逐步推向部分用户,在控制风险的同时收集真实用户反馈,已成为企业级Java应用的标配能力。本文将深入探讨灰度发布的核心概念、主流设计方案,并结合行业最佳实践给出具体实现建议。一、灰度发布核心概念1.1灰度发布</div> </li> <li><a href="/article/1939332830538559488.htm" title="Spring Cache+Redis缓存方案详解:从代码到实践" target="_blank">Spring Cache+Redis缓存方案详解:从代码到实践</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%E9%A1%B9%E7%9B%AE%E5%AE%9E%E6%88%98/1.htm">Java项目实战</a><a class="tag" taget="_blank" href="/search/Redis/1.htm">Redis</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><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> <div>描述:在现代Java开发中,缓存是提升系统性能的核心手段之一。本文通过实际代码案例,深入解析SpringCache与Redis的集成原理,结合项目中的ModuleDatabaseInfoService接口和RedisConfig配置,探讨如何通过声明式缓存实现高效的数据库访问优化。一、核心代码解析1.服务接口设计(拿查询数据源配置信息举例)publicinterfaceModuleDatabase</div> </li> <li><a href="/article/1939331444975398912.htm" title="Club_IntelliMatch_Development_Guide" target="_blank">Club_IntelliMatch_Development_Guide</a> <span class="text-muted">Joseit</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/pygame/1.htm">pygame</a><a class="tag" taget="_blank" href="/search/django/1.htm">django</a><a class="tag" taget="_blank" href="/search/flask/1.htm">flask</a> <div>ClubIntelliMatch系统-全栈开发流程文档概述ClubIntelliMatch系统是一个现代化的社团活动智能匹配平台,采用前后端分离架构。系统基于PythonFlask构建RESTfulAPI后端,Vue.js3+Vite构建现代化前端,MySQL作为持久化数据存储。本文档深入分析了整个开发流程的技术架构、设计原则和实现细节。系统架构流程图后端API架构前端组件架构app.pyFlas</div> </li> <li><a href="/article/1939330563047485440.htm" title="sentinel 自定义 dashboard 用户名密码" target="_blank">sentinel 自定义 dashboard 用户名密码</a> <span class="text-muted">运维阿峰</span> <a class="tag" taget="_blank" href="/search/sentinel/1.htm">sentinel</a><a class="tag" taget="_blank" href="/search/sentinel/1.htm">sentinel</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>默认情况下,sentineldashboard用户名密码为sentinel/sentinel,这里我使用重写镜像的方式://定义Dockerfile$catDockerfile#基于现有SentinelDashboard镜像FROMbladex/sentinel-dashboard:1.8.4#重新定义ENTRYPOINT,确保参数顺序正确ENTRYPOINT["java","-Djava.sec</div> </li> <li><a href="/article/1939326905861861376.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> <div>我们想要实现一个类似QQ的即时通讯程序。由于这是一个复杂的项目,我们将分步骤进行,并只实现核心功能。核心功能包括:1.用户注册与登录2.添加好友3.发送消息(点对点)4.接收消息我们将使用Socket编程来实现。为了简化,我们不使用数据库,而是使用文件存储用户信息和好友关系。我们将创建两个主要部分:服务器和客户端。服务器端:-处理用户注册、登录请求-管理用户连接(在线状态)-转发消息客户端:-提供</div> </li> <li><a href="/article/1939326653616418816.htm" title="tensorRT 与 torchserve-GPU性能对比" target="_blank">tensorRT 与 torchserve-GPU性能对比</a> <span class="text-muted">joker-G</span> <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><a class="tag" taget="_blank" href="/search/pytorch/1.htm">pytorch</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>实验对比前端时间搭建了TensorRT、Torchserve-GPU,最近抽时间将这两种方案做一个简单的实验对比。实验数据Cuda11.0、Xeon®62423.1*80、RTX309024G、Resnet50TensorRT、Torchserve-GPU各自一张卡搭建10进程接口,感兴趣的可以查看我个人其他文章。30进程并发、2000张1200*720像素图像的总量数据TensorRT的部署使用</div> </li> <li><a href="/article/1939326146785112064.htm" title="深入理解Jackson的@JsonValue注解及其应用实例" target="_blank">深入理解Jackson的@JsonValue注解及其应用实例</a> <span class="text-muted">t0_54manong</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E4%B8%AA%E4%BA%BA%E5%BC%80%E5%8F%91/1.htm">个人开发</a> <div>深入理解Jackson的@JsonValue注解及其应用实例在Java的JSON处理库中,Jackson无疑是最流行的库之一。它提供了强大的数据绑定功能,允许开发者轻松地将Java对象序列化成JSON格式,以及将JSON字符串反序列化成Java对象。在Jackson库中,@JsonValue注解是一个特别有用的特性,它允许开发者自定义对象的序列化值。本文将详细探讨@JsonValue注解的使用,并</div> </li> <li><a href="/article/1939326147363926016.htm" title="Linux应用开发实验班——JSON-RPC" target="_blank">Linux应用开发实验班——JSON-RPC</a> <span class="text-muted">JiaH求学嵌入式</span> <a class="tag" taget="_blank" href="/search/Linux%E5%BA%94%E7%94%A8%E5%BC%80%E5%8F%91/1.htm">Linux应用开发</a><a class="tag" taget="_blank" href="/search/json/1.htm">json</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E9%A9%B1%E5%8A%A8%E5%BC%80%E5%8F%91/1.htm">驱动开发</a> <div>目录前言1.是什么JSON-RPC2.常用的JSON函数1.创建JSON2.根据名字获取JSON3.获取JSON的值4.删除JSON3.如何进行远程调用服务器客户端4.基于JSON-RPC进行硬件操作课程链接前言学习的课程是百问网韦东山老师的课程,对更详细步骤感兴趣的同学,可以去学习视频课程。代码里的led和dht11的驱动都是学习韦老师的课程写的。1.是什么JSON-RPCJSON(JavaSc</div> </li> <li><a href="/article/1939322357265002496.htm" title="前端微前端架构的探索与实践" target="_blank">前端微前端架构的探索与实践</a> <span class="text-muted">大厂前端小白菜</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/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/ai/1.htm">ai</a> <div>前端微前端架构的探索与实践关键词:微前端、前端架构、模块化、独立部署、团队协作、技术栈隔离、渐进式迁移摘要:本文将深入探讨微前端架构的概念、原理和实践。我们将从微前端的起源讲起,分析其核心设计思想,并通过实际案例展示如何实现一个完整的微前端解决方案。文章将涵盖微前端的多种实现方式、技术选型考量、以及在实际项目中的应用场景和挑战,帮助读者全面理解这一现代前端架构模式。背景介绍目的和范围本文旨在为前端</div> </li> <li><a href="/article/1939320087840354304.htm" title="JSON简介及其应用" target="_blank">JSON简介及其应用</a> <span class="text-muted">Jackson@ML</span> <a class="tag" taget="_blank" href="/search/MongoDB/1.htm">MongoDB</a><a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/Node.js/1.htm">Node.js</a><a class="tag" taget="_blank" href="/search/json/1.htm">json</a><a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/Node.js/1.htm">Node.js</a> <div>JSON简介及其应用ABriefIntroductionandApplicationsofJSONByJackson@ML1.JSON的概念JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式,采用键值对(key-value)的方式组织数据,语法类似JavaScript对象,易于人阅读和机器解析。2.JSON的作用JSON有几方面的作用如下:•在前后端数据交互中传</div> </li> <li><a href="/article/1939312390466236416.htm" title="驾驭代码之道:JS/TS SOLID面向对象设计的五大黄金法则" target="_blank">驾驭代码之道:JS/TS SOLID面向对象设计的五大黄金法则</a> <span class="text-muted">领码科技</span> <a class="tag" taget="_blank" href="/search/%E4%BD%8E%E4%BB%A3%E7%A0%81/1.htm">低代码</a><a class="tag" taget="_blank" href="/search/%E6%8A%80%E8%83%BD%E7%AF%87/1.htm">技能篇</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/SOLID%E5%8E%9F%E5%88%99/1.htm">SOLID原则</a><a class="tag" taget="_blank" href="/search/TypeScript/1.htm">TypeScript</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1/1.htm">面向对象</a><a class="tag" taget="_blank" href="/search/%E4%BB%A3%E7%A0%81%E8%AE%BE%E8%AE%A1/1.htm">代码设计</a><a class="tag" taget="_blank" href="/search/AI%E8%BE%85%E5%8A%A9%E5%BC%80%E5%8F%91/1.htm">AI辅助开发</a> <div>摘要在现代JavaScript和TypeScript开发中,代码质量与可维护性至关重要。SOLID原则作为面向对象设计的经典法则,为构建稳健、灵活的系统架构提供了科学指导。本文不仅系统阐释单一职责、开闭、里氏替换、接口隔离和依赖倒置五大原则的核心精髓,还结合当今流行的AI智能辅助、微前端、低代码开发等新技术与新思维,深入剖析它们在实际JS/TS项目中的应用场景和最佳实践。通俗易懂的理论讲解、丰富的</div> </li> <li><a href="/article/1939311947493208064.htm" title="JavaScript 事件循环竟还能这样玩!" target="_blank">JavaScript 事件循环竟还能这样玩!</a> <span class="text-muted"></span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AFjavascript/1.htm">前端javascript</a> <div>JavaScript是一种单线程的编程语言,这意味着它一次只能执行一个任务。为了能够处理异步操作,JavaScript使用了一种称为事件循环(EventLoop)的机制。本文将深入探讨事件循环的工作原理,并展示如何基于这一原理实现一个更为准确的setTimeout、setInterval什么是事件循环?事件循环是JavaScript运行时环境中处理异步操作的核心机制。它允许JavaScript在执</div> </li> <li><a href="/article/1939310878100877312.htm" title="关于 java:7. 多线程与并发编程" target="_blank">关于 java:7. 多线程与并发编程</a> <span class="text-muted">shenyan~</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>一、Thread类作用:Thread类代表一个线程,用于创建和控制一个新的执行流(即“子线程”)。定义:java.lang.Thread类实现了Runnable接口。1.1使用方式方法一:继承Thread类步骤:自定义类继承Thread。重写run()方法。创建线程对象并调用start()方法。示例代码:classMyThreadextendsThread{@Overridepublicvoidr</div> </li> <li><a href="/article/1939304325352321024.htm" title="python读取sas数据集_SASpy模块,利用Python操作SAS" target="_blank">python读取sas数据集_SASpy模块,利用Python操作SAS</a> <span class="text-muted"></span> <div>SASpy模块打通了Python与SAS之间的连接。有了SASpy模块,我们就能够在Python中操控SAS。本文将首先介绍SASpy模块的一些基本方法,最后通过一个聚类分析的例子,来展示如何在Python中调用SAS的机器学习过程,以及对聚类结果的可视化。SASpy模块特点1、需要Python3.X及以上,SAS9.4及以上,需要Java环境;2、无论是本地SAS还是远程服务器上的SAS,都可以</div> </li> <li><a href="/article/1939303063084920832.htm" title="Java核心技术 卷I:基础知识" target="_blank">Java核心技术 卷I:基础知识</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/%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/1.htm">读书笔记</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>第一章Java程序设计概述太简单了,直接略过。1.2Java“白皮书”的关键术语简单性:指相对于C++简单(指针、多重继承等),但设计者也并没有试图清楚C++中所有不适当的特性面向对象:java与C++主要不同在于多重集成,以及接口概念网络技能健壮性安全性体系结构中立可移植性解释性:过去Java解释器可以在任何移植了解释器的机器上执行java字节码,现在使用即使编译器将字节码再翻译成机器码高性能多</div> </li> <li><a href="/article/1939302305845276672.htm" title="day043-负载均衡算法与高可用keepalived" target="_blank">day043-负载均衡算法与高可用keepalived</a> <span class="text-muted">孙克旭‌</span> <a class="tag" taget="_blank" href="/search/%E8%80%81%E7%94%B7%E5%AD%A9%E6%95%99%E8%82%B2Linux%E8%BF%90%E7%BB%B499%E6%9C%9F/1.htm">老男孩教育Linux运维99期</a><a class="tag" taget="_blank" href="/search/%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1/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%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a> <div>文章目录0.老男孩思想-运维能为公司创造的价值1.负载均衡轮询算法1.1加权轮询1.2ip哈希1.3url哈希2.负载均衡模块指令补充3.高可用4.keepalived4.1部署keepalived服务4.2脑裂故障4.2.1脑裂故障常见原因4.2.2脑裂故障解决方法5.思维导图0.老男孩思想-运维能为公司创造的价值省钱:服务器设备、机房带宽、云主机云服务减少CDN流量优化、架构改造,当流量增加时</div> </li> <li><a href="/article/1939301674329894912.htm" title="宝塔面板密码忘记了" target="_blank">宝塔面板密码忘记了</a> <span class="text-muted"></span> <div>一、找回宝塔面板地址1.默认访问地址http://服务器IP:8888https://服务器IP:8888(若启用HTTPS)2.通过命令查看面板路径#登录服务器后执行bt选择菜单编号14(查看面板信息),输出示例:==================================================================Bt-Panelinformation:外网面板地址</div> </li> <li><a href="/article/1939297769520951296.htm" title="SpringMVC 中的 RESTful 编码风格案例详解" target="_blank">SpringMVC 中的 RESTful 编码风格案例详解</a> <span class="text-muted">dawn191228</span> <a class="tag" taget="_blank" href="/search/Java/1.htm">Java</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/restful/1.htm">restful</a><a class="tag" taget="_blank" href="/search/pandas/1.htm">pandas</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/mvc/1.htm">mvc</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a> <div>文章目录一、RESTful简介二、SpringMVC中实现RESTful的方法三、HiddenHttpMethodFilter四、RESTful代码实现案例在现代Web开发中,RESTful架构风格越来越受到开发者的青睐。SpringMVC作为一个强大的JavaWeb开发框架,对RESTful风格的支持非常出色。本文将详细介绍SpringMVC中RESTful编码风格的简介、实现方法、Hidden</div> </li> <li><a href="/article/1939296507027058688.htm" title="前端领域Node.js环境搭建详细教程" target="_blank">前端领域Node.js环境搭建详细教程</a> <span class="text-muted">前端视界</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E8%89%BA%E5%8C%A0%E9%A6%86/1.htm">前端艺匠馆</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/node.js/1.htm">node.js</a><a class="tag" taget="_blank" href="/search/ai/1.htm">ai</a> <div>前端领域Node.js环境搭建详细教程关键词:Node.js、环境搭建、NPM、版本管理、前端开发摘要:本文是面向前端开发者的Node.js环境搭建全流程指南。我们将从Node.js的核心作用讲起,用“快递站”“魔法翻译机”等生活比喻拆解技术概念,逐步讲解Windows/macOS/Linux三平台的安装步骤、版本管理工具nvm的使用、镜像源配置技巧,最后通过一个“静态网页服务器”实战案例验证环境</div> </li> <li><a href="/article/1939291089030672384.htm" title="模拟工作队列 - 华为OD机试真题(JavaScript卷)" target="_blank">模拟工作队列 - 华为OD机试真题(JavaScript卷)</a> <span class="text-muted">什码情况</span> <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/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a><a class="tag" taget="_blank" href="/search/%E5%8D%8E%E4%B8%BAod/1.htm">华为od</a> <div>华为OD机试题库《C++》限时优惠9.9华为OD机试题库《Python》限时优惠9.9华为OD机试题库《JavaScript》限时优惠9.9针对刷题难,效率慢,我们提供一对一算法辅导,针对个人情况定制化的提高计划(全称1V1效率更高)。看不懂有疑问需要答疑辅导欢迎私VX:code5bug题目描述让我们来模拟一个工作队列的运作,有一个任务提交者和若干任务执行者,执行者从1开始编号。提交者会在给定的时</div> </li> <li><a href="/article/1939291087747215360.htm" title="数据分类 - 华为OD机试真题(JavaScript 题解)" target="_blank">数据分类 - 华为OD机试真题(JavaScript 题解)</a> <span class="text-muted">什码情况</span> <a class="tag" taget="_blank" href="/search/%E5%8D%8E%E4%B8%BAod/1.htm">华为od</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E6%9C%BA%E8%AF%95/1.htm">机试</a> <div>华为OD机试题库《C++》限时优惠9.9华为OD机试题库《Python》限时优惠9.9华为OD机试题库《JavaScript》限时优惠9.9针对刷题难,效率慢,我们提供一对一算法辅导,针对个人情况定制化的提高计划(全称1V1效率更高)。看不懂有疑问需要答疑辅导欢迎私VX:code5bug题目描述对一个数据a进行分类,分类方法为:此数据a(四个字节大小)的四个字节相加对一个给定的值b取模,如果得到的</div> </li> <li><a href="/article/1939288191689355264.htm" title="Java设计模式之抽象工厂模式(Abstract Factory)笔记" target="_blank">Java设计模式之抽象工厂模式(Abstract Factory)笔记</a> <span class="text-muted">ikwil</span> <a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F%E4%B8%93%E6%A0%8F/1.htm">设计模式专栏</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a><a class="tag" taget="_blank" href="/search/%E6%8A%BD%E8%B1%A1%E5%B7%A5%E5%8E%82%E6%A8%A1%E5%BC%8F/1.htm">抽象工厂模式</a> <div>目录什么叫做抽象工厂模式抽象工厂模式作用抽象工厂模式特征对比抽象工厂和工厂方法抽象工厂模应用场景抽象工厂模式的实现定义抽象工厂接口实现具体产品类定义抽象工厂接口实现具体工厂类进行测试总结参考文献什么叫做抽象工厂模式抽象工厂模式(AbstractFactoryPattern)是一种创建型设计模式,用于提供一个接口,使得客户端能够创建一系列相关或依赖的对象,而无需指定它们的具体类。这个模式有助于确保一</div> </li> <li><a href="/article/1939287812671074304.htm" title="Linux离线安装mysql" target="_blank">Linux离线安装mysql</a> <span class="text-muted">为你奋斗!</span> <a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E8%BD%AF%E4%BB%B6%E5%AE%89%E8%A3%85/1.htm">开发环境软件安装</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/adb/1.htm">adb</a> <div>Linux离线安装mysql(centos7)1、下载MySQL2、使用xshell文件传输工具,上传到Linux服务器3、安装前准备4、安装MySQL5、Navicat连接测试1、下载MySQLhttps://dev.mysql.com/downloads/mysql/5.7.html#downloads2、使用xshell文件传输工具,上传到Linux服务器在/usr/local文件夹下创建m</div> </li> <li><a href="/article/1939286550974099456.htm" title="Spring框架中的过滤器、拦截器与Spring Security:深入比较与应用实践" target="_blank">Spring框架中的过滤器、拦截器与Spring Security:深入比较与应用实践</a> <span class="text-muted">暮乘白帝过重山</span> <a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E4%BB%93%E5%BA%93/1.htm">数据仓库</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/%E6%8B%A6%E6%88%AA%E5%99%A8/1.htm">拦截器</a><a class="tag" taget="_blank" href="/search/%E8%BF%87%E6%BB%A4%E5%99%A8/1.htm">过滤器</a><a class="tag" taget="_blank" href="/search/Spring/1.htm">Spring</a><a class="tag" taget="_blank" href="/search/Security/1.htm">Security</a> <div>一、引言在现代Java企业级应用开发中,Spring框架已经成为事实上的标准。随着应用安全性和复杂性的不断提高,开发者需要掌握多种请求处理和安全控制机制。本文将深入探讨Spring框架中的过滤器(Filter)、拦截器(Interceptor)和SpringSecurity这三种关键技术,分析它们的异同点、适用场景以及当前企业开发中的流行趋势。二、Spring框架概述Spring框架是一个轻量级的</div> </li> <li><a href="/article/1939285669088129024.htm" title="SpringAI系列 - MCP篇(二) - MCP Server Boot Starter" target="_blank">SpringAI系列 - MCP篇(二) - MCP Server Boot Starter</a> <span class="text-muted">罗小爬EX</span> <a class="tag" taget="_blank" href="/search/Spring/1.htm">Spring</a><a class="tag" taget="_blank" href="/search/AI/1.htm">AI</a><a class="tag" taget="_blank" href="/search/SpringAI/1.htm">SpringAI</a><a class="tag" taget="_blank" href="/search/MCP/1.htm">MCP</a> <div>目录一、MCPJavaSDKMCPClientMCPServer二、SpringAIMcp集成三、SpringAIMCPBootStater四、spring-ai-starter-mcp-server-webmvc集成示例4.1集成Tools4.2集成Resources4.3集成Prompts4.4监听MCPClient端Roots变更通知五、通过SSE连接MCPServer六、通过STDIO连接</div> </li> <li><a href="/article/1939276846008954880.htm" title="Java Web二手物品交易平台课程设计项目" target="_blank">Java Web二手物品交易平台课程设计项目</a> <span class="text-muted">草莓味儿柠檬</span> <div>本文还有配套的精品资源,点击获取简介:盐鱼二手物品交易网站是一个基于Servlet和JSP的JavaWeb开发课程设计项目,适合Java初学者进行实战演练。项目内容包括Servlet与JSP的基础知识、MVC架构、数据库交互、会话管理、安全与性能优化、部署与运行,以及测试与调试等各个方面。学生通过此项目可以全面理解JavaWeb开发技术,并提升实战能力。1.Servlet生命周期与HTTP请求处理</div> </li> <li><a href="/article/1939276467150057472.htm" title="安装黑苹果时提示未能与服务器,安装黑苹果遇到的问题与解决记录" target="_blank">安装黑苹果时提示未能与服务器,安装黑苹果遇到的问题与解决记录</a> <span class="text-muted">草莓味儿柠檬</span> <a class="tag" taget="_blank" href="/search/%E5%AE%89%E8%A3%85%E9%BB%91%E8%8B%B9%E6%9E%9C%E6%97%B6%E6%8F%90%E7%A4%BA%E6%9C%AA%E8%83%BD%E4%B8%8E%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">安装黑苹果时提示未能与服务器</a> <div>前言–这篇文章讲了啥?这篇文件是我在安装黑苹果时遇到的问题与解决办法的总结所以更注重的是发现问题解决问题,关于黑苹果教程自己上网上找吧,资源非常多所以安装方面可能就几句话带过了1.硬件配置电脑型号戴尔Inspiron5680台式电脑操作系统Windows1064位家庭版处理器英特尔Corei5-8400主板戴尔0PXWHK(z370芯片组),找efi驱动首先按照这个主板来就行(z370)内存三星D</div> </li> <li><a href="/article/1939270291054194688.htm" title="JSP学习" target="_blank">JSP学习</a> <span class="text-muted">sakoba</span> <a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>文章目录什么是JSP运行原理JSP基础语法JSP表达式JSP脚本片段JSP声明jsp指令九大内置对象&四大域对象内置对象四大域对象代码JSP标签、JSTL标签、EL表达式EL表达式JSP标签JSTL标签什么是JSPJSP(JavaServerPages)是由SUN公司在1996年6月发布的一种基于Java技术的服务器端编程技术,用于开发动态Web应用。从本质上讲,它是一个简化的Servlet设计。</div> </li> <li><a href="/article/1939267387769548800.htm" title="从阻塞到异步:Java NIO与AIO的高性能网络编程实战全解析" target="_blank">从阻塞到异步:Java NIO与AIO的高性能网络编程实战全解析</a> <span class="text-muted">小张在编程</span> <a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/nio/1.htm">nio</a> <div>引言在高并发网络时代,传统BIO的“一个连接一个线程”模式早已力不从心——当万级连接涌来时,服务器线程池瞬间告急,资源耗尽的警报此起彼伏。JavaNIO与AIO的出现,如同为网络编程装上了“多线程调度器”和“异步引擎”:NIO用非阻塞机制化解并发瓶颈,让单线程管理千个连接成为可能;AIO则更进一步,通过事件回调实现真正异步,让程序在I/O等待时不再“干瞪眼”。本文将从原理到实战,带您揭开这两大高级</div> </li> <li><a href="/article/52.htm" title="解读Servlet原理篇二---GenericServlet与HttpServlet" target="_blank">解读Servlet原理篇二---GenericServlet与HttpServlet</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/HttpServlet/1.htm">HttpServlet</a><a class="tag" taget="_blank" href="/search/%E6%BA%90%E7%90%86/1.htm">源理</a><a class="tag" taget="_blank" href="/search/GenericService/1.htm">GenericService</a><a class="tag" taget="_blank" href="/search/%E6%BA%90%E7%A0%81/1.htm">源码</a> <div>在上一篇《解读Servlet原理篇一》中提到,要实现javax.servlet.Servlet接口(即写自己的Servlet应用),你可以写一个继承自javax.servlet.GenericServletr的generic Servlet ,也可以写一个继承自java.servlet.http.HttpServlet的HTTP Servlet(这就是为什么我们自定义的Servlet通常是exte</div> </li> <li><a href="/article/179.htm" title="MySQL性能优化" target="_blank">MySQL性能优化</a> <span class="text-muted">bijian1013</span> <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/mysql/1.htm">mysql</a> <div>        性能优化是通过某些有效的方法来提高MySQL的运行速度,减少占用的磁盘空间。性能优化包含很多方面,例如优化查询速度,优化更新速度和优化MySQL服务器等。本文介绍方法的主要有:         a.优化查询         b.优化数据库结构   </div> </li> <li><a href="/article/306.htm" title="ThreadPool定时重试" target="_blank">ThreadPool定时重试</a> <span class="text-muted">dai_lm</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/ThreadPool/1.htm">ThreadPool</a><a class="tag" taget="_blank" href="/search/thread/1.htm">thread</a><a class="tag" taget="_blank" href="/search/timer/1.htm">timer</a><a class="tag" taget="_blank" href="/search/timertask/1.htm">timertask</a> <div>项目需要当某事件触发时,执行http请求任务,失败时需要有重试机制,并根据失败次数的增加,重试间隔也相应增加,任务可能并发。 由于是耗时任务,首先考虑的就是用线程来实现,并且为了节约资源,因而选择线程池。 为了解决不定间隔的重试,选择Timer和TimerTask来完成 package threadpool; public class ThreadPoolTest { </div> </li> <li><a href="/article/433.htm" title="Oracle 查看数据库的连接情况" target="_blank">Oracle 查看数据库的连接情况</a> <span class="text-muted">周凡杨</span> <a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/oracle+%E8%BF%9E%E6%8E%A5/1.htm">oracle 连接</a> <div>首先要说的是,不同版本数据库提供的系统表会有不同,你可以根据数据字典查看该版本数据库所提供的表。 select * from dict where table_name like '%SESSION%'; 就可以查出一些表,然后根据这些表就可以获得会话信息 select sid,serial#,status,username,schemaname,osuser,terminal,ma</div> </li> <li><a href="/article/560.htm" title="类的继承" target="_blank">类的继承</a> <span class="text-muted">朱辉辉33</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>类的继承可以提高代码的重用行,减少冗余代码;还能提高代码的扩展性。Java继承的关键字是extends 格式:public class 类名(子类)extends 类名(父类){ } 子类可以继承到父类所有的属性和普通方法,但不能继承构造方法。且子类可以直接使用父类的public和 protected属性,但要使用private属性仍需通过调用。 子类的方法可以重写,但必须和父类的返回值类</div> </li> <li><a href="/article/687.htm" title="android 悬浮窗特效" target="_blank">android 悬浮窗特效</a> <span class="text-muted">肆无忌惮_</span> <a class="tag" taget="_blank" href="/search/android/1.htm">android</a> <div>最近在开发项目的时候需要做一个悬浮层的动画,类似于支付宝掉钱动画。但是区别在于,需求是浮出一个窗口,之后边缩放边位移至屏幕右下角标签处。效果图如下:   一开始考虑用自定义View来做。后来发现开线程让其移动很卡,ListView+动画也没法精确定位到目标点。   后来想利用Dialog的dismiss动画来完成。   自定义一个Dialog后,在styl</div> </li> <li><a href="/article/814.htm" title="hadoop伪分布式搭建" target="_blank">hadoop伪分布式搭建</a> <span class="text-muted">林鹤霄</span> <a class="tag" taget="_blank" href="/search/hadoop/1.htm">hadoop</a> <div>要修改4个文件    1: vim hadoop-env.sh  第九行    2: vim core-site.xml            <configuration>     &n</div> </li> <li><a href="/article/941.htm" title="gdb调试命令" target="_blank">gdb调试命令</a> <span class="text-muted">aigo</span> <a class="tag" taget="_blank" href="/search/gdb/1.htm">gdb</a> <div>原文:http://blog.csdn.net/hanchaoman/article/details/5517362   一、GDB常用命令简介   r run 运行.程序还没有运行前使用 c             cuntinue </div> </li> <li><a href="/article/1068.htm" title="Socket编程的HelloWorld实例" target="_blank">Socket编程的HelloWorld实例</a> <span class="text-muted">alleni123</span> <a class="tag" taget="_blank" href="/search/socket/1.htm">socket</a> <div>public class Client { public static void main(String[] args) { Client c=new Client(); c.receiveMessage(); } public void receiveMessage(){ Socket s=null; BufferedRea</div> </li> <li><a href="/article/1195.htm" title="线程同步和异步" target="_blank">线程同步和异步</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/%E7%BA%BF%E7%A8%8B%E5%90%8C%E6%AD%A5/1.htm">线程同步</a><a class="tag" taget="_blank" href="/search/%E5%BC%82%E6%AD%A5/1.htm">异步</a> <div>多线程和同步 : 如进程、线程同步,可理解为进程或线程A和B一块配合,A执行到一定程度时要依靠B的某个结果,于是停下来,示意B运行;B依言执行,再将结果给A;A再继续操作。 所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回,同时其它线程也不能调用这个方法   多线程和异步:多线程可以做不同的事情,涉及到线程通知     &</div> </li> <li><a href="/article/1322.htm" title="JSP中文乱码分析" target="_blank">JSP中文乱码分析</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/jsp/1.htm">jsp</a><a class="tag" taget="_blank" href="/search/%E4%B8%AD%E6%96%87%E4%B9%B1%E7%A0%81/1.htm">中文乱码</a> <div>        在JSP的开发过程中,经常出现中文乱码的问题。         首先了解一下Java中文问题的由来:         Java的内核和class文件是基于unicode的,这使Java程序具有良好的跨平台性,但也带来了一些中文乱码问题的麻烦。原因主要有两方面,</div> </li> <li><a href="/article/1449.htm" title="js实现页面跳转重定向的几种方式" target="_blank">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/%E9%87%8D%E5%AE%9A%E5%90%91/1.htm">重定向</a> <div>        js实现页面跳转重定向有如下几种方式: 一.window.location.href <script language="javascript"type="text/javascript"> window.location.href="http://www.baidu.c</div> </li> <li><a href="/article/1576.htm" title="【Struts2三】Struts2 Action转发类型" target="_blank">【Struts2三】Struts2 Action转发类型</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/struts2/1.htm">struts2</a> <div> 在【Struts2一】 Struts Hello World http://bit1129.iteye.com/blog/2109365中配置了一个简单的Action,配置如下   <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configurat</div> </li> <li><a href="/article/1703.htm" title="【HBase十一】Java API操作HBase" target="_blank">【HBase十一】Java API操作HBase</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/hbase/1.htm">hbase</a> <div>Admin类的主要方法注释:   1. 创建表 /** * Creates a new table. Synchronous operation. * * @param desc table descriptor for table * @throws IllegalArgumentException if the table name is res</div> </li> <li><a href="/article/1830.htm" title="nginx gzip" target="_blank">nginx gzip</a> <span class="text-muted">ronin47</span> <a class="tag" taget="_blank" href="/search/nginx+gzip/1.htm">nginx gzip</a> <div>Nginx GZip 压缩 Nginx GZip 模块文档详见:http://wiki.nginx.org/HttpGzipModule 常用配置片段如下: gzip on; gzip_comp_level 2; # 压缩比例,比例越大,压缩时间越长。默认是1 gzip_types text/css text/javascript; # 哪些文件可以被压缩 gzip_disable &q</div> </li> <li><a href="/article/1957.htm" title="java-7.微软亚院之编程判断俩个链表是否相交 给出俩个单向链表的头指针,比如 h1 , h2 ,判断这俩个链表是否相交" target="_blank">java-7.微软亚院之编程判断俩个链表是否相交 给出俩个单向链表的头指针,比如 h1 , h2 ,判断这俩个链表是否相交</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div> public class LinkListTest { /** * we deal with two main missions: * * A. * 1.we create two joined-List(both have no loop) * 2.whether list1 and list2 join * 3.print the join</div> </li> <li><a href="/article/2084.htm" title="Spring源码学习-JdbcTemplate batchUpdate批量操作" target="_blank">Spring源码学习-JdbcTemplate batchUpdate批量操作</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/spring/1.htm">spring</a> <div>Spring JdbcTemplate的batch操作最后还是利用了JDBC提供的方法,Spring只是做了一下改造和封装 JDBC的batch操作: String sql = "INSERT INTO CUSTOMER " + "(CUST_ID, NAME, AGE) VALUES (?, ?, ?)"; </div> </li> <li><a href="/article/2211.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>    生成和创建类已经完成,构造一个100万个元素的矩阵模型,存储空间只有11M大,请大家参考我在博客园上面的文档"构造下一代工作流存储结构的尝试",更加相信的设计和代码将陆续推出.........     竞争对手的能力也很强.......,我相信..你们一定能够先于我们推出大规模拓扑扫描和分析系统的....</div> </li> <li><a href="/article/2338.htm" title="base64编码和url编码" target="_blank">base64编码和url编码</a> <span class="text-muted">cuityang</span> <a class="tag" taget="_blank" href="/search/base64/1.htm">base64</a><a class="tag" taget="_blank" href="/search/url/1.htm">url</a> <div>import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.io.StringWriter; import java.io.UnsupportedEncodingException; </div> </li> <li><a href="/article/2465.htm" title="web应用集群Session保持" target="_blank">web应用集群Session保持</a> <span class="text-muted">dalan_123</span> <a class="tag" taget="_blank" href="/search/session/1.htm">session</a> <div>关于使用 memcached 或redis 存储 session ,以及使用 terracotta 服务器共享。建议使用 redis,不仅仅因为它可以将缓存的内容持久化,还因为它支持的单个对象比较大,而且数据类型丰富,不只是缓存 session,还可以做其他用途,一举几得啊。1、使用 filter 方法存储这种方法比较推荐,因为它的服务器使用范围比较多,不仅限于tomcat ,而且实现的原理比较简</div> </li> <li><a href="/article/2719.htm" title="Yii 框架里数据库操作详解-[增加、查询、更新、删除的方法 'AR模式']" target="_blank">Yii 框架里数据库操作详解-[增加、查询、更新、删除的方法 'AR模式']</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a> <div>    public function getMinLimit () {        $sql = "...";        $result = yii::app()->db->createCo</div> </li> <li><a href="/article/2846.htm" title="solr StatsComponent(聚合统计)" target="_blank">solr StatsComponent(聚合统计)</a> <span class="text-muted">eksliang</span> <a class="tag" taget="_blank" href="/search/solr%E8%81%9A%E5%90%88%E6%9F%A5%E8%AF%A2/1.htm">solr聚合查询</a><a class="tag" taget="_blank" href="/search/solr+stats/1.htm">solr stats</a> <div>StatsComponent 转载请出自出处:http://eksliang.iteye.com/blog/2169134 http://eksliang.iteye.com/ 一、概述        Solr可以利用StatsComponent 实现数据库的聚合统计查询,也就是min、max、avg、count、sum的功能   二、参数</div> </li> <li><a href="/article/2973.htm" title="百度一道面试题" target="_blank">百度一道面试题</a> <span class="text-muted">greemranqq</span> <a class="tag" taget="_blank" href="/search/%E4%BD%8D%E8%BF%90%E7%AE%97/1.htm">位运算</a><a class="tag" taget="_blank" href="/search/%E7%99%BE%E5%BA%A6%E9%9D%A2%E8%AF%95/1.htm">百度面试</a><a class="tag" taget="_blank" href="/search/%E5%AF%BB%E6%89%BE%E5%A5%87%E6%95%B0%E7%AE%97%E6%B3%95/1.htm">寻找奇数算法</a><a class="tag" taget="_blank" href="/search/bitmap+%E7%AE%97%E6%B3%95/1.htm">bitmap 算法</a> <div>那天看朋友提了一个百度面试的题目:怎么找出{1,1,2,3,3,4,4,4,5,5,5,5}  找出出现次数为奇数的数字.   我这里复制的是原话,当然顺序是不一定的,很多拿到题目第一反应就是用map,当然可以解决,但是效率不高。   还有人觉得应该用算法xxx,我是没想到用啥算法好...!   还有觉得应该先排序...   还有觉</div> </li> <li><a href="/article/3100.htm" title="Spring之在开发中使用SpringJDBC" target="_blank">Spring之在开发中使用SpringJDBC</a> <span class="text-muted">ihuning</span> <a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a> <div>  在实际开发中使用SpringJDBC有两种方式:   1. 在Dao中添加属性JdbcTemplate并用Spring注入;     JdbcTemplate类被设计成为线程安全的,所以可以在IOC 容器中声明它的单个实例,并将这个实例注入到所有的 DAO 实例中。JdbcTemplate也利用了Java 1.5 的特定(自动装箱,泛型,可变长度</div> </li> <li><a href="/article/3227.htm" title="JSON API 1.0 核心开发者自述 | 你所不知道的那些技术细节" target="_blank">JSON API 1.0 核心开发者自述 | 你所不知道的那些技术细节</a> <span class="text-muted">justjavac</span> <a class="tag" taget="_blank" href="/search/json/1.htm">json</a> <div>2013年5月,Yehuda Katz 完成了JSON API(英文,中文) 技术规范的初稿。事情就发生在 RailsConf 之后,在那次会议上他和 Steve Klabnik 就 JSON 雏形的技术细节相聊甚欢。在沟通单一 Rails 服务器库—— ActiveModel::Serializers 和单一 JavaScript 客户端库——&</div> </li> <li><a href="/article/3354.htm" title="网站项目建设流程概述" target="_blank">网站项目建设流程概述</a> <span class="text-muted">macroli</span> <a class="tag" taget="_blank" href="/search/%E5%B7%A5%E4%BD%9C/1.htm">工作</a> <div>一.概念 网站项目管理就是根据特定的规范、在预算范围内、按时完成的网站开发任务。 二.需求分析 项目立项   我们接到客户的业务咨询,经过双方不断的接洽和了解,并通过基本的可行性讨论够,初步达成制作协议,这时就需要将项目立项。较好的做法是成立一个专门的项目小组,小组成员包括:项目经理,网页设计,程序员,测试员,编辑/文档等必须人员。项目实行项目经理制。 客户的需求说明书   第一步是需</div> </li> <li><a href="/article/3481.htm" title="AngularJs 三目运算 表达式判断" target="_blank">AngularJs 三目运算 表达式判断</a> <span class="text-muted">qiaolevip</span> <a class="tag" taget="_blank" href="/search/%E6%AF%8F%E5%A4%A9%E8%BF%9B%E6%AD%A5%E4%B8%80%E7%82%B9%E7%82%B9/1.htm">每天进步一点点</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0%E6%B0%B8%E6%97%A0%E6%AD%A2%E5%A2%83/1.htm">学习永无止境</a><a class="tag" taget="_blank" href="/search/%E4%BC%97%E8%A7%82%E5%8D%83%E8%B1%A1/1.htm">众观千象</a><a class="tag" taget="_blank" href="/search/AngularJS/1.htm">AngularJS</a> <div>事件回顾:由于需要修改同一个模板,里面包含2个不同的内容,第一个里面使用的时间差和第二个里面名称不一样,其他过滤器,内容都大同小异。希望杜绝If这样比较傻的来判断if-show or not,继续追究其源码。 var b = "{{", a = "}}"; this.startSymbol = function(a) { </div> </li> <li><a href="/article/3608.htm" title="Spark算子:统计RDD分区中的元素及数量" target="_blank">Spark算子:统计RDD分区中的元素及数量</a> <span class="text-muted">superlxw1234</span> <a class="tag" taget="_blank" href="/search/spark/1.htm">spark</a><a class="tag" taget="_blank" href="/search/spark%E7%AE%97%E5%AD%90/1.htm">spark算子</a><a class="tag" taget="_blank" href="/search/Spark+RDD%E5%88%86%E5%8C%BA%E5%85%83%E7%B4%A0/1.htm">Spark RDD分区元素</a> <div>关键字:Spark算子、Spark RDD分区、Spark RDD分区元素数量     Spark RDD是被分区的,在生成RDD时候,一般可以指定分区的数量,如果不指定分区数量,当RDD从集合创建时候,则默认为该程序所分配到的资源的CPU核数,如果是从HDFS文件创建,默认为文件的Block数。   可以利用RDD的mapPartitionsWithInd</div> </li> <li><a href="/article/3735.htm" title="Spring 3.2.x将于2016年12月31日停止支持" target="_blank">Spring 3.2.x将于2016年12月31日停止支持</a> <span class="text-muted">wiselyman</span> <a class="tag" taget="_blank" href="/search/Spring+3/1.htm">Spring 3</a> <div>              Spring 团队公布在2016年12月31日停止对Spring Framework 3.2.x(包含tomcat 6.x)的支持。在此之前spring团队将持续发布3.2.x的维护版本。          请大家及时准备及时升级到Spring </div> </li> <li><a href="/article/3862.htm" title="fis纯前端解决方案fis-pure" target="_blank">fis纯前端解决方案fis-pure</a> <span class="text-muted">zccst</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a> <div>作者:zccst FIS通过插件扩展可以完美的支持模块化的前端开发方案,我们通过FIS的二次封装能力,封装了一个功能完备的纯前端模块化方案pure。 1,fis-pure的安装 $ fis install -g fis-pure $ pure -v 0.1.4 2,下载demo到本地 git clone https://github.com/hefangshi/f</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>