Andorid中使用Jsoup解析库解析XML、HTML、Dom节点---第三方库学习笔记(三)

XML介绍:

XML简介:

  • XML,可扩展标记语言,标准通用标记语言的子集。
  • 一种用于标记电子文件使其具有结构性的标记语言。
  • 它可以用来标记数据、定义数据类型
  • 是一种允许用户对自己的标记语言进行定义的源语言。
  • 非常适合万维网传输
  • 提供统一方法描述和交换独立于应用程序或供应商的结构化数据

XML的特点:

  • XML是一种标记语言,很类似HTML
  • XML的设计宗旨是传输数据,而非显示数据
  • XML标签没有被预定义,需要自行定义标签
  • XML被设计为具有自我描述性
  • XML是W3C的推荐标准

    XML与HTML对比:

    1. XML和HTML是为不同目的而设计:
  • XML被设计为传输和存储数据,其焦点是数据的内容

  • HTML被设计用来显示数据,其焦点是数据的外观
  • HTML旨在显示数据,而XML旨在传输数据

2.XML仅仅是纯文本
有能力处理纯文本的软件都可以处理XML。不过能够读懂XML的应用程序可以有针对的处理XML的标签。标签的功能性意义依赖于应用程序的特性。

3.XML没有预定义的标签
在HTML中使用的标签(以及HTML的结构)是预定义的。HTML文档只使用在HTML标准中定义过的标签。

XML的语法规则:

  1. 在XML中,省略关闭标签是非法的,所有标签都必须有关闭标签。
  2. XML标签对对大小写敏感
  3. XML必须正确的嵌套
  4. XML文档必须有根元素
  5. XML的属性值必须加引号
  6. XML中,空格会被保留

元素可以包含其他元素、文本、或者两者的混合物。元素也可以拥有属性。

<bookstore>
  <book category="children">
    <title>Harry Pottertitle>
    <author>JK.Rowingauthor>
    <year>2005year>
    <price>29.9price>
  book>
bookstore>
<bookstore><book>都拥有元素内容,因为他们包含了其他元素。
<author>只有文本内容,因为仅包含文本。
在上例中,只有<book>元素属性(category="children")

使用JDK自带的API(Document)解析和生成XML文件:
需要解析的XML文件:


    <languages cat="it">
        <lan id="1">
            <name>Javaname>
            <ide>Eclipseide>
        lan>
        <lan id="2">
            <name>Swiftname>
            <ide>XCodeide>
        lan>
        <lan id="3">
            <name>C#name>
            <ide>Visual Studioide>
        lan>
    languages>
package com.example.myxmltest;

import java.io.InputStream;
import java.io.StringWriter;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class MainActivity extends Activity {
    private TextView text;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        initView();

        dealXML();//解析XML文件

//        createXML();//创建XML文件
    }

    /**
     * 创建XML文件
     */
    private void createXML() {
        try {
        DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder builder = builderFactory.newDocumentBuilder();
        Document document = builder.newDocument();
        //创建根节点元素
        Element root = document.createElement("Languages");
        //为根节点元素设置属性值
        root.setAttribute("cat", "it");

        //第一个子节点
        //创建子节点元素,并为子节点元素设置属性值
        Element lan1 = document.createElement("lan");
        lan1.setAttribute("id", "1");
        //创建子节点的子节点元素,并为其设置内容属性值
        Element name1 = document.createElement("name");
        name1.setTextContent("Java");
        Element ide1 = document.createElement("ide");
        ide1.setTextContent("Eclipse");
        //将这些内容节点添加到子节点中作为子节点的子节点
        lan1.appendChild(name1);
        lan1.appendChild(ide1);

        //第二个子节点
        //创建子节点元素,并为子节点元素设置属性值
        Element lan2 = document.createElement("lan");
        lan2.setAttribute("id", "2");
        //创建子节点的子节点元素,并为其设置内容属性值
        Element name2 = document.createElement("name");
        name2.setTextContent("Swift");
        Element ide2 = document.createElement("ide");
        ide2.setTextContent("XCode");
        //将这些内容节点添加到子节点中作为子节点的子节点
        lan2.appendChild(name2);
        lan2.appendChild(ide2);

        //第三个子节点
        //创建子节点元素,并为子节点元素设置属性值
        Element lan3 = document.createElement("lan");
        lan3.setAttribute("id", "3");
        //创建子节点的子节点元素,并为其设置内容属性值
        Element name3 = document.createElement("name");
        name3.setTextContent("C#");
        Element ide3 = document.createElement("ide");
        ide3.setTextContent("Visual studio");
        //将这些内容节点添加到子节点中作为子节点的子节点
        lan3.appendChild(name3);
        lan3.appendChild(ide3);

        //将子节点添加到根节点中作为根节点的子节点
        root.appendChild(lan1);
        root.appendChild(lan2);
        root.appendChild(lan3);
        //添加根节点元素
        document.appendChild(root);

        TransformerFactory transformerFactory = TransformerFactory.newInstance();
        Transformer transformer = transformerFactory.newTransformer();
        transformer.setOutputProperty("encoding", "utf-8");
        StringWriter sw = new StringWriter();
        transformer.transform(new DOMSource(document), new StreamResult(sw));
        text.setText(sw.toString());

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 用JDK自带的API(Document)解析XML文件
     */
    private void dealXML() {
        try {
            DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
            DocumentBuilder builder = builderFactory.newDocumentBuilder();
            InputStream inputStream = getAssets().open("languages.xml");
            Document document = builder.parse(inputStream);
            //当前的element代表根节点中所有内容
            Element element = document.getDocumentElement();
            NodeList nodeList = element.getElementsByTagName("lan");
            for (int i = 0; i < nodeList.getLength(); i++) {
                Element lan = (Element) nodeList.item(i);
                text.append(lan.getAttribute("id")+"\n");
                text.append(lan.getElementsByTagName("name").item(0).getTextContent()+"\n");
                text.append(lan.getElementsByTagName("ide").item(0).getTextContent()+"\n");
            }


        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    private void initView() {
        text = (TextView) findViewById(R.id.text);
    }
}

HTML、XML等Dom节点类解析库的使用:

Jsoup简介:
jsoup是一款Java的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于JQuery的操作方法来取出和操作数据。

Jsoup特点:

  • HTML、XML、自定义DOM格式文本解析
  • 可操作HTML元素、属性、文本
  • 适用于采集解析网站HTML
  • DOM解析功能非常强大

Jsoup基本用法:

  1. 分析Html或Dom文本的结点标签结构
  2. 寻找你要解析的那个内容部分所在的结点标记
  3. 调用Jsoup API解析结点内容

代码演示:

  1. 使用Jsoup载入Html数据
  2. 使用Jsoup解析并提取HTML元素
  3. 使用Jsoup修改数据
  4. 使用Jsoup HTML文档清理
package com.test.Jsoup;

import java.io.File;
import java.io.IOException;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.safety.Whitelist;
import org.jsoup.select.Elements;

import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;

import com.example.myxmltest.R;

/**
 * Jsoup的四个功能的基本使用方法
 * @author Administrator
 *
 */
public class JsoupTest extends Activity {
    private String html = "Jsoup的用法

这里是Jsoup项目的相关文章

"
; private String url = "http://baidu.com"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); /* * 1.使用 Jsoup 载入 Html 数据功能 * 数据内容可以是:html文本、url、本地html */ //1.html文本 Document doc = Jsoup.parse(html); //可以获取到html中的值</span> doc.title(); <span class="hljs-comment">//2.url</span> <span class="hljs-keyword">try</span> { <span class="hljs-comment">//通过GET方式请求</span> Document doc2 = Jsoup.connect(url).get(); <span class="hljs-comment">//通过POST方法请求</span> <span class="hljs-comment">// Document doc2 = Jsoup.connect(url).data("key","value").timeout(3000).post();</span> } <span class="hljs-keyword">catch</span> (IOException e) { e.printStackTrace(); } <span class="hljs-comment">//3.本地html</span> <span class="hljs-comment">//获取本地html文件</span> File file = <span class="hljs-keyword">new</span> File(Environment.getExternalStorageDirectory()+<span class="hljs-string">"/index.html"</span>); <span class="hljs-comment">//parse()方法参数解释:1.html文件 2.html的编码格式(本地html文件是什么编码就写什么编码) 3.当本地html文件中的图片或者链接采用的是相对路径时,就可以通过指定的baseUri替换路径的前缀。eg:.../baidu.png-->http://baidu.com/baidu.png</span> <span class="hljs-keyword">try</span> { Document doc3 = Jsoup.parse(file, <span class="hljs-string">"utf-8"</span>, <span class="hljs-string">"http://baidu.com"</span>); } <span class="hljs-keyword">catch</span> (IOException e) { e.printStackTrace(); } <span class="hljs-comment">/* * 2.使用 Jsoup 解析并提取 HTML元素功能 */</span> Elements eles = doc.getElementsByTag(<span class="hljs-string">"a"</span>);<span class="hljs-comment">//将a标签的列表存储成元素集合</span> <span class="hljs-keyword">for</span> (Element link : eles) { <span class="hljs-comment">//获取a标签中href的属性值</span> String linkHref = link.attr(<span class="hljs-string">"href"</span>); <span class="hljs-comment">//获取a标签中的文本值</span> String text = link.text(); } <span class="hljs-comment">//检索元素功能</span> <span class="hljs-comment">//检索html文件中的a标签并且就有href属性的a标签列表存储成元素集合</span> Elements elements = doc.select(<span class="hljs-string">"a[href]"</span>); <span class="hljs-comment">//检索html文件中有img标签的.png格式的图片</span> Elements elements2 = doc.select(<span class="hljs-string">"img[src$=.png]"</span>); <span class="hljs-comment">//检索出元素名为className的div标签的元素</span> Element element3 = doc.select(<span class="hljs-string">"div.className"</span>).first(); <span class="hljs-comment">/* * 3.使用 Jsoup 修改数据属性功能 */</span> <span class="hljs-comment">//对元素名为className的div标签添加属性,属性名为key,属性值为value</span> doc.select(<span class="hljs-string">"div.className"</span>).attr(<span class="hljs-string">"key"</span>,<span class="hljs-string">"value"</span>); <span class="hljs-comment">//为元素名为className的div标签添加属性类,添加的属性为:class="myclass"</span> doc.select(<span class="hljs-string">"div.className"</span>).addClass(<span class="hljs-string">"myclass"</span>); <span class="hljs-comment">//移除img标签的onClick属性</span> doc.select(<span class="hljs-string">"img"</span>).removeAttr(<span class="hljs-string">"onClick"</span>); <span class="hljs-comment">/* * 4.使用 Jsoup HTML 文档清理功能 */</span> String htmls = <span class="hljs-string">""</span>;<span class="hljs-comment">//不安全的一个html代码</span> String safe = Jsoup.clean(htmls, Whitelist.basic());<span class="hljs-comment">//用基本的白名单将不安全的html代码转换为安全的html</span> } } </code></pre> <p><strong>使用Jsoup来实现复杂的Html列表解析:</strong></p> <p>实现效果: <br> 使用 Jsoup 实现对某网站新闻列表的采集解析</p> <pre class="prettyprint"><code class="hljs java"><span class="hljs-keyword">package</span> com.test.jsoupdemo; <span class="hljs-keyword">import</span> java.io.IOException; <span class="hljs-keyword">import</span> org.jsoup.Jsoup; <span class="hljs-keyword">import</span> org.jsoup.nodes.Document; <span class="hljs-keyword">import</span> org.jsoup.nodes.Element; <span class="hljs-keyword">import</span> org.jsoup.select.Elements; <span class="hljs-keyword">import</span> com.example.myxmltest.R; <span class="hljs-keyword">import</span> android.app.Activity; <span class="hljs-keyword">import</span> android.os.Bundle; <span class="hljs-keyword">import</span> android.util.Log; <span class="hljs-javadoc">/** * 使用Jsoup解析HtmL新闻列表 */</span> <span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">JsoupDemo</span> <span class="hljs-keyword">extends</span> <span class="hljs-title">Activity</span> {</span> <span class="hljs-keyword">private</span> String url = <span class="hljs-string">"http://mobile.csdn.net/"</span>; <span class="hljs-annotation">@Override</span> <span class="hljs-keyword">protected</span> <span class="hljs-keyword">void</span> <span class="hljs-title">onCreate</span>(Bundle savedInstanceState) { <span class="hljs-keyword">super</span>.onCreate(savedInstanceState); setContentView(R.layout.activity_main); <span class="hljs-keyword">new</span> Thread(<span class="hljs-keyword">new</span> Runnable() { <span class="hljs-annotation">@Override</span> <span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">run</span>() { parseHtml(); } }).start();; } <span class="hljs-comment">//使用Jsoup解析html新闻列表</span> <span class="hljs-keyword">private</span> <span class="hljs-keyword">void</span> <span class="hljs-title">parseHtml</span>() { <span class="hljs-keyword">try</span> { Document doc = Jsoup.connect(url).get(); <span class="hljs-comment">//将所有的新闻列表存储为元素的集合</span> Elements elements = doc.select(<span class="hljs-string">"div.unit"</span>); <span class="hljs-keyword">for</span> (Element element : elements) { <span class="hljs-comment">//获取每一条新闻的标题<h1>标签中的文本内容,因为每条新闻中只有一个h1,所以可以通过getElementsByTag("h1")获取到</span> String title = element.getElementsByTag(<span class="hljs-string">"h1"</span>).first().text(); <span class="hljs-comment">//获取每条新闻标题中的<h1>标签中的超链接</span> String href = element.getElementsByTag(<span class="hljs-string">"h1"</span>).first().getElementsByTag(<span class="hljs-string">"a"</span>).first().attr(<span class="hljs-string">"href"</span>); <span class="hljs-comment">//获取每条新闻的新闻内容<dd>标签中的文本内容</span> <span class="hljs-comment">// String content = element.getElementsByTag("dd").first().text();</span> Log.i(<span class="hljs-string">"tag"</span>, title); Log.i(<span class="hljs-string">"tag"</span>, href); <span class="hljs-comment">// Log.i("tag", content);</span> } } <span class="hljs-keyword">catch</span> (IOException e) { e.printStackTrace(); } } } </code></pre> <p>原网页截图: <br><a href="http://img.e-com-net.com/image/info8/a17979c6eab4421088a9e9ff3c1a7a81.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/a17979c6eab4421088a9e9ff3c1a7a81.jpg" alt="Andorid中使用Jsoup解析库解析XML、HTML、Dom节点---第三方库学习笔记(三)_第1张图片" title="" width="650" height="350" style="border:1px solid black;"></a></p> <p>对应的网页源代码截图: <br><a href="http://img.e-com-net.com/image/info8/2f42bdcee859485d98bc9cee24960ade.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/2f42bdcee859485d98bc9cee24960ade.jpg" alt="Andorid中使用Jsoup解析库解析XML、HTML、Dom节点---第三方库学习笔记(三)_第2张图片" title="" width="650" height="350" style="border:1px solid black;"></a></p> <p>根据上图可以看出每条新闻的相同点:每条新闻的内容都是在<code><div class="unit"></code>标签中。</p> <p><a href="http://img.e-com-net.com/image/info8/7225f2855abf4e1b812591b790b3b040.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/7225f2855abf4e1b812591b790b3b040.jpg" alt="Andorid中使用Jsoup解析库解析XML、HTML、Dom节点---第三方库学习笔记(三)_第3张图片" title="" width="650" height="350" style="border:1px solid black;"></a><br> 通过上图可以发现每条新闻中只有一个<code><h1></code>标签。</p> <p>运行结果截图: <br><a href="http://img.e-com-net.com/image/info8/49faba8facc9419c88fd60f5fd6fefd6.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/49faba8facc9419c88fd60f5fd6fefd6.jpg" alt="Andorid中使用Jsoup解析库解析XML、HTML、Dom节点---第三方库学习笔记(三)_第4张图片" title="" width="650" height="329" style="border:1px solid black;"></a></p> </div> <script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script> <div> <p style="font-size:12px;">版权声明:本文为博主原创文章,未经博主允许不得转载。</p> </div> </div> </div> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1295173818255482880"></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">你可能感兴趣的:(Andorid中使用Jsoup解析库解析XML、HTML、Dom节点---第三方库学习笔记(三))</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1899412307650342912.htm" title="《AI浪潮中的璀璨新星:Meta Llama、Ollama与DeepSeek的深度剖析》" target="_blank">《AI浪潮中的璀璨新星:Meta Llama、Ollama与DeepSeek的深度剖析》</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/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/llama/1.htm">llama</a> <div>《AI浪潮中的璀璨新星:MetaLlama、Ollama与DeepSeek的深度剖析》引言:AI大模型的群雄逐鹿时代在科技飞速发展的当下,AI大模型领域已成为全球瞩目的焦点,竞争激烈程度堪称白热化。从OpenAI推出的GPT系列,到谷歌的BERT、百度的文心一言等,众多巨头纷纷下场,不断推陈出新,试图在这个充满潜力的领域占据一席之地。而在这场激烈的角逐中,MetaLlama、Ollama和Deep</div> </li> <li><a href="/article/1899412180600680448.htm" title="Web端测试时,接口返回200,页面有没显示,可能时什么原因?" target="_blank">Web端测试时,接口返回200,页面有没显示,可能时什么原因?</a> <span class="text-muted">海姐软件测试</span> <a class="tag" taget="_blank" href="/search/%E6%B5%8B%E8%AF%95%E5%B7%A5%E5%85%B7/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/%E8%81%8C%E5%9C%BA%E5%92%8C%E5%8F%91%E5%B1%95/1.htm">职场和发展</a> <div>需从系统架构、前后端交互、测试方法三个维度展开分析,结合具体场景给出可落地的排查方案:一、核心原因分析(按优先级排序)前端渲染异常JS脚本执行错误(如语法错误导致页面渲染中断)DOM元素未正确加载(XHR异步请求未完成时触发渲染)CSS样式冲突(display:none/visibility:hidden导致元素不可见)数据解析错误接口返回字段缺失(如缺少关键展示字段id)数据格式不符合预期(如字</div> </li> <li><a href="/article/1899412181234020352.htm" title="接口测试中遇到的最大的困难是什么?Java接口测试中用到的框架有哪些?" target="_blank">接口测试中遇到的最大的困难是什么?Java接口测试中用到的框架有哪些?</a> <span class="text-muted">海姐软件测试</span> <a class="tag" taget="_blank" href="/search/%E6%8E%A5%E5%8F%A3%E6%B5%8B%E8%AF%95/1.htm">接口测试</a><a class="tag" taget="_blank" href="/search/%E6%B5%8B%E8%AF%95%E5%B7%A5%E5%85%B7/1.htm">测试工具</a> <div>接口测试中的最大困难环境依赖与数据准备接口测试常依赖外部服务或数据库,测试环境不稳定(如第三方接口延迟)会导致测试结果不可靠。解决方案:使用Mock技术(如Mockito)模拟外部依赖,或通过Docker容器化测试环境,确保数据隔离。参数与逻辑复杂度复杂接口可能涉及多参数组合、加密签名(如Token、OAuth)或动态参数(如时间戳),手工构造请求容易出错。示例:电商接口需同时验证商品库存、用户优</div> </li> <li><a href="/article/1899411928439123968.htm" title="模型上下文协议(MCP):构建 AI 与数据交互的新范式" target="_blank">模型上下文协议(MCP):构建 AI 与数据交互的新范式</a> <span class="text-muted">xxgshxs</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/chatgpt/1.htm">chatgpt</a><a class="tag" taget="_blank" href="/search/prompt/1.htm">prompt</a><a class="tag" taget="_blank" href="/search/%E6%96%87%E5%BF%83%E4%B8%80%E8%A8%80/1.htm">文心一言</a><a class="tag" taget="_blank" href="/search/llama/1.htm">llama</a><a class="tag" taget="_blank" href="/search/copilot/1.htm">copilot</a> <div>引言在人工智能领域,大型语言模型(LLMs)的应用正从通用问答向复杂任务执行演进,但数据孤岛、工具集成碎片化及隐私安全等问题制约了其潜力。模型上下文协议(ModelContextProtocol,MCP)作为Anthropic提出的开放标准,旨在通过标准化接口连接AI应用与异构数据源及工具,重塑AI开发范式。本文从技术架构、核心功能、应用场景等维度解析MCP的设计逻辑与实践价值。一、核心概念与设计</div> </li> <li><a href="/article/1899411170629054464.htm" title="如何有效管理 JavaScript 中的内存:垃圾回收与最佳实践" target="_blank">如何有效管理 JavaScript 中的内存:垃圾回收与最佳实践</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/%E5%89%8D%E7%AB%AF/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/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E6%A1%86%E6%9E%B6/1.htm">前端框架</a><a class="tag" taget="_blank" href="/search/react.js/1.htm">react.js</a><a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a> <div>“垃圾回收是现代编程语言的核心特性之一,它使得开发者可以专注于功能实现,而无需担心内存管理的细节。”——在JavaScript中,垃圾回收(GC)是一个自动化的内存管理过程,它帮助我们确保不再使用的内存得到释放。尽管JavaScript的垃圾回收机制非常强大,但如果对其原理和工作方式不够了解,也可能导致一些性能问题和内存泄漏。本文将深入探讨JavaScript中的垃圾回收机制、算法以及如何优化垃圾</div> </li> <li><a href="/article/1899411172239667200.htm" title="【JavaScript 】垃圾回收机制进阶解析:提高性能的终极指南" target="_blank">【JavaScript 】垃圾回收机制进阶解析:提高性能的终极指南</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/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/jvm/1.htm">jvm</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%89%8D%E7%AB%AF/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/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a> <div>“垃圾回收机制不仅是内存管理的基石,更是高效Web开发的保障。在JavaScript中,理解其工作原理至关重要。”在JavaScript中,垃圾回收(GarbageCollection,GC)是一个自动化的内存管理过程,能够有效防止内存泄漏虽然这看似是一个简单的机制,但背后却包含着丰富的理论与实现细节。理解这些原理,不仅能够帮助我们写出更高效的代码,还能避免一些性能问题和内存泄漏。本文将带你深入探</div> </li> <li><a href="/article/1899410792613212160.htm" title="Windows Debugging: 解析 c00001a5 异常(Invalid Exception Handler)" target="_blank">Windows Debugging: 解析 c00001a5 异常(Invalid Exception Handler)</a> <span class="text-muted">金士顿</span> <a class="tag" taget="_blank" href="/search/windbg/1.htm">windbg</a><a class="tag" taget="_blank" href="/search/windows/1.htm">windows</a> <div>WindowsDebugging:解析c00001a5异常(InvalidExceptionHandler)在调试Windows应用程序时,我们可能会遇到一些棘手的异常错误。其中,0xC00001A5(“Aninvalidexceptionhandlerroutinehasbeendetected”)是一个涉及异常处理错误的问题,通常与无效的SEH(StructuredExceptionHandl</div> </li> <li><a href="/article/1899409785036533760.htm" title="搭建分布式Hive集群" target="_blank">搭建分布式Hive集群</a> <span class="text-muted">逸曦玥泱</span> <a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AE%E8%BF%90%E7%BB%B4/1.htm">大数据运维</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E5%B8%83%E5%BC%8F/1.htm">分布式</a><a class="tag" taget="_blank" href="/search/hive/1.htm">hive</a><a class="tag" taget="_blank" href="/search/hadoop/1.htm">hadoop</a> <div>title:搭建分布式Hive集群date:2024-11-2923:39:00categories:-服务器tags:-Hive-大数据搭建分布式Hive集群本次实验环境:Centos7-2009、Hadoop-3.1.4、JDK8、Zookeeper-3.6.3、Mysql-5.7.38、Hive-3.1.2功能规划方案一(本地运行模式)Master主节点(Mysql+Hive)192.168</div> </li> <li><a href="/article/1899409153919610880.htm" title="黑马程序员-接口测试-四天学习接口测试-第二天-接口用例设计,测试点,功能测试,安全测试,性能测试,单接口测试,业务场景测试用例,postman简介,安装" target="_blank">黑马程序员-接口测试-四天学习接口测试-第二天-接口用例设计,测试点,功能测试,安全测试,性能测试,单接口测试,业务场景测试用例,postman简介,安装</a> <span class="text-muted">学习记录wanxiaowan</span> <a class="tag" taget="_blank" href="/search/postman/1.htm">postman</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%8A%9F%E8%83%BD%E6%B5%8B%E8%AF%95/1.htm">功能测试</a> <div>今日学习目标分析接口文档,设计编写接口测试用例使用Postman设置请求方法、URL、请求头、请求体,向接口发送http请求,并查看响应数据分析接口文档,设计接口测试用例使用postman设置请求方法,url请求头,请求体,查看响应数据3接口用例设计为什么写防止测试点漏测。条理清晰方便分配工作,评估工作量和时间面试时使用!接口测试的测试点测试点称之为测试维度。5功能测试单接口功能:手工测试中的单个</div> </li> <li><a href="/article/1899407893111828480.htm" title="AI人工智能 Agent:电力系统中智能体的应用" target="_blank">AI人工智能 Agent:电力系统中智能体的应用</a> <span class="text-muted">AI天才研究院</span> <a class="tag" taget="_blank" href="/search/AI%E5%A4%A7%E6%A8%A1%E5%9E%8B%E4%BC%81%E4%B8%9A%E7%BA%A7%E5%BA%94%E7%94%A8%E5%BC%80%E5%8F%91%E5%AE%9E%E6%88%98/1.htm">AI大模型企业级应用开发实战</a><a class="tag" taget="_blank" href="/search/DeepSeek/1.htm">DeepSeek</a><a class="tag" taget="_blank" href="/search/R1/1.htm">R1</a><a class="tag" taget="_blank" href="/search/%26amp%3B/1.htm">&</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AEAI%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD%E5%A4%A7%E6%A8%A1%E5%9E%8B/1.htm">大数据AI人工智能大模型</a><a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E7%A7%91%E5%AD%A6/1.htm">计算科学</a><a class="tag" taget="_blank" href="/search/%E7%A5%9E%E7%BB%8F%E8%AE%A1%E7%AE%97/1.htm">神经计算</a><a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a><a class="tag" taget="_blank" href="/search/%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C/1.htm">神经网络</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AE/1.htm">大数据</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E5%9E%8B%E8%AF%AD%E8%A8%80%E6%A8%A1%E5%9E%8B/1.htm">大型语言模型</a><a class="tag" taget="_blank" href="/search/AI/1.htm">AI</a><a class="tag" taget="_blank" href="/search/AGI/1.htm">AGI</a><a class="tag" taget="_blank" href="/search/LLM/1.htm">LLM</a><a class="tag" taget="_blank" href="/search/Java/1.htm">Java</a><a class="tag" taget="_blank" href="/search/Python/1.htm">Python</a><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/Agent/1.htm">Agent</a><a class="tag" taget="_blank" href="/search/RPA/1.htm">RPA</a> <div>AI人工智能Agent:电力系统中智能体的应用作者:禅与计算机程序设计艺术1.背景介绍1.1电力系统的挑战与机遇电力系统是现代社会运行的基石,其安全、可靠、高效运行对经济发展和人民生活至关重要。近年来,随着可再生能源的快速发展、电力需求的不断增长以及电力市场化的推进,电力系统面临着前所未有的挑战,同时也迎来了新的发展机遇。挑战:可再生能源的波动性和间歇性:太阳能和风能等可再生能源的输出功率受天气条</div> </li> <li><a href="/article/1899406507481559040.htm" title="K-means 算法核心原理" target="_blank">K-means 算法核心原理</a> <span class="text-muted">code 旭</span> <a class="tag" taget="_blank" href="/search/AI%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD%E5%AD%A6%E4%B9%A0/1.htm">AI人工智能学习</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/kmeans/1.htm">kmeans</a><a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/1.htm">机器学习</a> <div>一、K-means算法核心原理1.算法目标将n个样本划分到k个簇中,使得每个样本到所属簇中心的距离平方和最小。2.数学公式目标函数(SSE,簇内平方误差):J=∑i=1k∑x∈Ci∥x−μi∥2J=\sum_{i=1}^k\sum_{x\inC_i}\|x-\mu_i\|^2J=i=1∑kx∈Ci∑∥x−μi∥2其中:CiC_iCi表示第iii个簇μi\mu_iμi表示第iii个簇的质心二、算法步</div> </li> <li><a href="/article/1899406381090402304.htm" title="电力行业中的AMI系统" target="_blank">电力行业中的AMI系统</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/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a> <div>在电力行业中,AMI系统(AdvancedMeteringInfrastructure,高级计量基础设施)是一种集成了智能电表、通信网络和数据管理系统的现代化计量体系。AMI系统能够实现电力公司与用户之间的双向通信,提供实时用电数据,支持远程抄表、负荷管理、故障检测等功能,是智能电网的重要组成部分。以下是AMI系统的核心组成、功能、优势及其在电力行业中的应用:AMI系统的核心组成智能电表(Smar</div> </li> <li><a href="/article/1899405624760922112.htm" title="kubernetes的ingress实现同时支持http和https" target="_blank">kubernetes的ingress实现同时支持http和https</a> <span class="text-muted">忍冬行者</span> <a class="tag" taget="_blank" href="/search/k8s/1.htm">k8s</a><a class="tag" taget="_blank" href="/search/http/1.htm">http</a><a class="tag" taget="_blank" href="/search/kubernetes/1.htm">kubernetes</a><a class="tag" taget="_blank" href="/search/https/1.htm">https</a> <div>生产环境中对外的服务一般需要配置https服务,使用ingress也可以很方面的添加https的证书。默认情况下,如果为该Ingress启用了TLS,控制器会使用308永久重定向响应将HTTP客户端重定向到HTTPS端口443。(Ingress里配置了https证书的话,默认就一定会走https)。即默认情况下,如果在ingress规则中配置了tls,所有http的流量都会重定向到https。在一</div> </li> <li><a href="/article/1899405246707331072.htm" title="XGBoost常见面试题(五)——模型对比" target="_blank">XGBoost常见面试题(五)——模型对比</a> <span class="text-muted">月亮月亮要去太阳</span> <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/%E7%BB%8F%E9%AA%8C%E5%88%86%E4%BA%AB/1.htm">经验分享</a> <div>XGBoost与GBDT的区别机器学习算法中GBDT和XGBOOST的区别有哪些?-知乎基分类器:传统GBDT以CART树作为基分类器,xgboost还支持线性分类器,这个时候xgboost相当于带L1和L2正则化项的逻辑斯蒂回归(分类问题)或者线性回归(回归问题)。导数:传统GBDT在优化时只用到一阶导数信息,xgboost则对代价函数进行了二阶泰勒展开,同时用到了一阶和二阶导数。同时xgboo</div> </li> <li><a href="/article/1899405245457428480.htm" title="Kibana 单机与集群部署教程" target="_blank">Kibana 单机与集群部署教程</a> <span class="text-muted">闲人编程</span> <a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AE%E9%9B%86%E7%BE%A4%E9%83%A8%E7%BD%B2%E6%95%99%E7%A8%8B/1.htm">大数据集群部署教程</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AE/1.htm">大数据</a><a class="tag" taget="_blank" href="/search/%E9%9B%86%E7%BE%A4/1.htm">集群</a><a class="tag" taget="_blank" href="/search/%E5%8D%95%E6%9C%BA/1.htm">单机</a><a class="tag" taget="_blank" href="/search/%E9%83%A8%E7%BD%B2/1.htm">部署</a><a class="tag" taget="_blank" href="/search/Kibana/1.htm">Kibana</a><a class="tag" taget="_blank" href="/search/%E6%97%A5%E5%BF%97%E5%88%86%E6%9E%90/1.htm">日志分析</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%8F%AF%E8%A7%86%E5%8C%96/1.htm">数据可视化</a> <div>目录Kibana单机与集群部署教程第一部分:Kibana概述第二部分:Kibana单机部署教程1.安装Kibana1.1安装依赖项1.2下载和安装Kibana1.3启动Kibana2.单机案例代码实现(Python)3.常见问题及解决方法3.1无法启动Kibana服务3.2Kibana无法连接到Elasticsearch第三部分:Kibana集群部署教程1.配置集群节点1.1配置Elasticse</div> </li> <li><a href="/article/1899405119406010368.htm" title="JavaScript面试宝典" target="_blank">JavaScript面试宝典</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/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>1.JS由哪三部分组成?JavaScript由以下三部分组成:ECMAScript(ES):JavaScript的核心语法,如变量、作用域、数据类型、函数、对象等。DOM(文档对象模型):用于操作HTML和XML文档的API,可以动态修改网页内容、结构和样式。BOM(浏览器对象模型):用于操作浏览器窗口和页面,例如window、navigator、location、history、screen等对</div> </li> <li><a href="/article/1899404110487154688.htm" title="【算法】BFS(最短路径问题、拓扑排序)" target="_blank">【算法】BFS(最短路径问题、拓扑排序)</a> <span class="text-muted">秦jh_</span> <a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/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><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a> <div>个人主页:秦jh_-CSDN博客系列专栏:https://blog.csdn.net/qinjh_/category_12862161.html?fromshare=blogcolumn&sharetype=blogcolumn&sharerId=12862161&sharerefer=PC&sharesource=qinjh_&sharefrom=from_link目录边权为1的最短路径问题多源</div> </li> <li><a href="/article/1899403480188121088.htm" title="卷积神经网络(笔记01)" target="_blank">卷积神经网络(笔记01)</a> <span class="text-muted">天行者@</span> <a class="tag" taget="_blank" href="/search/cnn/1.htm">cnn</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%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a> <div>视觉处理三大任务:分类、目标检测、图像分割CNN网络主要有三部分构成:卷积层(ConvolutionalLayer)、池化层(PoolingLayer)和激活函数一、解释卷积层中的偏置项是什么,并讨论在神经网络中引入偏置项的好处。在卷积神经网络(CNN)的卷积层里,卷积操作本质上是输入数据与卷积核(滤波器)进行逐元素相乘再求和的过程。偏置项(Bias)是一个额外的可学习参数,对于每个卷积核而言,都</div> </li> <li><a href="/article/1899403227594551296.htm" title="MPU6050 卡尔曼滤波算法 四元数欧拉姿态解算 STM32 CubeMX HAL库 MDKkeil5 零基础移植" target="_blank">MPU6050 卡尔曼滤波算法 四元数欧拉姿态解算 STM32 CubeMX HAL库 MDKkeil5 零基础移植</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/stm32/1.htm">stm32</a><a class="tag" taget="_blank" href="/search/%E5%B5%8C%E5%85%A5%E5%BC%8F%E7%A1%AC%E4%BB%B6/1.htm">嵌入式硬件</a> <div>文章目录一、在cubemx开启IIC并设置好对应的IIC引脚二、generatecode生成代码三、复制以下的全部代码新建分别保存放到IncSrc文件夹中1.MPU6050.h2.MPU6050.C四、如何使用总结一、在cubemx开启IIC并设置好对应的IIC引脚二、generatecode生成代码(记得生成单个c.h.文件)!!!!!!三、复制以下的全部代码新建分别保存放到IncSrc文件夹中</div> </li> <li><a href="/article/1899402847414448128.htm" title="【Spring】_Spring事务与事务传播机制" target="_blank">【Spring】_Spring事务与事务传播机制</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/JavaEE/1.htm">JavaEE</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a> <div>目录1.创建项目、数据库及MyBatis配置1.1创建数据库及java实体类1.2使用yml配置MyBatis1.3对应三层架构开发2.Spring编程式事务2.1编写UserController类2.2接口测试2.23关于事务回滚与事务提交的日志3.Spring声明式事务3.1编写TransController类3.2接口测试3.3关于@Transactional实现事务回滚的情况3.3.1重新</div> </li> <li><a href="/article/1899402594716020736.htm" title="三维声学各向异性材料设计:具体步骤与示例" target="_blank">三维声学各向异性材料设计:具体步骤与示例</a> <span class="text-muted">斡旋小羊</span> <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/%E7%AE%97%E6%B3%95/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>三维声学各向异性材料设计:具体步骤与示例1.理论建模:三维微结构与等效参数映射(1)各向异性密度张量推导假设材料由椭球体散射体周期性嵌入基体材料构成,其等效密度张量可通过三维均匀化理论计算:未旋转椭球的局部密度张量(主轴对齐坐标系):ρell=[ρbase+f⋅Δρ⋅ab000ρbase+f⋅Δρ⋅ba000ρbase+f⋅Δρ⋅ca]\rho_{\text{ell}}=\begin{bmatri</div> </li> <li><a href="/article/1899402468391972864.htm" title="常用图像增强算法原理及 OpenCV C++ 实现" target="_blank">常用图像增强算法原理及 OpenCV C++ 实现</a> <span class="text-muted">埃菲尔铁塔_CV算法</span> <a class="tag" taget="_blank" href="/search/opencv/1.htm">opencv</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><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/c%2B%2B/1.htm">c++</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%E5%99%A8%E5%AD%A6%E4%B9%A0/1.htm">机器学习</a> <div>一、引言图像增强是数字图像处理中的一个重要分支,其目的是改善图像的视觉效果,突出图像中的重要信息,或者将图像转换为更适合人或机器分析处理的形式。在实际应用中,图像增强技术广泛应用于医学影像、遥感图像、安防监控等领域。本文将详细介绍常用的图像增强算法原理,并给出基于OpenCVC++库的实现代码。二、图像增强算法分类图像增强算法可以分为空间域增强和频域增强两大类。空间域增强是直接对图像的像素值进行操</div> </li> <li><a href="/article/1899401204899835904.htm" title="likeadmin 安装与使用指南" target="_blank">likeadmin 安装与使用指南</a> <span class="text-muted">强和毓Hadley</span> <div>likeadmin安装与使用指南项目地址:https://gitcode.com/gh_mirrors/li/likeadmin目录结构及介绍在克隆或下载likeadmin项目后,你会看到以下主要目录:admin:存放所有后端管理相关的代码。controller:控制器目录,负责处理HTTP请求。model:数据模型目录,用于数据库操作。service:服务层目录,提供业务逻辑。frontend:</div> </li> <li><a href="/article/1899401205357015040.htm" title="ESP32 小智 AI 机器人入门教程从原理到实现(自己云端部署)" target="_blank">ESP32 小智 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><a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E4%BA%BA/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%E6%9C%BA%E4%BA%A4%E4%BA%92/1.htm">人机交互</a><a class="tag" taget="_blank" href="/search/github/1.htm">github</a><a class="tag" taget="_blank" href="/search/visual/1.htm">visual</a><a class="tag" taget="_blank" href="/search/studio/1.htm">studio</a><a class="tag" taget="_blank" href="/search/%E5%8D%95%E7%89%87%E6%9C%BA/1.htm">单片机</a> <div>此博客为一篇针对初学者的详细教程,涵盖小智AI机器人的原理、硬件准备、软件环境搭建、代码实现、云端部署以及优化扩展。文章结合了现有的网络资源,取长补短,确保内容易于理解和操作。简介:本教程将指导初学者使用ESP32微控制器开发一个简单的语音对话机器人“小智”。我们将介绍所需的基础原理、硬件准备、软件环境搭建,以及如何编写代码实现语音唤醒和与云端大模型的对接。通过本教程,即使没有深厚的AI或嵌入式经</div> </li> <li><a href="/article/1899400323483627520.htm" title="我与DeepSeek读《大型网站技术架构》(5)下" target="_blank">我与DeepSeek读《大型网站技术架构》(5)下</a> <span class="text-muted">诺亚凹凸曼</span> <a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a> <div>万无一失:网站的高可用架构4.高可用的数据保证数据存储高可用的手段主要是数据备份和失效转移机制。缓存服务的高可用争论1.缓存服务需要实现高可用核心论据:避免雪崩效应:缓存宕机导致数据库瞬时压力骤增,可能引发级联故障。提升用户体验:缓存直接支撑高频访问,其不可用会导致延迟飙升、功能异常。数据热备价值:部分缓存数据(如会话信息)可能无持久化备份,丢失后影响业务连续性。适用场景:高并发实时系统:如电商秒</div> </li> <li><a href="/article/1899400197226688512.htm" title="我与DeepSeek读《大型网站技术架构》(3)" target="_blank">我与DeepSeek读《大型网站技术架构》(3)</a> <span class="text-muted">诺亚凹凸曼</span> <a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a> <div>大型网站架构的核心要素《大型网站技术架构:核心原理与案例分析》第三章聚焦于大型网站架构的核心要素,从技术维度剖析了构建高可用、高性能、可扩展系统的关键设计方向。1.五大核心架构要素(1)性能(Performance)目标:快速响应用户请求,优化用户体验。关键策略:前端优化:CDN加速静态资源、合并压缩JS/CSS、浏览器缓存。服务端优化:缓存(Redis/Memcached)、异步处理(消息队列)</div> </li> <li><a href="/article/1899399819068239872.htm" title="八股文-Linux网络部分" target="_blank">八股文-Linux网络部分</a> <span class="text-muted">im长街</span> <a class="tag" taget="_blank" href="/search/%E5%85%AB%E8%82%A1%E6%96%87%E4%B8%93%E6%A0%8F/1.htm">八股文专栏</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a> <div>目录TCP和UDP的区别套接字编程一般的流程是什么Cookie,session和token有什么区别HTTP和HTTPS的区别讲一下TCP的三次握手和四次挥手TCP通过什么来保证可靠性TCP通过什么方式来提高性能了解哪些TCP协议的报头数据如何解决TCP的粘包问题什么是IP协议IP协议的字段了解多少什么是网段划分WAN口ip和LAN口ip的作用了解过NAT技术吗谈一谈你对ARP协议的理解有了ip地</div> </li> <li><a href="/article/1899399566386589696.htm" title="WordPress建站给外贸人带来的负担" target="_blank">WordPress建站给外贸人带来的负担</a> <span class="text-muted">小机出海</span> <a class="tag" taget="_blank" href="/search/%E5%BB%BA%E7%AB%99%E5%B8%B8%E8%B0%88/1.htm">建站常谈</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a><a class="tag" taget="_blank" href="/search/ssl/1.htm">ssl</a><a class="tag" taget="_blank" href="/search/https/1.htm">https</a> <div>WordPress是全球最大的开源建站平台,有着丰富的主题与插件,尽管功能非常强大,但也给想要建站的外贸人带来了一些负担。一、技术门槛与学习成本1、由于WordPress发展了几十年,里面的功能应有尽有,但往往这些复杂的功能导致建站新手对它的学习成本变得很高,需要理解各个模块与功能点,增加了上手的复杂度。2、WordPress的建站服务商他不会告诉你,你可能需要知道一些代码知识(HTML、CSS、</div> </li> <li><a href="/article/1899398936402128896.htm" title="Manus联创澄清:我们并未使用MCP技术" target="_blank">Manus联创澄清:我们并未使用MCP技术</a> <span class="text-muted">耶耶Norsea</span> <a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E6%9D%82%E7%83%A9/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>摘要近日,Manus联创针对外界关于其产品可能涉及“沙盒越狱”的疑问进行了正式回应。公司明确表示并未使用Anthropic的MCP(模型上下文协议)技术,并强调MCP是一个旨在标准化应用程序与大型语言模型(LLM)之间上下文交互的开放标准。此外,Manus联创宣布了开源计划,以增强透明度和社区参与。季逸超也确认他们没有采用MCP技术,进一步澄清了相关质疑。关键词沙盒越狱,MCP技术,开源计划,透明</div> </li> <li><a href="/article/1899398305947906048.htm" title="【Servlet】深入解析 Servlet 启动过程 —— 原理分析、代码实战及在 JDK 和 Spring 中的应用" target="_blank">【Servlet】深入解析 Servlet 启动过程 —— 原理分析、代码实战及在 JDK 和 Spring 中的应用</a> <span class="text-muted">工一木子</span> <a class="tag" taget="_blank" href="/search/%E5%8E%9F%E7%90%86%E5%88%86%E6%9E%90/1.htm">原理分析</a><a class="tag" taget="_blank" href="/search/Servlet/1.htm">Servlet</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/servlet/1.htm">servlet</a> <div>深入解析Servlet启动过程——原理分析、代码实战及在JDK和Spring中的应用在JavaWeb开发中,Servlet是一种用于创建动态Web应用程序的核心技术。作为JavaEE(现在是JakartaEE)的基础,Servlet在处理客户端请求、生成响应等方面发挥着重要作用。理解Servlet的启动过程,不仅能帮助我们调试和优化应用,还能为深入掌握JavaWeb开发的核心原理打下坚实基础。本文</div> </li> <li><a href="/article/122.htm" title="java数字签名三种方式" target="_blank">java数字签名三种方式</a> <span class="text-muted">知了ing</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/jdk/1.htm">jdk</a> <div>以下3钟数字签名都是基于jdk7的 1,RSA String password="test"; // 1.初始化密钥 KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA"); keyPairGenerator.initialize(51</div> </li> <li><a href="/article/249.htm" title="Hibernate学习笔记" target="_blank">Hibernate学习笔记</a> <span class="text-muted">caoyong</span> <a class="tag" taget="_blank" href="/search/Hibernate/1.htm">Hibernate</a> <div>1>、Hibernate是数据访问层框架,是一个ORM(Object Relation Mapping)框架,作者为:Gavin King 2>、搭建Hibernate的开发环境      a>、添加jar包:      aa>、hibernatte开发包中/lib/required/所</div> </li> <li><a href="/article/376.htm" title="设计模式之装饰器模式Decorator(结构型)" target="_blank">设计模式之装饰器模式Decorator(结构型)</a> <span class="text-muted">漂泊一剑客</span> <a class="tag" taget="_blank" href="/search/Decorator/1.htm">Decorator</a> <div>1. 概述        若你从事过面向对象开发,实现给一个类或对象增加行为,使用继承机制,这是所有面向对象语言的一个基本特性。如果已经存在的一个类缺少某些方法,或者须要给方法添加更多的功能(魅力),你也许会仅仅继承这个类来产生一个新类—这建立在额外的代码上。       </div> </li> <li><a href="/article/503.htm" title="读取磁盘文件txt,并输入String" target="_blank">读取磁盘文件txt,并输入String</a> <span class="text-muted">一炮送你回车库</span> <a class="tag" taget="_blank" href="/search/String/1.htm">String</a> <div>public static void main(String[] args) throws IOException {    String fileContent = readFileContent("d:/aaa.txt");    System.out.println(fileContent);    </div> </li> <li><a href="/article/630.htm" title="js三级联动下拉框" target="_blank">js三级联动下拉框</a> <span class="text-muted">3213213333332132</span> <a class="tag" taget="_blank" href="/search/%E4%B8%89%E7%BA%A7%E8%81%94%E5%8A%A8/1.htm">三级联动</a> <div> //三级联动 省/直辖市<select id="province"></select> 市/省直辖<select id="city"></select> 县/区 <select id="area"></select> </div> </li> <li><a href="/article/757.htm" title="erlang之parse_transform编译选项的应用" target="_blank">erlang之parse_transform编译选项的应用</a> <span class="text-muted">616050468</span> <a class="tag" taget="_blank" href="/search/parse_transform/1.htm">parse_transform</a><a class="tag" taget="_blank" href="/search/%E6%B8%B8%E6%88%8F%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">游戏服务器</a><a class="tag" taget="_blank" href="/search/%E5%B1%9E%E6%80%A7%E5%90%8C%E6%AD%A5/1.htm">属性同步</a><a class="tag" taget="_blank" href="/search/abstract_code/1.htm">abstract_code</a> <div>         最近使用erlang重构了游戏服务器的所有代码,之前看过C++/lua写的服务器引擎代码,引擎实现了玩家属性自动同步给前端和增量更新玩家数据到数据库的功能,这也是现在很多游戏服务器的优化方向,在引擎层面去解决数据同步和数据持久化,数据发生变化了业务层不需要关心怎么去同步给前端。由于游戏过程中玩家每个业务中玩家数据更改的量其实是很少</div> </li> <li><a href="/article/884.htm" title="JAVA JSON的解析" target="_blank">JAVA JSON的解析</a> <span class="text-muted">darkranger</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div> // { // “Total”:“条数”, // Code: 1, // // “PaymentItems”:[ // { // “PaymentItemID”:”支款单ID”, // “PaymentCode”:”支款单编号”, // “PaymentTime”:”支款日期”, // ”ContractNo”:”合同号”, // </div> </li> <li><a href="/article/1011.htm" title="POJ-1273-Drainage Ditches" target="_blank">POJ-1273-Drainage Ditches</a> <span class="text-muted">aijuans</span> <a class="tag" taget="_blank" href="/search/ACM_POJ/1.htm">ACM_POJ</a> <div>POJ-1273-Drainage Ditches http://poj.org/problem?id=1273 基本的最大流,按LRJ的白书写的 #include<iostream> #include<cstring> #include<queue> using namespace std; #define INF 0x7fffffff int ma</div> </li> <li><a href="/article/1138.htm" title="工作流Activiti5表的命名及含义" target="_blank">工作流Activiti5表的命名及含义</a> <span class="text-muted">atongyeye</span> <a class="tag" taget="_blank" href="/search/%E5%B7%A5%E4%BD%9C%E6%B5%81/1.htm">工作流</a><a class="tag" taget="_blank" href="/search/Activiti/1.htm">Activiti</a> <div>activiti5 - http://activiti.org/designer/update在线插件安装 activiti5一共23张表 Activiti的表都以ACT_开头。 第二部分是表示表的用途的两个字母标识。 用途也和服务的API对应。 ACT_RE_*: 'RE'表示repository。 这个前缀的表包含了流程定义和流程静态资源 (图片,规则,等等)。 A</div> </li> <li><a href="/article/1265.htm" title="android的广播机制和广播的简单使用" target="_blank">android的广播机制和广播的简单使用</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/%E5%B9%BF%E6%92%AD%E6%9C%BA%E5%88%B6/1.htm">广播机制</a><a class="tag" taget="_blank" href="/search/%E5%B9%BF%E6%92%AD%E7%9A%84%E6%B3%A8%E5%86%8C/1.htm">广播的注册</a> <div>      Android广播机制简介 在Android中,有一些操作完成以后,会发送广播,比如说发出一条短信,或打出一个电话,如果某个程序接收了这个广播,就会做相应的处理。这个广播跟我们传统意义中的电台广播有些相似之处。之所以叫做广播,就是因为它只负责“说”而不管你“听不听”,也就是不管你接收方如何处理。另外,广播可以被不只一个应用程序所接收,当然也可能不被任何应</div> </li> <li><a href="/article/1392.htm" title="Spring事务传播行为详解" target="_blank">Spring事务传播行为详解</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/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/%E4%BA%8B%E5%8A%A1%E4%BC%A0%E6%92%AD%E8%A1%8C%E4%B8%BA/1.htm">事务传播行为</a> <div>        在service类前加上@Transactional,声明这个service所有方法需要事务管理。每一个业务方法开始时都会打开一个事务。         Spring默认情况下会对运行期例外(RunTimeException)进行事务回滚。这</div> </li> <li><a href="/article/1519.htm" title="eidtplus operate" target="_blank">eidtplus operate</a> <span class="text-muted">征客丶</span> <a class="tag" taget="_blank" href="/search/eidtplus/1.htm">eidtplus</a> <div>开启列模式: Alt+C 鼠标选择   OR   Alt+鼠标左键拖动 列模式替换或复制内容(多行): 右键-->格式-->填充所选内容-->选择相应操作 OR Ctrl+Shift+V(复制多行数据,必须行数一致) -------------------------------------------------------</div> </li> <li><a href="/article/1646.htm" title="【Kafka一】Kafka入门" target="_blank">【Kafka一】Kafka入门</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/kafka/1.htm">kafka</a> <div>这篇文章来自Spark集成Kafka(http://bit1129.iteye.com/blog/2174765),这里把它单独取出来,作为Kafka的入门吧   下载Kafka http://mirror.bit.edu.cn/apache/kafka/0.8.1.1/kafka_2.10-0.8.1.1.tgz 2.10表示Scala的版本,而0.8.1.1表示Kafka</div> </li> <li><a href="/article/1773.htm" title="Spring 事务实现机制" target="_blank">Spring 事务实现机制</a> <span class="text-muted">BlueSkator</span> <a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/%E4%BB%A3%E7%90%86/1.htm">代理</a><a class="tag" taget="_blank" href="/search/%E4%BA%8B%E5%8A%A1/1.htm">事务</a> <div>Spring是以代理的方式实现对事务的管理。我们在Action中所使用的Service对象,其实是代理对象的实例,并不是我们所写的Service对象实例。既然是两个不同的对象,那为什么我们在Action中可以象使用Service对象一样的使用代理对象呢?为了说明问题,假设有个Service类叫AService,它的Spring事务代理类为AProxyService,AService实现了一个接口 </div> </li> <li><a href="/article/1900.htm" title="bootstrap源码学习与示例:bootstrap-dropdown(转帖)" target="_blank">bootstrap源码学习与示例:bootstrap-dropdown(转帖)</a> <span class="text-muted">BreakingBad</span> <a class="tag" taget="_blank" href="/search/bootstrap/1.htm">bootstrap</a><a class="tag" taget="_blank" href="/search/dropdown/1.htm">dropdown</a> <div>bootstrap-dropdown组件是个烂东西,我读后的整体感觉。 一个下拉开菜单的设计: <ul class="nav pull-right"> <li id="fat-menu" class="dropdown"> </div> </li> <li><a href="/article/2027.htm" title="读《研磨设计模式》-代码笔记-中介者模式-Mediator" target="_blank">读《研磨设计模式》-代码笔记-中介者模式-Mediator</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a> <div>声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/ /* * 中介者模式(Mediator):用一个中介对象来封装一系列的对象交互。 * 中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 * * 在我看来,Mediator模式是把多个对象(</div> </li> <li><a href="/article/2154.htm" title="常用代码记录" target="_blank">常用代码记录</a> <span class="text-muted">chenjunt3</span> <a class="tag" taget="_blank" href="/search/UI/1.htm">UI</a><a class="tag" taget="_blank" href="/search/Excel/1.htm">Excel</a><a class="tag" taget="_blank" href="/search/J%23/1.htm">J#</a> <div>  1、单据设置某行或某字段不能修改 //i是行号,"cash"是字段名称 getBillCardPanelWrapper().getBillCardPanel().getBillModel().setCellEditable(i, "cash", false); //取得单据表体所有项用以上语句做循环就能设置整行了 getBillC</div> </li> <li><a href="/article/2281.htm" title="搜索引擎与工作流引擎" target="_blank">搜索引擎与工作流引擎</a> <span class="text-muted">comsci</span> <a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E5%B7%A5%E4%BD%9C/1.htm">工作</a><a class="tag" taget="_blank" href="/search/%E6%90%9C%E7%B4%A2%E5%BC%95%E6%93%8E/1.htm">搜索引擎</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%BA%94%E7%94%A8/1.htm">网络应用</a> <div>      最近在公司做和搜索有关的工作,(只是简单的应用开源工具集成到自己的产品中)工作流系统的进一步设计暂时放在一边了,偶然看到谷歌的研究员吴军写的数学之美系列中的搜索引擎与图论这篇文章中的介绍,我发现这样一个关系(仅仅是猜想)   -----搜索引擎和流程引擎的基础--都是图论,至少像在我在JWFD中引擎算法中用到的是自定义的广度优先</div> </li> <li><a href="/article/2408.htm" title="oracle Health Monitor" target="_blank">oracle Health Monitor</a> <span class="text-muted">daizj</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/Health+Monitor/1.htm">Health Monitor</a> <div>About Health Monitor Beginning with Release 11g, Oracle Database includes a framework called Health Monitor for running diagnostic checks on the database. About Health Monitor Checks Health M</div> </li> <li><a href="/article/2535.htm" title="JSON字符串转换为对象" target="_blank">JSON字符串转换为对象</a> <span class="text-muted">dieslrae</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/json/1.htm">json</a> <div>    作为前言,首先是要吐槽一下公司的脑残编译部署方式,web和core分开部署本来没什么问题,但是这丫居然不把json的包作为基础包而作为web的包,导致了core端不能使用,而且我们的core是可以当web来用的(不要在意这些细节),所以在core中处理json串就是个问题.没办法,跟编译那帮人也扯不清楚,只有自己写json的解析了.   </div> </li> <li><a href="/article/2662.htm" title="C语言学习八结构体,综合应用,学生管理系统" target="_blank">C语言学习八结构体,综合应用,学生管理系统</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/C%E8%AF%AD%E8%A8%80/1.htm">C语言</a> <div>实现功能的代码: # include <stdio.h> # include <malloc.h> struct Student { int age; float score; char name[100]; }; int main(void) { int len; struct Student * pArr; int i,</div> </li> <li><a href="/article/2789.htm" title="vagrant学习笔记" target="_blank">vagrant学习笔记</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/vagrant/1.htm">vagrant</a> <div>想了解多主机是如何定义和使用的, 所以又学习了一遍vagrant   1. vagrant virtualbox 下载安装 https://www.vagrantup.com/downloads.html https://www.virtualbox.org/wiki/Downloads   查看安装在命令行输入vagrant     2.</div> </li> <li><a href="/article/2916.htm" title="14.性能优化-优化-软件配置优化" target="_blank">14.性能优化-优化-软件配置优化</a> <span class="text-muted">frank1234</span> <a class="tag" taget="_blank" href="/search/%E8%BD%AF%E4%BB%B6%E9%85%8D%E7%BD%AE/1.htm">软件配置</a><a class="tag" taget="_blank" href="/search/%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96/1.htm">性能优化</a> <div>1.Tomcat线程池 修改tomcat的server.xml文件: <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" maxThreads="1200" m</div> </li> <li><a href="/article/3043.htm" title="一个不错的shell 脚本教程 入门级" target="_blank">一个不错的shell 脚本教程 入门级</a> <span class="text-muted">HarborChung</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/shell/1.htm">shell</a> <div>一个不错的shell 脚本教程 入门级 建立一个脚本   Linux中有好多中不同的shell,但是通常我们使用bash (bourne again shell) 进行shell编程,因为bash是免费的并且很容易使用。所以在本文中笔者所提供的脚本都是使用bash(但是在大多数情况下,这些脚本同样可以在 bash的大姐,bourne shell中运行)。   如同其他语言一样</div> </li> <li><a href="/article/3170.htm" title="Spring4新特性——核心容器的其他改进" target="_blank">Spring4新特性——核心容器的其他改进</a> <span class="text-muted">jinnianshilongnian</span> <a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/%E5%8A%A8%E6%80%81%E4%BB%A3%E7%90%86/1.htm">动态代理</a><a class="tag" taget="_blank" href="/search/spring4/1.htm">spring4</a><a class="tag" taget="_blank" href="/search/%E4%BE%9D%E8%B5%96%E6%B3%A8%E5%85%A5/1.htm">依赖注入</a> <div>Spring4新特性——泛型限定式依赖注入 Spring4新特性——核心容器的其他改进 Spring4新特性——Web开发的增强 Spring4新特性——集成Bean Validation 1.1(JSR-349)到SpringMVC  Spring4新特性——Groovy Bean定义DSL Spring4新特性——更好的Java泛型操作API  Spring4新</div> </li> <li><a href="/article/3297.htm" title="Linux设置tomcat开机启动" target="_blank">Linux设置tomcat开机启动</a> <span class="text-muted">liuxingguome</span> <a class="tag" taget="_blank" href="/search/tomcat/1.htm">tomcat</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E6%9C%BA%E8%87%AA%E5%90%AF%E5%8A%A8/1.htm">开机自启动</a> <div>执行命令sudo gedit /etc/init.d/tomcat6 然后把以下英文部分复制过去。(注意第一句#!/bin/sh如果不写,就不是一个shell文件。然后将对应的jdk和tomcat换成你自己的目录就行了。 #!/bin/bash # # /etc/rc.d/init.d/tomcat # init script for tomcat precesses</div> </li> <li><a href="/article/3424.htm" title="第13章 Ajax进阶(下)" target="_blank">第13章 Ajax进阶(下)</a> <span class="text-muted">onestopweb</span> <a class="tag" taget="_blank" href="/search/Ajax/1.htm">Ajax</a> <div>index.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/</div> </li> <li><a href="/article/3551.htm" title="Troubleshooting Crystal Reports off BW" target="_blank">Troubleshooting Crystal Reports off BW</a> <span class="text-muted">blueoxygen</span> <a class="tag" taget="_blank" href="/search/BO/1.htm">BO</a> <div>http://wiki.sdn.sap.com/wiki/display/BOBJ/Troubleshooting+Crystal+Reports+off+BW#TroubleshootingCrystalReportsoffBW-TracingBOE   Quite useful, especially this part: SAP BW connectivity For t</div> </li> <li><a href="/article/3678.htm" title="Java开发熟手该当心的11个错误" target="_blank">Java开发熟手该当心的11个错误</a> <span class="text-muted">tomcat_oracle</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/jvm/1.htm">jvm</a><a class="tag" taget="_blank" href="/search/%E5%A4%9A%E7%BA%BF%E7%A8%8B/1.htm">多线程</a><a class="tag" taget="_blank" href="/search/%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95/1.htm">单元测试</a> <div>#1、不在属性文件或XML文件中外化配置属性。比如,没有把批处理使用的线程数设置成可在属性文件中配置。你的批处理程序无论在DEV环境中,还是UAT(用户验收 测试)环境中,都可以顺畅无阻地运行,但是一旦部署在PROD 上,把它作为多线程程序处理更大的数据集时,就会抛出IOException,原因可能是JDBC驱动版本不同,也可能是#2中讨论的问题。如果线程数目 可以在属性文件中配置,那么使它成为</div> </li> <li><a href="/article/3805.htm" title="正则表达式大全" target="_blank">正则表达式大全</a> <span class="text-muted">yang852220741</span> <a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B/1.htm">编程</a><a class="tag" taget="_blank" href="/search/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/1.htm">正则表达式</a> <div>今天向大家分享正则表达式大全,它可以大提高你的工作效率 正则表达式也可以被当作是一门语言,当你学习一门新的编程语言的时候,他们是一个小的子语言。初看时觉得它没有任何的意义,但是很多时候,你不得不阅读一些教程,或文章来理解这些简单的描述模式。 一、校验数字的表达式 数字:^[0-9]*$ n位的数字:^\d{n}$ 至少n位的数字:^\d{n,}$ m-n位的数字:^\d{m,n}$</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>