四、JavaScript HTML DOM

通过 HTML DOM,可访问 JavaScript HTML 文档的所有元素。

HTML DOM (文档对象模型):
HTML 的标准对象模型
HTML 的标准编程接口
W3C 标准

HTML DOM 定义了所有 HTML 元素的对象和属性,以及访问它们的方法。

换言之,HTML DOM 是关于如何获取、修改、添加或删除 HTML 元素的标准。
当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。
HTML DOM 模型被构造为对象的树。

四、JavaScript HTML DOM_第1张图片
HTML DOM 树

通过可编程的对象模型,JavaScript 获得了足够的能力来创建动态的 HTML。

JavaScript 能够改变页面中的所有 HTML 元素
JavaScript 能够改变页面中的所有 HTML 属性
JavaScript 能够改变页面中的所有 CSS 样式
JavaScript 能够对页面中的所有事件做出反应

一、查找 HTML 元素

通常,通过 JavaScript,您需要操作 HTML 元素。
为了做到这件事情,您必须首先找到该元素。有三种方法来做这件事:

  • 通过 id 找到 HTML 元素
  • 通过标签名找到 HTML 元素
  • 通过类名找到 HTML 元素

如果找到该元素,则该方法将以对象(在 x 中)的形式返回该元素。
如果未找到该元素,则 x 将包含 null。

实例
本例查找 id="main" 的元素,然后查找 "main" 中的所有

标签元素:





Hello World!

The DOM is very useful.

本例演示 getElementsByTagName 方法。

二、改变 HTML 元素的内容

改变 HTML 输出流
JavaScript 能够创建动态的 HTML 内容:
今天的日期是: Mon Aug 27 2018 02:56:06 GMT+0800 (中国标准时间)
在 JavaScript 中,document.write() 可用于直接向 HTML 输出流写内容。

实例









改变 HTML 内容
修改 HTML 内容的最简单的方法时使用 innerHTML 属性。
如需改变 HTML 元素的内容,请使用这个语法:
document.getElementById(id).innerHTML=new HTML
实例
本例改变了

元素的内容:




Hello World!

改变 HTML 属性
如需改变 HTML 元素的属性,请使用这个语法:
document.getElementById(id).attribute=new value
实例
本例改变了 元素的 src 属性:











三、改变 HTML 元素的样式

改变 HTML 样式
如需改变 HTML 元素的样式,请使用这个语法:
document.getElementById(id).style.property=new style

本例改变了 id="id1" 的 HTML 元素的样式,当用户点击按钮时:





My Heading 1

四、对 HTML 事件做出反应

我们可以在事件发生时执行 JavaScript,比如当用户在 HTML 元素上点击时。

如需在用户点击某个元素时执行代码,请向一个 HTML 事件属性添加 JavaScript 代码:
onclick=JavaScript

HTML 事件的例子:
当用户点击鼠标时
当网页已加载时
当图像已加载时
当鼠标移动到元素上时
当输入字段被改变时
当提交 HTML 表单时
当用户触发按键时

在本例中,当用户在

元素上点击时,会改变其内容:







请点击该文本

HTML 事件分配
HTML DOM 允许您通过使用 JavaScript 来向 HTML 元素分配事件。

实例
向 button 元素分配 onclick 事件:

在上面的例子中,名为 displayDate 的函数将在按钮被点击时执行。
或者这样写:

常用HTML DOM Event 对象
Event 对象
Event 对象代表事件的状态,比如事件在其中发生的元素、键盘按键的状态、鼠标的位置、鼠标按钮的状态。
事件通常与函数结合使用,函数不会在事件发生前被执行!

事件句柄 (Event Handlers)
HTML 4.0 的新特性之一是能够使 HTML 事件触发浏览器中的行为,比如当用户点击某个 HTML 元素时启动一段 JavaScript。下面是一个属性列表,可将之插入 HTML 标签以定义事件的行为。

属性 此事件发生在何时...
onfocus 元素获得焦点。
onblur 元素失去焦点。
onchange 域的内容被改变。
onclick 当用户点击某个对象时调用的事件句柄。
ondblclick 当用户双击某个对象时调用的事件句柄。
onerror 在加载文档或图像时发生错误。
onabort 图像的加载被中断。
onload 一张页面或一幅图像完成加载。
onkeydown 某个键盘按键被按下。
onkeypress 某个键盘按键被按下并松开。
onkeyup 某个键盘按键被松开。
onmousedown 鼠标按钮被按下。
onmousemove 鼠标被移动。
onmouseout 鼠标从某元素移开。
onmouseover 鼠标移到某元素之上。
onmouseup 鼠标按键被松开。
onreset 重置按钮被点击。
onresize 窗口或框架被重新调整大小。
onselect 文本被选中。
onsubmit 确认按钮被点击。
onunload 用户退出页面。

鼠标 / 键盘属性

属性 描述
altKey 返回当事件被触发时,"ALT" 是否被按下。
button 返回当事件被触发时,哪个鼠标按钮被点击。
clientX 返回当事件被触发时,鼠标指针的水平坐标。
clientY 返回当事件被触发时,鼠标指针的垂直坐标。
ctrlKey 返回当事件被触发时,"CTRL" 键是否被按下。
metaKey 返回当事件被触发时,"meta" 键是否被按下。
relatedTarget 返回与事件的目标节点相关的节点。
screenX 返回当某个事件被触发时,鼠标指针的水平坐标。
screenY 返回当某个事件被触发时,鼠标指针的垂直坐标。
shiftKey 返回当事件被触发时,"SHIFT" 键是否被按下。

IE 属性
除了上面的鼠标/事件属性,IE 浏览器还支持下面的属性:

属性 描述
cancelBubble 如果事件句柄想阻止事件传播到包容对象,必须把该属性设为 true。
fromElement 对于 mouseover 和 mouseout 事件,fromElement 引用移出鼠标的元素。
keyCode 对于 keypress 事件,该属性声明了被敲击的键生成的 Unicode 字符码。对于 keydown 和 keyup 事件,它指定了被敲击的键的虚拟键盘码。虚拟键盘码可能和使用的键盘的布局相关。
offsetX,offsetY 发生事件的地点在事件源元素的坐标系统中的 x 坐标和 y 坐标。
returnValue 如果设置了该属性,它的值比事件句柄的返回值优先级高。把这个属性设置为 fasle,可以取消发生事件的源元素的默认动作。
srcElement 对于生成事件的 Window 对象、Document 对象或 Element 对象的引用。
toElement 对于 mouseover 和 mouseout 事件,该属性引用移入鼠标的元素。
x,y 事件发生的位置的 x 坐标和 y 坐标,它们相对于用CSS动态定位的最内层包容元素。

标准 Event 属性
下面列出了 2 级 DOM 事件标准定义的属性。

属性 描述
bubbles 返回布尔值,指示事件是否是起泡事件类型。
cancelable 返回布尔值,指示事件是否可拥可取消的默认动作。
currentTarget 返回其事件监听器触发该事件的元素。
eventPhase 返回事件传播的当前阶段。
target 返回触发此事件的元素(事件的目标节点)。
timeStamp 返回事件生成的日期和时间。
type 返回当前 Event 对象表示的事件的名称。

标准 Event 方法
下面列出了 2 级 DOM 事件标准定义的方法。IE 的事件模型不支持这些方法:

方法 描述
initEvent() 初始化新创建的 Event 对象的属性。
preventDefault() 通知浏览器不要执行与事件关联的默认动作。
stopPropagation() 不再派发事件。

五、添加和删除HTML 节点

在 HTML DOM 中,所有事物都是节点。DOM 是被视为节点树的 HTML。
根据 W3C 的 HTML DOM 标准,HTML 文档中的所有内容都是节点:
整个文档是一个文档节点
每个 HTML 元素是元素节点
HTML 元素内的文本是文本节点
每个 HTML 属性是属性节点
注释是注释节点

HTML DOM 将 HTML 文档视作树结构。这种结构被称为节点树:


四、JavaScript HTML DOM_第2张图片
节点树

通过 HTML DOM,树中的所有节点均可通过 JavaScript 进行访问。所有 HTML 元素(节点)均可被修改,也可以创建或删除节点。

节点父、子和同胞
节点树中的节点彼此拥有层级关系。

父(parent)、子(child)和同胞(sibling)等术语用于描述这些关系。父节点拥有子节点。同级的子节点被称为同胞(兄弟或姐妹)。

在节点树中,顶端节点被称为根(root)
每个节点都有父节点、除了根(它没有父节点)
一个节点可拥有任意数量的子
同胞是拥有相同父节点的节点
下面的图片展示了节点树的一部分,以及节点之间的关系:


四、JavaScript HTML DOM_第3张图片
节点之间的关系

请看下面的 HTML 片段:


  
    DOM 教程
  
  
    

DOM 第一课

Hello world!

从上面的 HTML 中:

  • 节点没有父节点;它是根节点
  • 和 的父节点是 节点
  • 文本节点 "Hello world!" 的父节点是

    节点
    并且:

  • 节点拥有两个子节点: 和
  • 节点拥有一个子节点: 节点</li> <li><title> 节点也拥有一个子节点:文本节点 "DOM 教程"</li> <li><h1> 和 <p> 节点是同胞节点,同时也是 <body> 的子节点<br> 并且:</li> <li><head> 元素是 <html> 元素的首个子节点</li> <li><body> 元素是 <html> 元素的最后一个子节点</li> <li><h1> 元素是 <body> 元素的首个子节点</li> <li><p> 元素是 <body> 元素的最后一个子节点</li> </ul> <p><strong>创建新的 HTML 节点</strong><br> 如需向 HTML DOM 添加新元素,您必须首先创建该元素(元素节点),然后向一个已存在的元素追加该元素。<br> 实例</p> <pre><code><div id="div1"> <p id="p1">这是一个段落</p> <p id="p2">这是另一个段落</p> </div> <script> var para=document.createElement("p"); var node=document.createTextNode("这是新段落。"); para.appendChild(node); var element=document.getElementById("div1"); element.appendChild(para); </script> </code></pre> <p>例子解释:<br> 这段代码创建新的 <p> 元素:<br> var para=document.createElement("p");</p> <p>如需向 <p> 元素添加文本,您必须首先创建文本节点。这段代码创建了一个文本节点:<br> var node=document.createTextNode("这是新段落。");</p> <p>然后您必须向 <p> 元素追加这个文本节点:<br> para.appendChild(node);</p> <p>最后您必须向一个已有的元素追加这个新元素。<br> 这段代码找到一个已有的元素:<br> var element=document.getElementById("div1");<br> 这段代码向这个已有的元素追加新元素:<br> element.appendChild(para);</p> <p><strong>删除已有的 HTML 节点</strong><br> 如需删除 HTML 元素,您必须首先获得该元素的父元素:</p> <p>实例</p> <pre><code><div id="div1"> <p id="p1">这是一个段落。</p> <p id="p2">这是另一个段落。</p> </div> <script> var parent=document.getElementById("div1"); var child=document.getElementById("p1"); parent.removeChild(child); </script> </code></pre> <p>例子解释:</p> <p>这个 HTML 文档含有拥有两个子节点(两个 <p> 元素)的 <div> 元素:<br> <div id="div1"><br> <p id="p1">这是一个段落。</p><br> <p id="p2">这是另一个段落。</p><br> </div></p> <p>找到 id="div1" 的元素:<br> var parent=document.getElementById("div1");<br> 找到 id="p1" 的 <p> 元素:<br> var child=document.getElementById("p1");</p> <p>从父元素中删除子元素:<br> parent.removeChild(child);<br> 提示:如果能够在不引用父元素的情况下删除某个元素,就太好了。</p> <p>不过很遗憾。DOM 需要清楚您需要删除的元素,以及它的父元素。<br> 这是常用的解决方案:找到您希望删除的子元素,然后使用其 parentNode 属性来找到父元素:<br> var child=document.getElementById("p1");<br> child.parentNode.removeChild(child);</p> <p><strong>HTML DOM 节点列表</strong><br> getElementsByTagName() 方法返回节点列表。节点列表是一个节点数组。<br> 下面的代码选取文档中的所有 <p> 节点:<br> 实例<br> var x=document.getElementsByTagName("p");<br> 可以通过下标号访问这些节点。如需访问第二个 <p>,您可以这么写:<br> y=x[1];<br> 注释:下标号从 0 开始。</p> <p>length 属性定义节点列表中节点的数量。<br> 您可以使用 length 属性来循环节点列表。<br> 实例:获取所有 <p> 元素节点,输出每个 <p> 元素的文本节点的值</p> <pre><code>x=document.getElementsByTagName("p"); for (i=0;i<x.length;i++) { document.write(x[i].innerHTML); document.write("<br />"); } </code></pre> <p><strong>导航节点关系</strong><br> 您能够使用三个节点属性:parentNode、firstChild 以及 lastChild ,在文档结构中进行导航。</p> <p>请看下面的 HTML 片段:</p> <pre><code><html> <body> <p>Hello World!</p> <div> <p>DOM 很有用!</p> <p>本例演示节点关系。</p> </div> </body> </html> </code></pre> <ul> <li>首个 <p> 元素是 <body> 元素的首个子元素(firstChild)</li> <li><div> 元素是 <body> 元素的最后一个子元素(lastChild)</li> <li><body> 元素是首个 <p> 元素和 <div> 元素的父节点(parentNode)</li> </ul> <p>firstChild 属性可用于访问元素的文本:</p> <pre><code><html> <body> <p id="intro">Hello World!</p> <script> x=document.getElementById("intro"); document.write(x.firstChild.nodeValue); </script> </body> </html> </code></pre> <p><strong>DOM 根节点</strong><br> 这里有两个特殊的属性,可以访问全部文档:</p> <ul> <li>document.documentElement - 全部文档</li> <li>document.body - 文档的主体</li> </ul> <pre><code><html> <body> <p>Hello World!</p> <div> <p>DOM 很有用!</p> <p>本例演示 <b>document.body</b> 属性。</p> </div> <script> alert(document.body.innerHTML); </script> </body> </html> </code></pre> <p><strong>childNodes 和 nodeValue</strong><br> 除了 innerHTML 属性,您也可以使用 childNodes 和 nodeValue 属性来获取元素的内容。</p> <p>下面的代码获取 id="intro" 的 <p> 元素的值:</p> <pre><code><html> <body> <p id="intro">Hello World!</p> <script> var txt=document.getElementById("intro").childNodes[0].nodeValue; document.write(txt); </script> </body> </html> </code></pre> <h3>六、JavaScript HTML DOM常用方法</h3> <table> <thead> <tr> <th>方法</th> <th>描述</th> </tr> </thead> <tbody> <tr> <td>getElementById()</td> <td>返回带有指定 ID 的元素。</td> </tr> <tr> <td>getElementsByTagName()</td> <td>返回包含带有指定标签名称的所有元素的节点列表(集合/节点数组)。</td> </tr> <tr> <td>getElementsByClassName()</td> <td>返回包含带有指定类名的所有元素的节点列表。</td> </tr> <tr> <td>appendChild()</td> <td>把新的子节点添加到指定节点。</td> </tr> <tr> <td>removeChild()</td> <td>删除子节点。</td> </tr> <tr> <td>replaceChild()</td> <td>替换子节点。</td> </tr> <tr> <td>insertBefore()</td> <td>在指定的子节点前面插入新的子节点。</td> </tr> <tr> <td>createAttribute()</td> <td>创建属性节点。</td> </tr> <tr> <td>createElement()</td> <td>创建元素节点。</td> </tr> <tr> <td>createTextNode()</td> <td>创建文本节点。</td> </tr> <tr> <td>getAttribute()</td> <td>返回指定的属性值。</td> </tr> <tr> <td>setAttribute()</td> <td>把指定属性设置或修改为指定的值。</td> </tr> </tbody> </table> <h3>七、HTML DOM 属性</h3> <p>属性是节点(HTML 元素)的值,您能够获取或设置。</p> <p>可通过 JavaScript (以及其他编程语言)对 HTML DOM 进行访问。<br> 所有 HTML 元素被定义为对象,而编程接口则是对象方法和对象属性。<br> 方法是您能够执行的动作(比如添加或修改元素)。<br> 属性是您能够获取或设置的值(比如节点的名称或内容)。</p> <ul> <li><p>innerHTML 属性<br> 获取元素内容的最简单方法是使用 innerHTML 属性。<br> innerHTML 属性对于获取或替换 HTML 元素的内容很有用。</p></li> <li><p>nodeName 属性<br> nodeName 属性规定节点的名称。<br> nodeName 是只读的<br> 元素节点的 nodeName 与标签名相同<br> 属性节点的 nodeName 与属性名相同<br> 文本节点的 nodeName 始终是 #text<br> 文档节点的 nodeName 始终是 #document<br> 注释:nodeName 始终包含 HTML 元素的大写字母标签名。</p></li> <li><p>nodeValue 属性<br> nodeValue 属性规定节点的值。<br> 元素节点的 nodeValue 是 undefined 或 null<br> 文本节点的 nodeValue 是文本本身<br> 属性节点的 nodeValue 是属性值</p></li> <li><p>nodeType 属性<br> nodeType 属性返回节点的类型。nodeType 是只读的。<br> 比较重要的节点类型有:</p></li> </ul> <table> <thead> <tr> <th>元素类型</th> <th>NodeType</th> </tr> </thead> <tbody> <tr> <td>元素</td> <td>1</td> </tr> <tr> <td>属性</td> <td>2</td> </tr> <tr> <td>文本</td> <td>3</td> </tr> <tr> <td>注释</td> <td>8</td> </tr> <tr> <td>文档</td> <td>9</td> </tr> </tbody> </table> </article> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1289104210213806080"></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">你可能感兴趣的:(四、JavaScript HTML DOM)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1942360500474015744.htm" title="乾坤微前端框架详细使用大全" target="_blank">乾坤微前端框架详细使用大全</a> <span class="text-muted">不知名靓仔</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E6%A1%86%E6%9E%B6/1.htm">前端框架</a> <div>引言乾坤微前端框架(Qiankun)是一款轻量级的微前端解决方案,它基于JavaScript的Proxy特性和WebComponents技术,提供了一套简单易用的微前端实现方案。本文将详细介绍乾坤微前端框架的安装、配置、使用方法及常见问题解答,帮助开发者快速上手乾坤微前端框架。1.乾坤简介1.1什么是乾坤?乾坤是一个轻量级的微前端框架,旨在帮助开发者轻松实现微前端架构。它通过主应用(MainApp</div> </li> <li><a href="/article/1942356720638554112.htm" title="https和http有什么区别" target="_blank">https和http有什么区别</a> <span class="text-muted">洞阳</span> <a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/1.htm">计算机网络</a><a class="tag" taget="_blank" href="/search/http/1.htm">http</a><a class="tag" taget="_blank" href="/search/https/1.htm">https</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%8D%8F%E8%AE%AE/1.htm">网络协议</a> <div>目录一、核心区别:是否基于加密传输二、底层传输机制差异三、HTTPS的加密原理四、应用场景差异五、其他细节区别总结在网络通信中,HTTP(HypertextTransferProtocol,超文本传输协议)和HTTPS(HypertextTransferProtocolSecure,超文本传输安全协议)是两种常用的应用层协议,核心区别在于安全性、底层传输机制和使用场景。以下是详细说明:一、核心区别</div> </li> <li><a href="/article/1942354704163991552.htm" title="Halcon例程学习四:pcb_inspection.hdev" target="_blank">Halcon例程学习四:pcb_inspection.hdev</a> <span class="text-muted">CVer_</span> <a class="tag" taget="_blank" href="/search/Halcon%E4%BE%8B%E7%A8%8B%E5%AD%A6%E4%B9%A0/1.htm">Halcon例程学习</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a> <div>一、例程介绍这个例程主要是检测pcb电路板中的一些电路线缺陷二、例程相关算子gray_opening_shape()//特定形状结构元的灰度开运算gray_closing_shape()//特定形状结构元的灰度闭运算dyn_threshold()//动态二值化操作三、例程处理流程1.对原图像进行灰度开运算,图像先腐蚀再膨胀。经过灰度开运算后,图像整体会变暗一些,并且会将黑色区域中的白色缺陷进行填充</div> </li> <li><a href="/article/1942351554262659072.htm" title="企业级图表方案AG Charts v12正式发布:全新功能提升图表交互体验与开发效率" target="_blank">企业级图表方案AG Charts v12正式发布:全新功能提升图表交互体验与开发效率</a> <span class="text-muted"></span> <div>AGGrid成立于英国,致力于提供优秀的企业级数据表格及图表解决方案。AGGrid及AGCharts是其两大主要的高性能企业级JavaScript数据表格及图表解决方案,被全球开发者广泛采用。广泛应用于金融、电信、制造等行业,支持Angular、React、Vue和纯JavaScript项目,拥有企业级的性能与功能深度,凭借其卓越的性能、丰富的功能与高度可定制性,成为构建复杂数据驱动型应用的优选工</div> </li> <li><a href="/article/1942346774253465600.htm" title="AI 浪潮下的锚与帆:工程师文化的变与不变 | 架构师夜生活" target="_blank">AI 浪潮下的锚与帆:工程师文化的变与不变 | 架构师夜生活</a> <span class="text-muted"></span> <a class="tag" taget="_blank" href="/search/%E5%B7%A5%E7%A8%8B%E5%B8%88%E6%96%87%E5%8C%96/1.htm">工程师文化</a> <div>目录:一、那些让程序员焦虑的"假消息"二、我们理解的工程师文化三、AI到底改变了什么四、程序员需要学什么新技能五、80后程序员vs 00后程序员六、最好的时代永远在前方引言公司食堂里,一个产品经理和一个程序员正在讨论一个让行业都焦虑的话题:"AI来了,你们程序员还有什么用?我直接对着机器说需求,它就能给我做出来,我还要你干嘛?你还要给我排期!"产品经理显得有些得意。"你对它说的话它听得懂吗?它生成</div> </li> <li><a href="/article/1942342978299293696.htm" title="Tuning Language Models by Proxy" target="_blank">Tuning Language Models by Proxy</a> <span class="text-muted">樱花的浪漫</span> <a class="tag" taget="_blank" href="/search/%E5%AF%B9%E6%8A%97%E7%94%9F%E6%88%90%E7%BD%91%E7%BB%9C%E4%B8%8E%E5%8A%A8%E4%BD%9C%E8%AF%86%E5%88%AB/1.htm">对抗生成网络与动作识别</a><a class="tag" taget="_blank" href="/search/%E5%BC%BA%E5%8C%96%E5%AD%A6%E4%B9%A0/1.htm">强化学习</a><a class="tag" taget="_blank" href="/search/%E5%9B%A0%E6%9E%9C%E6%8E%A8%E6%96%AD/1.htm">因果推断</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%A8%A1%E5%9E%8B%E4%B8%8E%E6%99%BA%E8%83%BD%E4%BD%93/1.htm">大模型与智能体</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/1.htm">机器学习</a><a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E7%84%B6%E8%AF%AD%E8%A8%80%E5%A4%84%E7%90%86/1.htm">自然语言处理</a><a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%A7%86%E8%A7%89/1.htm">计算机视觉</a><a class="tag" taget="_blank" href="/search/%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C/1.htm">神经网络</a> <div>TuningLanguageModelsbyProxyhttps://arxiv.org/html/2401.08565v41.概述尽管大型预训练语言模型的通用能力越来越强,但它们仍然可以从额外的微调中受益,以更好地实现所需的行为。例如,它们通常被微调以遵循指令(Ouyang等人,2022年)、特定的兴趣领域(Gururangan等人,2020年)或特定任务(Raffel等人,2020年)。然而,</div> </li> <li><a href="/article/1942342851488706560.htm" title="STM32之无源蜂鸣器模块" target="_blank">STM32之无源蜂鸣器模块</a> <span class="text-muted"></span> <div>目录一、系统概述二、无源蜂鸣器模块简介2.1基本概念2.2核心特性2.3驱动电路设计2.4STM32驱动关键2.5应用场景对比三、硬件设计3.1硬件组成3.2硬件连接四、软件设计4.1开发环境配置4.2关键代码实现4.2.1初始化代码4.2.2蜂鸣器控制函数4.2.3主程序示例五、系统调试与优化5.1频率精度调整5.2音量控制5.3音乐播放功能六、应用场景6.1与按键结合实现交互6.2报警模式6.</div> </li> <li><a href="/article/1942341842163003392.htm" title="Javascript基础内容回顾—变量提升、事件循环和闭包等内容" target="_blank">Javascript基础内容回顾—变量提升、事件循环和闭包等内容</a> <span class="text-muted">GISer_Jinger</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> <div>以下是前端面试中JavaScript基础易错问题的详解,结合常见考点和易混淆概念进行解析:⚠️一、变量作用域与提升varvslet/const◦变量提升:var声明的变量会提升到作用域顶部(值为undefined),而let/const存在暂时性死区(声明前访问报错)。◦循环陷阱:for(vari=0;iconsole.log(i));//输出3,3,3(共享同一作用域)}for(leti=0;i</div> </li> <li><a href="/article/1942338689896083456.htm" title="STM32之有源蜂鸣器模块" target="_blank">STM32之有源蜂鸣器模块</a> <span class="text-muted">如愿小李单片机设计</span> <a class="tag" taget="_blank" href="/search/%E5%8D%95%E7%89%87%E6%9C%BA/1.htm">单片机</a><a class="tag" taget="_blank" href="/search/%E5%B5%8C%E5%85%A5%E5%BC%8F%E7%A1%AC%E4%BB%B6/1.htm">嵌入式硬件</a><a class="tag" taget="_blank" href="/search/stm32/1.htm">stm32</a> <div>目录一、系统概述二、无源蜂鸣器模块简介2.1基本概念与工作原理2.2与无源蜂鸣器对比2.3关键电气参数2.4硬件驱动设计2.5选型与使用注意事项三、硬件设计3.1硬件组成3.2硬件连接四、软件设计4.1开发环境配置4.2关键代码实现4.2.1GPIO初始化4.2.2蜂鸣器控制函数4.2.3报警模式实现五、注意事项5.1驱动电路必须使用三极管5.2电压匹配5.3保护措施5.4电流消耗六、总结一、系统</div> </li> <li><a href="/article/1942337428962471936.htm" title="HarmonyOS开发秘籍:从监听系统变量到掌握AbilityStage回调" target="_blank">HarmonyOS开发秘籍:从监听系统变量到掌握AbilityStage回调</a> <span class="text-muted">大雨淅淅</span> <a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/HarmonyOS%E5%BC%80%E5%8F%91/1.htm">HarmonyOS开发</a><a class="tag" taget="_blank" href="/search/harmonyos/1.htm">harmonyos</a><a class="tag" taget="_blank" href="/search/%E5%8D%8E%E4%B8%BA/1.htm">华为</a> <div>目录一、HarmonyOS开发新视野二、AbilityStage组件初相识(一)组件定义与作用(二)与Module的对应关系三、开发前的准备工作(一)创建AbilityStage文件步骤(二)导入依赖与配置文件四、监听系统环境变量变化实战(一)关键代码解析(二)回调函数触发机制五、AbilityStage其他回调函数探秘(一)onAcceptWant()(二)onMemoryLevel()(三)o</div> </li> <li><a href="/article/1942335284146401280.htm" title="STM32串口DMA方式向上位机连续发送接收数据" target="_blank">STM32串口DMA方式向上位机连续发送接收数据</a> <span class="text-muted">Justinlevy</span> <a class="tag" taget="_blank" href="/search/stm32/1.htm">stm32</a><a class="tag" taget="_blank" href="/search/%E5%8D%95%E7%89%87%E6%9C%BA/1.htm">单片机</a><a class="tag" taget="_blank" href="/search/arm/1.htm">arm</a> <div>目录一、DMA初步应用1、DMA含义2、DMA传输四要素3、使用区别4、DMA的应用场景5、DMA传输方式6、DMA中断二、创建项目1、STM32CubeMX创建1.1设置SYS1.2设置RCC1.3设置USART1.4DMA设置1.5时钟设置1.6文件配置2、KEIL代码配置2.1main.c文件代码2.2while循环中代码2.3编译烧录2.4运行结果三、DMA总结四、参考一、DMA初步应用1</div> </li> <li><a href="/article/1942325827484053504.htm" title="会话对象 Cookie 四、Cookie的路径" target="_blank">会话对象 Cookie 四、Cookie的路径</a> <span class="text-muted">best_virtuoso</span> <a class="tag" taget="_blank" href="/search/%E4%BC%9A%E8%AF%9D/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%89%8D%E7%AB%AF/1.htm">前端</a> <div>1.Cookie的path属性Cookie还有一个path属性,可以通过Cookie#setPath(String)方法来设置。你可以使用HttpWatch查看响应中的Set-Cookie中是否存在路径。下面是通过Chrome查看Cookie信息。也就是说,就算你不设置Cookie的path,Cookie也是有路径的。这个路径就是请求的路径。例如在请求:http://localhost:8080/</div> </li> <li><a href="/article/1942325322724732928.htm" title="python函数" target="_blank">python函数</a> <span class="text-muted"></span> <div>四、函数定义P.1函数定义把一段实现某个功能的完整代码,用一个函数封装,后期可以通过调用函数名,实现依次编写,多次调用的目的函数,可以等价于我们初高中学过的f(x),f是运算法则,也就是代码函数中对应的代码执行块,每有一个x对应经过f运算之后得到一个值,如f(x)对应的是让x乘3加2,每有一个x进入f中便会得到一个值。高中对应的函数三要素是,定义域、运算法则、值域,而编程中的函数也有三要素,分别为</div> </li> <li><a href="/article/1942324944813748224.htm" title="一秒四次!高频Tick五档期货Level2分析" target="_blank">一秒四次!高频Tick五档期货Level2分析</a> <span class="text-muted"></span> <div>一秒四次!高频Tick五档期货Level2分析国内期货level2高频数据(一秒四次)下载链接:https://pan.baidu.com/s/144ewl4T0dQvrAedhLz8uJw?pwd=c33h提取码:c33h通过历史Level2一秒四次高频数据深层次分析交易可以分析出比较活跃的品种一:m2505(1)在11:12:36.158的瞬间,一笔引人注目的大单投入市场,3606份订单被安排</div> </li> <li><a href="/article/1942324566814683136.htm" title="React——基础" target="_blank">React——基础</a> <span class="text-muted">贵沫末</span> <a class="tag" taget="_blank" href="/search/react.js/1.htm">react.js</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E6%A1%86%E6%9E%B6/1.htm">前端框架</a> <div>文章目录React基础一、基础概念二、组件化三、状态四、属性五、项目初始化六、jsx七、创建React组件的两种方式函数式组件(推荐)类组件(不推荐)八、常用的hooks1、useState:用来修改状态值2、useReducer:用来修改状态值,比useState更适合处理复杂逻辑3、useContext:传递数据4、useMemo:缓存计算结果5、useCallback:缓存函数6、useEf</div> </li> <li><a href="/article/1942324438917771264.htm" title="前端开发常见问题(从布局到性能优化)" target="_blank">前端开发常见问题(从布局到性能优化)</a> <span class="text-muted">白仑色</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E7%B3%BB%E5%88%97/1.htm">前端系列</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E5%BC%80%E5%8F%91/1.htm">前端开发</a><a class="tag" taget="_blank" href="/search/HTML/1.htm">HTML</a><a class="tag" taget="_blank" href="/search/CSS/1.htm">CSS</a><a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96/1.htm">性能优化</a><a class="tag" taget="_blank" href="/search/%E5%93%8D%E5%BA%94%E5%BC%8F%E5%B8%83%E5%B1%80/1.htm">响应式布局</a><a class="tag" taget="_blank" href="/search/%E8%B7%A8%E5%9F%9F/1.htm">跨域</a> <div>前端开发作为连接用户与产品的重要桥梁,涉及HTML、CSS和JavaScript的综合运用。但在实际开发过程中,开发者常常会遇到各种“坑”,比如页面布局异常、跨域请求失败、性能瓶颈、浏览器兼容性差等问题。本文将围绕前端开发中常见的十大问题展开讲解:页面布局相关问题(盒模型、浮动、Flex布局)CSS样式冲突与继承JavaScript异步处理(Promise、async/await)跨域问题及解决方</div> </li> <li><a href="/article/1942321791699578880.htm" title="单按钮动画" target="_blank">单按钮动画</a> <span class="text-muted"></span> <div>本文仅仅自己备份使用html☀️//currentTheme是light和dark//switchTheme是切换主题逻辑import{currentTheme,switchTheme,}from"../utils/theme"consthandleClick=(event)=>{if(!document.startViewTransition){switchTheme()return}const</div> </li> <li><a href="/article/1942316748166459392.htm" title="[创业之路-484]:企业经营层 - 职场人如何识别积极的工作环境:信任机制:从「分工协作」到「全能防御」;目标聚焦:从「价值创造」到「风险规避」;系统进化:从「熵减秩序」到「熵增混乱」。" target="_blank">[创业之路-484]:企业经营层 - 职场人如何识别积极的工作环境:信任机制:从「分工协作」到「全能防御」;目标聚焦:从「价值创造」到「风险规避」;系统进化:从「熵减秩序」到「熵增混乱」。</a> <span class="text-muted"></span> <div>前言:在一个分工明确安全可靠公平化的系统中,每个人只需要认真完成自己的目标,把其他环节交给受信任的队友,技术人只要关注技术,不需要防范被别人算计和坑害或吃亏。在一个不可靠不安全人治危机四伏的系统中,每个人不仅需要完成自己的目标,还需要把自己变成全才,以避免自己的付出在脱节的环节被淹没,还要关注各种无关的隐情,以避免在信息不对称时别忽悠,技术人员不仅仅要关注技术,还要人事,以防止一不小心暗算与坑害。</div> </li> <li><a href="/article/1942313725209931776.htm" title="PEFT(参数高效微调)技术全面解析:原理、方法与实战应用" target="_blank">PEFT(参数高效微调)技术全面解析:原理、方法与实战应用</a> <span class="text-muted"></span> <div>文章目录一、PEFT核心概念解析1.1PEFT技术定义1.2与传统微调的对比二、为什么需要PEFT技术?2.1大模型时代的核心挑战2.2PEFT的核心优势三、主流PEFT方法技术剖析3.1代表性PEFT方法对比3.2关键技术实现细节3.2.1LoRA(Low-RankAdaptation)3.2.2Adapter模块3.3性能对比基准四、PEFT实战应用指南4.1使用HuggingFacePEFT</div> </li> <li><a href="/article/1942313725683888128.htm" title="深度学习微调中的优化器全景解析:从理论到实践" target="_blank">深度学习微调中的优化器全景解析:从理论到实践</a> <span class="text-muted">北辰alk</span> <a class="tag" taget="_blank" href="/search/AI/1.htm">AI</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/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a> <div>文章目录一、基础优化器:深度学习微调的基石1.1随机梯度下降(SGD)1.2AdaGrad(自适应梯度算法)二、自适应优化器:现代深度学习的标配2.1RMSProp2.2Adam(自适应矩估计)三、大模型微调专用优化器3.1LAMB(Layer-wiseAdaptiveMoments)3.2Sophia(二阶优化启发)四、优化器性能对比研究4.1在GLUE基准上的表现(BERT-base微调)4.</div> </li> <li><a href="/article/1942307421179408384.htm" title="html怎么设置好看的文本框,html页面输入框input的美化" target="_blank">html怎么设置好看的文本框,html页面输入框input的美化</a> <span class="text-muted">PassatCC</span> <a class="tag" taget="_blank" href="/search/html%E6%80%8E%E4%B9%88%E8%AE%BE%E7%BD%AE%E5%A5%BD%E7%9C%8B%E7%9A%84%E6%96%87%E6%9C%AC%E6%A1%86/1.htm">html怎么设置好看的文本框</a> <div>input输入框是网页必不可少的组件,可是每个浏览器对于输入框的显示样式各有不同例如:上图分别就是谷歌浏览器和IE浏览器自带显示的输入框,样式也不足人意,所以大多都会自己写样式以下是一个简单的文本框样式input{border:1pxsolid#ccc;padding:7px0px;border-radius:3px;/*css3属性IE不支持*/padding-left:5px;}效果图:样式属</div> </li> <li><a href="/article/1942307421678530560.htm" title="web与Java代码保护:混淆、压缩及反编译工具详解" target="_blank">web与Java代码保护:混淆、压缩及反编译工具详解</a> <span class="text-muted"></span> <div>本文还有配套的精品资源,点击获取简介:为保障代码的安全性和保密性,IT行业中开发者采用代码混淆和压缩技术。本文将深入探讨web代码混淆压缩工具和Java代码反编译工具,解释它们的工作原理及应用。混淆工具如UglifyJS和Terser用于混淆JavaScript代码,使其难以理解;压缩工具如YUICompressor和GoogleClosureCompiler减小JavaScript和CSS文件的</div> </li> <li><a href="/article/1942306538802704384.htm" title="nvm:NodeJs版本管理工具下载安装与使用教程" target="_blank">nvm:NodeJs版本管理工具下载安装与使用教程</a> <span class="text-muted">天天打码</span> <a class="tag" taget="_blank" href="/search/%E5%A4%A7%E5%89%8D%E7%AB%AF/1.htm">大前端</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/node.js/1.htm">node.js</a><a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a> <div>nvm是什么nvm是一个node的版本管理工具,可以简单操作node版本的切换、安装、查看。。。等等,与npm不同的是,npm是依赖包的管理工具。nvm特点node:是一个基于ChromeV8引擎的JS运行环境。npm:是node.js默认的包管理系统(用JavaScript编写的),在安装的node的时候,npm也会跟着一起安装,管理node中的第三方插件。nvm:node版本管理器,也就是说:</div> </li> <li><a href="/article/1942306539356352512.htm" title="深入理解 JavaScript/TypeScript 中的展开运算符(...)" target="_blank">深入理解 JavaScript/TypeScript 中的展开运算符(...)</a> <span class="text-muted">ttod_qzstudio</span> <a class="tag" taget="_blank" href="/search/TypeScript/1.htm">TypeScript</a><a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/typescript/1.htm">typescript</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>在JavaScript和TypeScript中,...运算符(称为展开运算符,英文SpreadOperator)是一个非常强大且常用的语法。它可以让代码更简洁、更灵活,适用于数组、对象、函数参数等多种场景。本文将详细介绍它的用法,并通过示例帮助你彻底掌握它。1.什么是展开运算符(...)?展开运算符...允许将一个可迭代对象(如数组、字符串、Set、Map等)“展开”成独立的元素。它的核心作用是解</div> </li> <li><a href="/article/1942298091889684480.htm" title="驯服权限怪兽:C# Winform拖放功能的终极实战指南" target="_blank">驯服权限怪兽:C# Winform拖放功能的终极实战指南</a> <span class="text-muted"></span> <div>驯服权限怪兽的四大秘籍秘籍1:基础拖放功能——“快递员入门培训”1.1环境配置与事件绑定首先,我们需要为窗体或控件开启拖放权限,并绑定事件://Form1.cspublicpartialclassForm1:Form{publicForm1(){InitializeComponent();//关键步骤1:允许窗体接收拖放this.AllowDrop=true;//关键步骤2:绑定事件this.Dr</div> </li> <li><a href="/article/1942295441743867904.htm" title="Postgresql中不同数据类型的长度限制" target="_blank">Postgresql中不同数据类型的长度限制</a> <span class="text-muted">行星008</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/postgresql/1.htm">postgresql</a><a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a> <div>目录一、字符类型(CharacterTypes)二、二进制类型(BinaryTypes)三、数值类型(NumericTypes)四、其他类型五、全局限制:单行数据总大小示例对比表注意事项验证命令在PostgreSQL中,不同数据类型的最大长度限制各异。以下是关键类型的详细说明:一、字符类型(CharacterTypes)VARCHAR(n)/CHAR(n)最大长度:n最大可设置为10485760(</div> </li> <li><a href="/article/1942291282428751872.htm" title="ABP VNext + Tye:本地微服务编排与调试" target="_blank">ABP VNext + Tye:本地微服务编排与调试</a> <span class="text-muted"></span> <div>ABPVNext+Tye:本地微服务编排与调试目录ABPVNext+Tye:本地微服务编排与调试TL;DR✨一、环境与依赖️二、核心配置详解1.主配置`tye.yaml`三、多环境文件`tye.development.yaml``tye.production.yaml`四、依赖容器定义五、ABPVNext集成1.NuGet包2.`appsettings.json`3.分布式缓存&锁4.Rabbit</div> </li> <li><a href="/article/1942288637274157056.htm" title="Android音视频通话" target="_blank">Android音视频通话</a> <span class="text-muted"></span> <div>Android音视频通话前言一、准备工作1、编写Jni接口2、通过javah工具生成头文件3、集成speex、webrtc二、初始化工作三、开启socketudp服务四、判断socket是否可读五、发送数据到远端1、视频数据1.1、初始化MediaCodec1.2、通过MediaCodec进行H264编码2、音频数据2.1、webrtc消回声2.2、speex编码压缩六、断开连接前言Android</div> </li> <li><a href="/article/1942286620656988160.htm" title="深入解析 SAE 训练输出文件:结构与意义" target="_blank">深入解析 SAE 训练输出文件:结构与意义</a> <span class="text-muted">阿正的梦工坊</span> <a class="tag" taget="_blank" href="/search/LLM/1.htm">LLM</a><a class="tag" taget="_blank" href="/search/%E8%AF%AD%E8%A8%80%E6%A8%A1%E5%9E%8B/1.htm">语言模型</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E7%84%B6%E8%AF%AD%E8%A8%80%E5%A4%84%E7%90%86/1.htm">自然语言处理</a> <div>深入解析SAE训练输出文件:结构与意义在利用SAELens框架进行稀疏自编码器(SparseAutoencoder,SAE)训练时,训练完成后会生成一组关键文件,这些文件记录了模型的权重、状态以及相关信息。本文将详细解析路径SAELens/tutorials/checkpoints/n78ngo5e/final_122880000下生成的四个文件:activations_store_state.s</div> </li> <li><a href="/article/1942278789526515712.htm" title="java毕业设计图书馆座位预约管理系统维修端源码+lw文档+mybatis+系统+mysql数据库+调试" target="_blank">java毕业设计图书馆座位预约管理系统维修端源码+lw文档+mybatis+系统+mysql数据库+调试</a> <span class="text-muted">木林网络</span> <a class="tag" taget="_blank" href="/search/mybatis/1.htm">mybatis</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a> <div>java毕业设计图书馆座位预约管理系统维修端源码+lw文档+mybatis+系统+mysql数据库+调试java毕业设计图书馆座位预约管理系统维修端源码+lw文档+mybatis+系统+mysql数据库+调试本源码技术栈:项目架构:B/S架构开发语言:Java语言开发软件:ideaeclipse前端技术:Layui、HTML、CSS、JS、JQuery等技术后端技术:JAVA运行环境:Win10、</div> </li> <li><a href="/article/29.htm" title="SQL的各种连接查询" target="_blank">SQL的各种连接查询</a> <span class="text-muted">xieke90</span> <a class="tag" taget="_blank" href="/search/UNION+ALL/1.htm">UNION ALL</a><a class="tag" taget="_blank" href="/search/UNION/1.htm">UNION</a><a class="tag" taget="_blank" href="/search/%E5%A4%96%E8%BF%9E%E6%8E%A5/1.htm">外连接</a><a class="tag" taget="_blank" href="/search/%E5%86%85%E8%BF%9E%E6%8E%A5/1.htm">内连接</a><a class="tag" taget="_blank" href="/search/JOIN/1.htm">JOIN</a> <div>一、内连接   概念:内连接就是使用比较运算符根据每个表共有的列的值匹配两个表中的行。                 内连接(join 或者inner join )       SQL语法:       select * fron</div> </li> <li><a href="/article/156.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/%E7%BB%A7%E6%89%BF/1.htm">继承</a><a class="tag" taget="_blank" href="/search/%E4%BB%A3%E7%90%86/1.htm">代理</a><a class="tag" taget="_blank" href="/search/%E7%BB%84%E5%90%88/1.htm">组合</a><a class="tag" taget="_blank" href="/search/final%E7%B1%BB/1.htm">final类</a> <div>      复用类看着标题都不知道是什么,再加上java编程思想翻译的比价难懂,所以知道现在才看这本软件界的奇书   一:组合语法:就是将对象的引用放到新类中即可     代码:     package com.wj.reuse; /** * * @author Administrator 组</div> </li> <li><a href="/article/283.htm" title="[开源与生态系统]国产CPU的生态系统" target="_blank">[开源与生态系统]国产CPU的生态系统</a> <span class="text-muted">comsci</span> <a class="tag" taget="_blank" href="/search/cpu/1.htm">cpu</a> <div>       计算机要从娃娃抓起...而孩子最喜欢玩游戏....       要让国产CPU在国内市场形成自己的生态系统和产业链,国家和企业就不能够忘记游戏这个非常关键的环节....       投入一些资金和资源,人力和政策,让游</div> </li> <li><a href="/article/410.htm" title="JVM内存区域划分Eden Space、Survivor Space、Tenured Gen,Perm Gen解释" target="_blank">JVM内存区域划分Eden Space、Survivor Space、Tenured Gen,Perm Gen解释</a> <span class="text-muted">商人shang</span> <a class="tag" taget="_blank" href="/search/jvm%E5%86%85%E5%AD%98/1.htm">jvm内存</a> <div>jvm区域总体分两类,heap区和非heap区。heap区又分:Eden Space(伊甸园)、Survivor Space(幸存者区)、Tenured Gen(老年代-养老区)。 非heap区又分:Code Cache(代码缓存区)、Perm Gen(永久代)、Jvm Stack(java虚拟机栈)、Local Method Statck(本地方法栈)。 HotSpot虚拟机GC算法采用分代收</div> </li> <li><a href="/article/537.htm" title="页面上调用 QQ" target="_blank">页面上调用 QQ</a> <span class="text-muted">oloz</span> <a class="tag" taget="_blank" href="/search/qq/1.htm">qq</a> <div><A href="tencent://message/?uin=707321921&amp;Site=有事Q我&amp;Menu=yes">   <img style="border:0px;" src=http://wpa.qq.com/pa?p=1:707321921:1></a></div> </li> <li><a href="/article/664.htm" title="一些问题" target="_blank">一些问题</a> <span class="text-muted">文强chu</span> <a class="tag" taget="_blank" href="/search/%E9%97%AE%E9%A2%98/1.htm">问题</a> <div>1.eclipse 导出 doc  出现“The Javadoc command does not exist.” javadoc command 选择 jdk/bin/javadoc.exe 2.tomcate 配置 web 项目 ..... SQL:3.mysql  * 必须得放前面 否则  select&nbs</div> </li> <li><a href="/article/791.htm" title="生活没有安全感" target="_blank">生活没有安全感</a> <span class="text-muted">小桔子</span> <a class="tag" taget="_blank" href="/search/%E7%94%9F%E6%B4%BB/1.htm">生活</a><a class="tag" taget="_blank" href="/search/%E5%AD%A4%E7%8B%AC/1.htm">孤独</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8%E6%84%9F/1.htm">安全感</a> <div>       圈子好小,身边朋友没几个,交心的更是少之又少。在深圳,除了男朋友,没几个亲密的人。不知不觉男朋友成了唯一的依靠,毫不夸张的说,业余生活的全部。现在感情好,也很幸福的。但是说不准难免人心会变嘛,不发生什么大家都乐融融,发生什么很难处理。我想说如果不幸被分手(无论原因如何),生活难免变化很大,在深圳,我没交心的朋友。明</div> </li> <li><a href="/article/918.htm" title="php 基础语法" target="_blank">php 基础语法</a> <span class="text-muted">aichenglong</span> <a class="tag" taget="_blank" href="/search/php+%E5%9F%BA%E6%9C%AC%E8%AF%AD%E6%B3%95/1.htm">php 基本语法</a> <div>1 .1 php变量必须以$开头 <?php $a=” b”; echo ?> 1 .2 php基本数据库类型 Integer  float/double Boolean string 1 .3 复合数据类型 数组array和对象 object 1 .4 特殊数据类型  null 资源类型(resource)    $co</div> </li> <li><a href="/article/1045.htm" title="mybatis tools 配置详解" target="_blank">mybatis tools 配置详解</a> <span class="text-muted">AILIKES</span> <a class="tag" taget="_blank" href="/search/mybatis/1.htm">mybatis</a> <div>MyBatis Generator中文文档 MyBatis Generator中文文档地址: http://generator.sturgeon.mopaas.com/ 该中文文档由于尽可能和原文内容一致,所以有些地方如果不熟悉,看中文版的文档的也会有一定的障碍,所以本章根据该中文文档以及实际应用,使用通俗的语言来讲解详细的配置。 本文使用Markdown进行编辑,但是博客显示效</div> </li> <li><a href="/article/1172.htm" title="继承与多态的探讨" target="_blank">继承与多态的探讨</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/JAVA%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1+%E7%BB%A7%E6%89%BF+%E5%AF%B9%E8%B1%A1/1.htm">JAVA面向对象 继承 对象</a> <div>继承 extends   多态 继承是面向对象最经常使用的特征之一:继承语法是通过继承发、基类的域和方法 //继承就是从现有的类中生成一个新的类,这个新类拥有现有类的所有extends是使用继承的关键字:     在A类中定义属性和方法; class A{ //定义属性 int age; //定义方法 public void go</div> </li> <li><a href="/article/1299.htm" title="JS的undefined与null的实例" target="_blank">JS的undefined与null的实例</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/JavaScript/1.htm">JavaScript</a> <div><form name="theform" id="theform"> </form> <script language="javascript"> var a alert(typeof(b)); //这里提示undefined if(theform.datas</div> </li> <li><a href="/article/1426.htm" title="TDD实践(一)" target="_blank">TDD实践(一)</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/%E6%95%8F%E6%8D%B7/1.htm">敏捷</a><a class="tag" taget="_blank" href="/search/TDD/1.htm">TDD</a> <div>一.TDD概述         TDD:测试驱动开发,它的基本思想就是在开发功能代码之前,先编写测试代码。也就是说在明确要开发某个功能后,首先思考如何对这个功能进行测试,并完成测试代码的编写,然后编写相关的代码满足这些测试用例。然后循环进行添加其他功能,直到完全部功能的开发。     </div> </li> <li><a href="/article/1553.htm" title="[Maven学习笔记十]Maven Profile与资源文件过滤器" target="_blank">[Maven学习笔记十]Maven Profile与资源文件过滤器</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/maven/1.htm">maven</a> <div>什么是Maven Profile Maven Profile的含义是针对编译打包环境和编译打包目的配置定制,可以在不同的环境上选择相应的配置,例如DB信息,可以根据是为开发环境编译打包,还是为生产环境编译打包,动态的选择正确的DB配置信息   Profile的激活机制 1.Profile可以手工激活,比如在Intellij Idea的Maven Project视图中可以选择一个P</div> </li> <li><a href="/article/1680.htm" title="【Hive八】Hive用户自定义生成表函数(UDTF)" target="_blank">【Hive八】Hive用户自定义生成表函数(UDTF)</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/hive/1.htm">hive</a> <div>1. 什么是UDTF   UDTF,是User Defined Table-Generating Functions,一眼看上去,貌似是用户自定义生成表函数,这个生成表不应该理解为生成了一个HQL Table, 貌似更应该理解为生成了类似关系表的二维行数据集   2. 如何实现UDTF 继承org.apache.hadoop.hive.ql.udf.generic</div> </li> <li><a href="/article/1807.htm" title="tfs restful api 加auth 2.0认计" target="_blank">tfs restful api 加auth 2.0认计</a> <span class="text-muted">ronin47</span> <div>  目前思考如何给tfs的ngx-tfs api增加安全性。有如下两点:   一是基于客户端的ip设置。这个比较容易实现。   二是基于OAuth2.0认证,这个需要lua,实现起来相对于一来说,有些难度。   现在重点介绍第二种方法实现思路。    前言:我们使用Nginx的Lua中间件建立了OAuth2认证和授权层。如果你也有此打算,阅读下面的文档,实现自动化并获得收益。SeatGe</div> </li> <li><a href="/article/1934.htm" title="jdk环境变量配置" target="_blank">jdk环境变量配置</a> <span class="text-muted">byalias</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>进行java开发,首先要安装jdk,安装了jdk后还要进行环境变量配置: 1、下载jdk(http://java.sun.com/javase/downloads/index.jsp),我下载的版本是:jdk-7u79-windows-x64.exe 2、安装jdk-7u79-windows-x64.exe 3、配置环境变量:右击"计算机"-->&quo</div> </li> <li><a href="/article/2061.htm" title="《代码大全》表驱动法-Table Driven Approach-2" target="_blank">《代码大全》表驱动法-Table Driven Approach-2</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>package com.ljn.base; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Collections; import java.uti</div> </li> <li><a href="/article/2188.htm" title="SQL 数值四舍五入 小数点后保留2位" target="_blank">SQL 数值四舍五入 小数点后保留2位</a> <span class="text-muted">chicony</span> <a class="tag" taget="_blank" href="/search/%E5%9B%9B%E8%88%8D%E4%BA%94%E5%85%A5/1.htm">四舍五入</a> <div> 1.round() 函数是四舍五入用,第一个参数是我们要被操作的数据,第二个参数是设置我们四舍五入之后小数点后显示几位。 2.numeric 函数的2个参数,第一个表示数据长度,第二个参数表示小数点后位数。 例如:   select   cast(round(12.5,2)   as   numeric(5,2))  </div> </li> <li><a href="/article/2315.htm" title="c++运算符重载" target="_blank">c++运算符重载</a> <span class="text-muted">CrazyMizzz</span> <a class="tag" taget="_blank" href="/search/C%2B%2B/1.htm">C++</a> <div>一、加+,减-,乘*,除/ 的运算符重载 Rational operator*(const Rational &x) const{ return Rational(x.a * this->a); } 在这里只写乘法的,加减除的写法类似 二、<<输出,>>输入的运算符重载      &nb</div> </li> <li><a href="/article/2442.htm" title="hive DDL语法汇总" target="_blank">hive DDL语法汇总</a> <span class="text-muted">daizj</span> <a class="tag" taget="_blank" href="/search/hive/1.htm">hive</a><a class="tag" taget="_blank" href="/search/%E4%BF%AE%E6%94%B9%E5%88%97/1.htm">修改列</a><a class="tag" taget="_blank" href="/search/DDL/1.htm">DDL</a><a class="tag" taget="_blank" href="/search/%E4%BF%AE%E6%94%B9%E8%A1%A8/1.htm">修改表</a> <div>hive DDL语法汇总 1、对表重命名 hive> ALTER TABLE table_name RENAME TO new_table_name;   2、修改表备注 hive> ALTER TABLE table_name SET TBLPROPERTIES ('comment' = new_comm</div> </li> <li><a href="/article/2569.htm" title="jbox使用说明" target="_blank">jbox使用说明</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a> <div>参考网址:http://www.kudystudio.com/jbox/jbox-demo.html jBox v2.3 beta [ 点击下载]  技术交流QQGroup:172543951 100521167 [2011-11-11] jBox v2.3 正式版 - [调整&修复] IE6下有iframe或页面有active、applet控件</div> </li> <li><a href="/article/2696.htm" title="UISegmentedControl 开发笔记" target="_blank">UISegmentedControl 开发笔记</a> <span class="text-muted">dcj3sjt126com</span> <div>  //    typedef NS_ENUM(NSInteger, UISegmentedControlStyle) {     //        UISegmentedControlStylePlain,     // large plain   &</div> </li> <li><a href="/article/2823.htm" title="Slick生成表映射文件" target="_blank">Slick生成表映射文件</a> <span class="text-muted">ekian</span> <a class="tag" taget="_blank" href="/search/scala/1.htm">scala</a> <div>Scala添加SLICK进行数据库操作,需在sbt文件上添加slick-codegen包 "com.typesafe.slick" %% "slick-codegen" % slickVersion 因为我是连接SQL Server数据库,还需添加slick-extensions,jtds包 "com.typesa</div> </li> <li><a href="/article/2950.htm" title="ES-TEST" target="_blank">ES-TEST</a> <span class="text-muted">gengzg</span> <a class="tag" taget="_blank" href="/search/test/1.htm">test</a> <div>package com.MarkNum; import java.io.IOException; import java.util.Date; import java.util.HashMap; import java.util.Map; import javax.servlet.ServletException; import javax.servlet.annotation</div> </li> <li><a href="/article/3077.htm" title="为何外键不再推荐使用" target="_blank">为何外键不再推荐使用</a> <span class="text-muted">hugh.wang</span> <a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/DB/1.htm">DB</a> <div>表的关联,是一种逻辑关系,并不需要进行物理上的“硬关联”,而且你所期望的关联,其实只是其数据上存在一定的联系而已,而这种联系实际上是在设计之初就定义好的固有逻辑。 在业务代码中实现的时候,只要按照设计之初的这种固有关联逻辑来处理数据即可,并不需要在数据库层面进行“硬关联”,因为在数据库层面通过使用外键的方式进行“硬关联”,会带来很多额外的资源消耗来进行一致性和完整性校验,即使很多时候我们并不</div> </li> <li><a href="/article/3204.htm" title="领域驱动设计" target="_blank">领域驱动设计</a> <span class="text-muted">julyflame</span> <a class="tag" taget="_blank" href="/search/VO/1.htm">VO</a><a class="tag" taget="_blank" href="/search/DAO/1.htm">DAO</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/DTO/1.htm">DTO</a><a class="tag" taget="_blank" href="/search/po/1.htm">po</a> <div>概念: VO(View Object):视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。 DTO(Data Transfer Object):数据传输对象,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低网络负载,但在这里,我泛指用于展示层与服务层之间的数据传输对</div> </li> <li><a href="/article/3331.htm" title="单例设计模式" target="_blank">单例设计模式</a> <span class="text-muted">hm4123660</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/Singleton/1.htm">Singleton</a><a class="tag" taget="_blank" href="/search/%E5%8D%95%E4%BE%8B%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">单例设计模式</a><a class="tag" taget="_blank" href="/search/%E6%87%92%E6%B1%89%E5%BC%8F/1.htm">懒汉式</a><a class="tag" taget="_blank" href="/search/%E9%A5%BF%E6%B1%89%E5%BC%8F/1.htm">饿汉式</a> <div>       单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。      &nb</div> </li> <li><a href="/article/3458.htm" title="logback" target="_blank">logback</a> <span class="text-muted">zhb8015</span> <a class="tag" taget="_blank" href="/search/log/1.htm">log</a><a class="tag" taget="_blank" href="/search/logback/1.htm">logback</a> <div>一、logback的介绍      Logback是由log4j创始人设计的又一个开源日志组件。logback当前分成三个模块:logback-core,logback- classic和logback-access。logback-core是其它两个模块的基础模块。logback-classic是log4j的一个 改良版本。此外logback-class</div> </li> <li><a href="/article/3585.htm" title="整合Kafka到Spark Streaming——代码示例和挑战" target="_blank">整合Kafka到Spark Streaming——代码示例和挑战</a> <span class="text-muted">Stark_Summer</span> <a class="tag" taget="_blank" href="/search/spark/1.htm">spark</a><a class="tag" taget="_blank" href="/search/storm/1.htm">storm</a><a class="tag" taget="_blank" href="/search/zookeeper/1.htm">zookeeper</a><a class="tag" taget="_blank" href="/search/PARALLELISM/1.htm">PARALLELISM</a><a class="tag" taget="_blank" href="/search/processing/1.htm">processing</a> <div>作者Michael G. Noll是瑞士的一位工程师和研究员,效力于Verisign,是Verisign实验室的大规模数据分析基础设施(基础Hadoop)的技术主管。本文,Michael详细的演示了如何将Kafka整合到Spark Streaming中。 期间, Michael还提到了将Kafka整合到 Spark Streaming中的一些现状,非常值得阅读,虽然有一些信息在Spark 1.2版</div> </li> <li><a href="/article/3712.htm" title="spring-master-slave-commondao" target="_blank">spring-master-slave-commondao</a> <span class="text-muted">王新春</span> <a class="tag" taget="_blank" href="/search/DAO/1.htm">DAO</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/dataSource/1.htm">dataSource</a><a class="tag" taget="_blank" href="/search/slave/1.htm">slave</a><a class="tag" taget="_blank" href="/search/master/1.htm">master</a> <div>互联网的web项目,都有个特点:请求的并发量高,其中请求最耗时的db操作,又是系统优化的重中之重。 为此,往往搭建 db的 一主多从库的 数据库架构。作为web的DAO层,要保证针对主库进行写操作,对多个从库进行读操作。当然在一些请求中,为了避免主从复制的延迟导致的数据不一致性,部分的读操作也要到主库上。(这种需求一般通过业务垂直分开,比如下单业务的代码所部署的机器,读去应该也要从主库读取数</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>