Html5与Html4的区别

本文主要介绍Html5和Html4的区别。

语法的改变

内容类型
HTML5 的文件扩展符与内容类型保持不变。扩展符仍然为“.html”或“.htm”,内容类型(ContentType)仍然为“text/html”。
DOCTYPE声明
DOCTYPE 声明是 HTML 文件中必不可少的,它位于文件第一行。在 XHTML 1.0 Transitional 中,它的声明方法如下:


在 HTML5 中,刻意不使用版本声明,一份文档将会适用于所有版本的 HTML。HTML5 中的 DOCTYPE 声明方法(不区分大小写)如下:

另外,当使用工具时,也可以在 DOCTYPE 声明方式中加入 SYSTEM 识别符,声明方法如下面的代码所示:

在 HTML5 中像这样的 DOCTYPE 声明是允许的(不区分大小写,引号不区分是单引号还是双引号)。

指定字符编码
在 HTML4 中,使用 meta 标签的形式指定文件中的字符编码,如下所示:

在 HTML5 中,可以使用对 标签直接追加 charset 属性的方式来指定字符编码,如下所示:

两种方法都有效,可以继续使用前面那种方式(通过 content 属性来指定),但是不能同时混合使用两种方式,在以前的 HTML 代码中可能会存在下面代码所示的标记方式,但在 HTML5 中,这种字符编码方式将被认为是错误的,这一点请注意:

从 HTML5 开始,对于文件的字符编码推荐使用 UTF-8。

可以省略标记的元素
在 HTML5 中,标签的标记分为“不允许写结束标记”、“可以省略结束标记”和“开始标记和结束标记全部可以省略”三种类型。让我们来针对这三类情况列举一个标签清单,其中包括 HTML5 中的新标签。

不允许写结束标记的标签有:
area、base、br、col、command、embed、hr、img、input、keygen、link、meta、param、source、track、wbr。
可以省略结束标记的标签有:
li、dt、dd、p、rt、rp、op、optgroup、option、colgroup、thead、tbody、tfoot、tr、td、th。
可以省略全部标记的标签有:
html、head、body、colgroup、tbody。

“不允许写结束标记的标签”是指,不允许使用开始标记与结束标记将标签括起来的形式,只允许使用“<标签/>”的形式进行书写。例如
...
的书写方式是错误的,正确的书写方式为
。当然,HTML5之前的版本中
这种写法可以被沿用。

“可以省略全部标记的标签”是指,该标签可以完全被省略。请注意,即使标记被省略了,该标签还是以隐式的方式存在的。例如将body标签省略不写时,但它在文档结构中还是存在的,可以使用document.body进行访问。

具有boolean值的属性
对于具有boolean值的属性,例如 disabled 与 readonly 等,当只写属性而不指定属性值时,表示属性值为true;如果想要将属性值设为flase,可以不使用该属性。另外,要想将属性值设为true时,也可以将属性名设定为属值,或将空字符串设定为属性值。属性值的设定方法可以参考下面的示例:









省略引号
在之前的 HTML 版本中,大家已经知道,指定属性值的时候,属性值两边既可以用双引号,也可以用单引号。HTML5 在此基础上做了一些改进,当属性值不包括空字符串、“<”、“>”、"="、单引号、双引号等字符时,属性值两边的引号可以省略。如下面的代码所示:





示例:



HTML5 标记示例

这段代码是根据HTML5语法
编写出来的。

1、该代码完全是用 HTML5 写成的;
2、省略了等标签;
3、DOCTYPE申明使用了 HTML5 支持的简洁申明方式;
4、用标签的 charset 属性指定字符编码;
5、省略了

标签的结束标记;
6、使用<标签/>的方式来结束</code>标签以及<code><br></code>标签。</p> <h3>新增和废除的元素(标签)</h3> <h5>新增的结构标签</h5> <p>在 HTML5 中,新增了以下与结构相关的标签:<br> <strong>section标签</strong><br> <code>section</code> 标签表示页面中的一个内容区块,比如章节、页眉、页脚或页面中的其他部分。<br> 它可以与<code>h1</code>、<code>h2</code>、<code>h3</code>、<code>h4</code>、<code>h5</code>、<code>h6</code>等标签结合起来使用,标识文档结构。<br> HTML5 中代码示例:<br> <code><section>....</section></code><br> HTML4 中代码示例:<br> <code><div>...</div></code></p> <p><strong>article标签</strong><br> <code>article</code> 标签表示页面中的一块与上下文不相关的独立内容,比如博客中的一篇文章或报纸中的一篇文章。<br> HTML5 中代码示例:<br> <code><article>...</article></code><br> HTML4 中代码示例:<br> <code><div>...</div></code></p> <p><strong>aside标签</strong><br> <code>aside</code> 标签表示 <code>article</code> 标签的内容之外、并与<code>article</code> 标签的内容相关的辅助信息。<br> HTML5 中代码示例:<br> <code><aside>...</aside></code><br> HTML4 中代码示例:<br> <code><div>...</div></code></p> <p><strong>header标签</strong><br> header 标签表示页面中的一个内容区块或整个页面的标题。<br> HTML5 中代码示例:<br> <code><header>...</header></code><br> HTML4 中代码示例:<br> <code><div>...</div></code></p> <p><strong>hgroup标签</strong><br> <code>hgroup</code> 标签用于对整个页面或页面中一个内容区块的标题进行组合。<br> HTML5 中代码示例:<br> <code><hgroup>...</hgroup></code><br> HTML4 中代码示例:<br> <code><div>...</div></code></p> <p><strong>footer标签</strong><br> <code>footer</code> 标签表示整个页面或页面中一个内容区块的脚注。一般来说,它会包含创作者的姓名、创作日期以及创作者的版权或联系信息。<br> HTML5 中代码示例:<br> <code><footer>...</footer></code><br> HTML4 中代码示例:<br> <code><div>...</div></code></p> <p><strong>nav标签</strong><br> <code>nav</code>标签表示页面中导航链接的部分。<br> HTML5 中代码示例:<br> <code><nav>...</nav></code><br> HTML4 中代码示例:<br> <code><ul>...</ul></code></p> <p><strong>figure标签</strong><br> <code>figure</code> 标签表示一段独立的流内容,一般表示文档主体流内容中的一个独立单元。使用 figcaption 标签为 figure 标签组添加标题。<br> HTML5 中代码示例:</p> <pre><code><figure> <figcaption>新增的结构标签</figcaption> <p>在 HTML5 中,新增了以下与结构相关的标签:</p> </figure> </code></pre> <p>HTML4 中代码示例:</p> <pre><code><dl> <h1>新增的结构标签</h1> <p>在 HTML5 中,新增了以下与结构相关的标签:</p> </dl> </code></pre> <h5>新增的其他标签</h5> <p>除了结构标签外,在 HTML5 中,还新增了以下标签:<br> <strong>video标签</strong><br> <code>video</code> 标签定义视频,比如电影片段或其他视频流。<br> HTML5 中代码示例:<br> <code><video src="movie.ogg" controls="controls">video标签</video></code></p> <p>HTML4 中代码示例:</p> <pre><code><object type="video/ogg" data="movie.ogv"> <param name="src" value="movie.ogv"> </object> </code></pre> <p><strong>audio标签</strong><br> <code>audio</code> 标签定义音频,比如音乐或其他音频流。<br> HTML5 中代码示例:<br> <code><audio src="someaudio.wav">audio标签</audio></code></p> <p>HTML4 中代码示例:</p> <pre><code><object type="application/ogg" data="someaudio.wav"> <param name="src" value="someaudio.wav"> </object> </code></pre> <p><strong>canvas标签</strong><br> <code>canvas</code> 标签表示图形,比如图表和其他图像。这个标签本身没有行为,仅提供一块画布,但它把一个绘图 API 展现给客户端JavaScript,以使脚本能够把想绘制的东西绘制到这块画布上。<br> HTML5 中代码示例:<br> <code><canvas id="myCanvas" width="200" height="200"></canvas></code></p> <p>HTML4 中代码示例:<br> <code><object data="inc/hdr.svg" type="image/svg+xml" width="200" height="200"></object></code></p> <p><strong>embed标签</strong><br> <code>embed</code> 标签用来插入各种多媒体,格式可以是 midi、wav、aiff、au、mp3等。<br> HTML5 中代码示例:<br> <code><embed src="horse.wav" /></code></p> <p>HTML4 中代码示例:<br> <code><object data="flash.swf" type="application/x-shockwave-flash"></object></code></p> <p><strong>mark标签</strong><br> <code>mark</code> 标签主要用来在视觉上向用户呈现那些需要突出显示或高亮显示的文字。mark 标签的一个比较典型的应用就是在搜索结果中向用户高亮显示搜索关键词。<br> HTML5 中代码示例:<br> <code><mark>...</mark></code></p> <p>HTML4 中代码示例:<br> <code><span>...</span></code></p> <p><strong>progress标签</strong><br> <code>progress</code> 标签表示一个进度条,可以使用 progress 标签来显示那些执行耗时较长的操作,提升用户体验。<br> HTML5 中代码示例:<br> <code><progress value="22" max="100"></progress></code></p> <p>HTML4 中代码示例:<br> 这是 HTML5 中新增功能,故无法用 HTML4 代码来实现,只能通过 javascript 来控制。</p> <p><strong>time标签</strong><br> <code>time</code> 标签表示日期或时间,也可以同时表示两者。<br> HTML5 中代码示例:<br> <code><time>...</time></code></p> <p>HTML4 中代码示例:<br> <code><span>...</span></code></p> <p><strong>ruby标签</strong><br> <code>ruby</code> 标签表示 ruby 注释(中文注音或字符)。<br> HTML5 中代码示例:<br> <code><ruby>漢<rt><rp>(</rp>魏<rp>)</rp></rt></ruby></code></p> <p>HTML4 中代码示例:<br> 这是 HTML5 中新增的功能。</p> <p><strong>rt标签</strong><br> <code>rt</code> 标签表示字符(中文注音或字符)的解释或发音。<br> HTML5 中代码示例:<br> <code><ruby>漢<rt>魏</rt></ruby></code></p> <p>HTML4 中代码示例:<br> 这是 HTML5 中新增的功能。</p> <p><strong>rp标签</strong><br> <code>rp</code> 标签在 ruby 注释中使用,以定义不支持 ruby 标签的浏览器所显示的内容。<br> HTML5 中代码示例:<br> <code><ruby>漢<rt><rp>(</rp>魏<rp>)</rp></rt></ruby></code></p> <p>HTML4 中代码示例:<br> 这是 HTML5 中新增的功能。</p> <p><strong>wbr标签</strong><br> <code>wbr</code> 标签表示软换行。wbr 标签与 br 标签的区别是:br 标签表示此处必须换行;而 wbr 标签的意思是浏览器窗口或父级标签的宽度足够宽时(没必要换行时),不进行换行,而当宽度不够时,主动在此处进行换行。wbr 标签好像对字符型的语言作用挺大,但是对于中文,貌似没多大用处。<br> HTML5 中代码示例:<br> <code><p>To learn AJAX, you must be fami<wbr>liar with the XMLHttp<wbr>Request Object.</p></code></p> <p>HTML4 中代码示例:<br> 这是 HTML5 中新增的功能。</p> <p><strong>command标签</strong><br> <code>command</code> 标签表示命令按钮,比如单选按钮、复选框或按钮。<br> HTML5 中代码示例:<br> <code><command onclick="cut()" label="cut"></code></p> <p>HTML4 中代码示例:<br> 这是 HTML5 中新增的功能。</p> <p><strong>details标签</strong><br> <code>details</code> 标签表示用户要求得到并且可以得到的细节信息。它可以与 summary 标签配合使用。summary 标签提供标题或图例。标题是可见的,用户点击标题时,会显示出细节信息。summary 标签应该是 <code>details</code> 标签的第一个子标签。</p> <p>HTML5 中代码示例:</p> <pre><code><details> <summary>HTML5</summary> This document teaches you everything you have to learn about HTML 5. </details> </code></pre> <p>HTML4 中代码示例:<br> 这是 HTML5 中新增的功能。</p> <p><strong>datalist标签</strong><br> <code>datalist</code> 标签表示可选数据的列表,与 input 标签配合使用,可以制作出输入值的下拉列表。<br> HTML5 中代码示例:<br> <code><datalist></datalist></code></p> <p>HTML4 中代码示例:<br> 这是 HTML5 中新增的功能。</p> <p><strong>datagrid标签</strong><br> <code>datagrid</code> 标签表示可选数据的列表,它以树形列表的形式来显示。<br> HTML5 中代码示例:<br> <code><datagrid></datagrid></code></p> <p>HTML4 中代码示例:<br> 这是 HTML5 中新增的功能。</p> <p><strong>keygen标签</strong><br> keygen 标签表示生成密钥。<br> HTML5 中代码示例:<br> <code><keygen></code></p> <p>HTML4 中代码示例:<br> 这是 HTML5 中新增的功能。</p> <p><strong>output标签</strong><br> <code>output</code> 标签表示不同类型的输出,比如脚本的输出。</p> <p>HTML5 中代码示例:<br> <code><output></output></code></p> <p>HTML4 中代码示例:<br> <code><span></span></code></p> <p><strong>source标签</strong><br> <code>source</code> 标签为媒介标签(比如<video>和<audio>)定义媒介资源。<br> HTML5 中代码示例:<br> <code><source></code></p> <p>HTML4 中代码示例:<br> <code><param></code></p> <p><strong>menu标签</strong><br> <code>menu</code> 标签表示菜单列表。当希望列出表单控件时使用该标签。</p> <p>HTML5 中代码示例:</p> <pre><code><menu> <li><input type="checkbox" />Red</li> <li><input type="checkbox" />Blue</li> </menu> </code></pre> <p>HTML4 中代码示例:<br> 在 HTML4 中 menu 标签不被推荐使用。</p> <h5>新增的input标签的类型</h5> <p>HTML5 中新增了很多 input 标签的类型,现列举如下:<br> <strong>email</strong><br> <code>email</code> 类型表示必须输入 E-mail 地址的文本输入框。</p> <p>HTML5 中代码示例:<br> <code><input type="email" /></code></p> <p>HTML4 中代码示例:<br> 这是 HTML5 中新增的功能。</p> <p><strong>url</strong><br> <code>url</code> 类型表示必须输入URL地址的文本输入框。<br> HTML5 中代码示例:<br> <code><input type="url" /></code></p> <p>HTML4 中代码示例:<br> 这是 HTML5 中新增的功能。</p> <p><strong>number</strong><br> <code>number</code> 类型表示必须输入数值的文本输入框。</p> <p>HTML5 中代码示例:<br> <code><input type="number" /></code></p> <p>HTML4 中代码示例:<br> 这是 HTML5 中新增的功能。</p> <p><strong>range</strong><br> <code>range</code> 类型表示必须输入一定范围内数字值的文本输入框。</p> <p>HTML5 中代码示例:<br> <code><input type="range" /></code></p> <p>HTML4 中代码示例:<br> 这是 HTML5 中新增的功能。</p> <p><strong>Date Pickers</strong><br> HTML5 拥有多个可供选取日期和时间的新型输入文本框:</p> <p>HTML5 中代码示例:</p> <pre><code><input type="date" />----选取日、月、年 <input type="month" />----选取月、年 <input type="week" />----选取周和年 <input type="time" />----选取时间(小时和分钟) <input type="datetime" />----选取时间、日、月、年(UTC时间) <input type="datetime-local" />----选取时间、日、月、年(本地时间) </code></pre> <p>HTML4 中代码示例:<br> 这是 HTML5 中新增的功能。</p> <h4>废除的标签</h4> <p>由于各种原因,在 HTML5 中废除了很多标签,简单介绍如下。</p> <h5>1、能使用CSS替代的标签</h5> <p>对于 <code>basefont、big、center、font、s、strike、tt、u</code>这些标签,由于它们的功能都是纯粹为画面展示服务的,在 HTML5 中提倡把画面展示型功能放在 CSS 样式表中统一编辑,所以将这些标签废除了,并使用添加或编辑 CSS 样式表的方式进行替代。</p> <h5>2、不再使用frame框架</h5> <p>对于 <code>frameset</code> 标签、<code>frame</code> 标签与 <code>noframes</code> 标签,由于 frame 框架对网页可用性存在负面影响,在 HTML5 中已不支持 frame 框架,只支持 iframe 框架,或者用服务器方创建的由多个页面组成的复合页面的形式,同时将以上这三个标签废除。</p> <h5>3、只有部分浏览器支持的标签</h5> <p>对于 <code>applet、bgsound、blink、marquee</code> 等标签,由于只有部分浏览器支持这些标签,特别是 <code>bgsound</code> 标签以及 <code>marquee</code> 标签,只被 IE 所支持,所以在 HTML5 中被废除。其中 <code>applet</code> 标签可由 <code>embed</code> 标签或 <code>object</code> 标签替代,<code>bgsound</code> 标签可由 <code>audio</code> 标签替代,<code>marquee</code> 可以由 JavaScript 编程的方式所替代。</p> <h5>4、其他被废除的标签</h5> <p>废除 <code>rb</code> 标签,使用 ruby 标签替代<br> 废除 <code>acronym</code> 标签,使用 abbr 标签替代<br> 废除<code>dir</code> 标签,使用 ul 标签替代<br> 废除 <code>isindex</code> 标签,使用 form 标签与 input 标签相结合的方式替代<br> 废除 <code>listing</code> 标签,使用 pre 标签替代<br> 废除 <code>xmp</code> 标签,使用 code 标签替代<br> 废除 <code>nextid</code> 标签,使用 GUIDS 替代<br> 废除 <code>plaintext</code> 标签,使用“text/plian”MIME类型替代</p> <h3>全局属性</h3> <h4>1. contentEditable</h4> <p><strong>主要功能:</strong>是否允许用户编辑元素内容。bool值。<br> <strong>例:</strong><br> <code><p contenteditable="true">这是一段可编辑的段落。请试着编辑该文本。</p></code><br> <strong>语法:</strong><br> <code><element contenteditable="value"></code><br> <strong>属性值:</strong></p> <table> <thead> <tr> <th style="text-align:center">值</th> <th style="text-align:center">描述</th> </tr> </thead> <tbody> <tr> <td style="text-align:center">true</td> <td style="text-align:center">规定可以编辑元素内容。</td> </tr> <tr> <td style="text-align:center">false</td> <td style="text-align:center">规定无法编辑元素内容。</td> </tr> <tr> <td style="text-align:center">classname</td> <td style="text-align:center">继承父元素的 contenteditable 属性。</td> </tr> </tbody> </table> <h4>2. designMode</h4> <p><strong>主要功能:</strong>指定整个页面是否允许用户编辑元素内容。bool值。</p> <h4>3. hidden</h4> <p><strong>主要功能:</strong>隐藏页面元素。bool值。</p> <h4>4. spellcheck</h4> <p><strong>主要功能:</strong>规定是否对元素内容进行拼写检查。<br> 可对以下文本进行拼写检查:<br> 类型为 text 的 input 元素中的值(非密码)<br> textarea 元素中的值<br> 可编辑元素中的值</p> <h4>5. tabindex</h4> <p><strong>主要功能:</strong>规定当使用 "tab" 键进行导航时元素的顺序。</p> <blockquote> <p>以下元素支持tableindex属性:<code><a>, <area>, <button>, <input>, <object>, <select> 以及 <textarea></code>。</p> </blockquote> <pre><code><!DOCTYPE HTML> <html> <body> <a href="http://layjoy.xyz/" tabindex="2">xyz</a><br /> <a href="http://layjoy.space/" tabindex="1">space</a><br /> <a href="http://layjoy.com/" tabindex="3">com</a> </body> </html> </code></pre> <h4>6.draggable</h4> <p><strong>主要功能:</strong>规定元素是否可拖动。</p> <blockquote> <p>提示:链接和图像默认是可拖动的。</p> </blockquote> <p><code><p draggable="true">This is a draggable paragraph.</p></code><br> <strong>属性值:</strong></p> <table> <thead> <tr> <th style="text-align:center">值</th> <th style="text-align:center">描述</th> </tr> </thead> <tbody> <tr> <td style="text-align:center">true</td> <td style="text-align:center">规定元素是可拖动的。</td> </tr> <tr> <td style="text-align:center">false</td> <td style="text-align:center">规定元素是不可拖动的。</td> </tr> <tr> <td style="text-align:center">auto</td> <td style="text-align:center">使用浏览器的默认特性。</td> </tr> </tbody> </table> <p>原文链接:http://layjoy.space/2017/02/03/html5-html4/</p> </article> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1214335828717834240"></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">你可能感兴趣的:(Html5与Html4的区别)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1947039114129895424.htm" title="鬼谷子:人有四种,你是哪种?" target="_blank">鬼谷子:人有四种,你是哪种?</a> <span class="text-muted">永泉说鬼谷</span> <div>鬼谷子原文:粤若稽古,圣人之在天地间也,为众生之先。观阴阳之开阖以名命物,知存亡之门户,筹策万类之终始,达人心之理,见变化之朕焉,而守司其门户。译文:从古至今,生活在天地之间的圣人,就是要成为众人的先导。通过观察阴阳开阖的变化来对事物作出判断,并进一步了解事物生存和死亡的关键。策划事情发展的开头与结尾,通晓其中的人性的之理,通过事物发展过程中的微小变化,而守住事物发展的关键要害。(1)如何做圣人人</div> </li> <li><a href="/article/1947038984450404352.htm" title="写给未来的爱人-期望与失望 2021-08-25" target="_blank">写给未来的爱人-期望与失望 2021-08-25</a> <span class="text-muted">豆豆_d009</span> <div>嗨亲爱的:见字如面,又是想你的一天。想你会上瘾,包含的写文章也会上瘾了,慢慢养成这种迟来的记事习惯真好。这个月到8月底了,我来北京也快一年了,这一年像重获新生一般,迟来的自由和迟来的洒脱,昨天晚上冷风夜色,清澈的夜晚提醒我又到了一年结束时,又要年长一岁了。昨晚做了噩梦,梦到视频里有人跳楼,然后尸体很贴心的打了大大的马赛克。都说梦是反的,但是今天早上申请的老师打来电话,马来西亚公立不好申请上了,让改</div> </li> <li><a href="/article/1947037719892914176.htm" title="Spring AI 概述与功能简介" target="_blank">Spring AI 概述与功能简介</a> <span class="text-muted">drebander</span> <a class="tag" taget="_blank" href="/search/AI/1.htm">AI</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B/1.htm">编程</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</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/java/1.htm">java</a> <div>SpringAI是一个由Spring团队开发的开源框架,旨在为人工智能(AI)和机器学习(ML)提供一个成熟且高效的开发平台。它将Spring生态系统的设计理念应用于AI开发,尤其强调模块化、可移植性以及简洁的集成。SpringAI提供了丰富的功能,涵盖从AI模型的调用到与数据库的集成等多个方面,帮助开发者构建和管理AI驱动的应用程序。1.SpringAI背景SpringAI的背景源于Spring</div> </li> <li><a href="/article/1947037719360237568.htm" title="python包管理神器【uv】详解" target="_blank">python包管理神器【uv】详解</a> <span class="text-muted">若叶.</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/uv/1.htm">uv</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/pip/1.htm">pip</a><a class="tag" taget="_blank" href="/search/virtualenv/1.htm">virtualenv</a> <div>目录1uv简介与安装1.1uv作用1.2安装方式一:github/release页下载。方式二:命令行安装(win)方式三:pypi安装确认安装成功1.3卸载2命令帮助3uv管理python版本3.1`uvpython--参数`3.2`uvpythonlist`3.3`uvpythoninstall`4uv运行单个脚本4.1`uvrun.py文件`4.2`uvinit--script`4.3`uv</div> </li> <li><a href="/article/1947037467286761472.htm" title="Spring AI从入门到精通:构建智能Spring应用的全面指南" target="_blank">Spring AI从入门到精通:构建智能Spring应用的全面指南</a> <span class="text-muted">java干货仓库</span> <a class="tag" taget="_blank" href="/search/Spring/1.htm">Spring</a><a class="tag" taget="_blank" href="/search/%E5%85%AB%E8%82%A1%E6%96%87%E6%B1%87%E6%80%BB/1.htm">八股文汇总</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%A8%A1%E5%9E%8B/1.htm">大模型</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</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/java/1.htm">java</a> <div>随着人工智能技术的快速发展,将大语言模型(LLM)与企业应用集成已成为趋势。SpringAI作为Spring官方推出的AI集成框架,为开发者提供了便捷、标准化的方式来构建智能应用。本文将从基础概念到高级应用,全面介绍SpringAI的核心功能与实践技巧。一、SpringAI概述1.1什么是SpringAI?SpringAI是VMware于2023年推出的开源框架,旨在简化大语言模型(LLM)与Sp</div> </li> <li><a href="/article/1947037213787222016.htm" title="大前端开发者如何应对 AI 浪潮:技能提升与职业发展规划" target="_blank">大前端开发者如何应对 AI 浪潮:技能提升与职业发展规划</a> <span class="text-muted">欧阳天羲</span> <a class="tag" taget="_blank" href="/search/%E5%A4%A7%E5%89%8D%E7%AB%AF%E4%B8%8E/1.htm">大前端与</a><a class="tag" taget="_blank" href="/search/AI/1.htm">AI</a><a class="tag" taget="_blank" href="/search/%E7%9A%84%E6%B7%B1%E5%BA%A6%E8%9E%8D%E5%90%88/1.htm">的深度融合</a><a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/AI/1.htm">AI</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E5%89%8D%E7%AB%AF%E8%A1%8C%E4%B8%9A%E5%BA%94%E7%94%A8%E4%B8%8E%E8%B6%8B%E5%8A%BF%E7%AF%87/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%89%8D%E7%AB%AF/1.htm">前端</a> <div>AI技术的爆发正深刻重塑大前端领域的技术栈与职业边界——从代码生成到智能交互,从自动化测试到自主化应用,AI不再是“可选技能”,而是“生存必备”。对于前端开发者而言,这既是挑战(传统技能贬值加速),更是机遇(新职业赛道涌现)。本文将系统梳理AI时代前端开发者的技能升级路线图,解析三大核心职业方向的能力要求,并提供可落地的学习路径与实践方案,帮助开发者在技术变革中实现竞争力跃迁。一、AI时代对大前端</div> </li> <li><a href="/article/1947037087387676672.htm" title="RabitQ 量化:既省内存又提性能" target="_blank">RabitQ 量化:既省内存又提性能</a> <span class="text-muted">大禹智库</span> <a class="tag" taget="_blank" href="/search/%E3%80%8A%E5%90%91%E9%87%8F%E6%95%B0%E6%8D%AE%E5%BA%93%E6%8C%87%E5%8D%97%E3%80%8B/1.htm">《向量数据库指南》</a><a class="tag" taget="_blank" href="/search/%E3%80%8A%E5%AE%9E%E6%88%98AI%E6%99%BA%E8%83%BD%E4%BD%93%E3%80%8B/1.htm">《实战AI智能体》</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/AI%E8%87%AA%E5%8A%A8%E5%8C%96/1.htm">AI自动化</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E7%A6%B9%E6%99%BA%E5%BA%93/1.htm">大禹智库</a><a class="tag" taget="_blank" href="/search/AI%E6%99%BA%E8%83%BD%E4%BD%93/1.htm">AI智能体</a><a class="tag" taget="_blank" href="/search/%E5%90%91%E9%87%8F%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">向量数据库</a> <div>突破高维向量内存瓶颈:MlivusCloudRaBitQ量化技术的工程实践与调优指南作为大禹智库高级研究员,拥有三十余年向量数据库与AI系统架构经验的我发现,在当今多模态AI落地的核心场景中,高维向量引发的内存资源消耗问题已成为制约系统规模化部署的“卡脖子”因素。特别是在大规模图像检索、个性化推荐系统和语义搜索引擎中,动辄数亿级别的向量数据需要实时处理,传统全精度索引方式会让内存资源消耗呈指数级增</div> </li> <li><a href="/article/1947035447460950016.htm" title="从服务实例的元数据中获取配置值 vs 从本地配置文件中获取配置值" target="_blank">从服务实例的元数据中获取配置值 vs 从本地配置文件中获取配置值</a> <span class="text-muted"></span> <div>在微服务架构中,配置管理是保障系统灵活运行的核心环节。开发者常面临选择困境:该从服务实例元数据(如instance.getMetadata().get("weight"))还是本地配置文件(如@Value("${weight}"))获取配置?两者有何本质区别?能否随意互换?本文将整合两种配置获取方式的核心特性,从技术原理到实际应用进行全面解析。一、两种配置获取方式的核心原理与示例1.服务实例元数据</div> </li> <li><a href="/article/1947034655702183936.htm" title="210119 一日三省" target="_blank">210119 一日三省</a> <span class="text-muted">康永盛</span> <div>210119一日三省1)今天要感恩的人与事:开市时段盯盘,下午溜娃、理发,感恩新一年,能迅速重新开启新生活主线。2)今天做的不够好的地方:日后,当尽量多听音频,代替视频与交流。3)今天学习或强化的学识、思维与灵感:成长的几个关键词:思考、选择、目标、行动、进取、挑战。成长是成熟而不圆滑,老练而不世故,进取而不鲁莽,果断而不愚蠢,平凡而不平庸,探索而不迷惑,孤独并不孤单,失败不会气馁等等。</div> </li> <li><a href="/article/1947034062698901504.htm" title="基于用户画像的商品推荐系统" target="_blank">基于用户画像的商品推荐系统</a> <span class="text-muted">Dush32</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/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E6%8E%A8%E8%8D%90%E7%AE%97%E6%B3%95/1.htm">推荐算法</a> <div>随着人工智能和大数据技术的进步,产品推荐系统成为了现代广告与电商平台中不可或缺的部分。通过深度挖掘用户的行为数据,能够为广告主提供精准的用户画像,从而更高效地推荐相关产品,提升购买转化率。本项目基于科大讯飞AI营销云大赛的赛题,目的是利用用户画像进行产品推荐,预测用户是否会购买相应商品。我们使用了机器学习的二分类模型,通过分析用户的性别、年龄、常驻地、机型等信息,来判断用户的付费行为。项目目标:本</div> </li> <li><a href="/article/1947034018721624064.htm" title="日更5:《财务自由之路》:你对金钱的信仰才能将你引向财务自由。" target="_blank">日更5:《财务自由之路》:你对金钱的信仰才能将你引向财务自由。</a> <span class="text-muted">JIN1_Try</span> <div>摘录:身体大多数行为和变化都是自发进行的,我们根本意识不到。就好像我们也根本不会去考虑何时、如何吸气或呼气一样,深深根植在内心的信念会控制我们的潜意识。你思考过这是否也适用于你与金钱打交道时的情况吗?思考:你对金钱的信仰是什么?1:金钱给人力量,金钱能够链接美好的事物。2:富有的人能够更加健康。摘录2:“这些年,我一直保持78千克的体重,健康有活力。现在的我,理解不了怎么会有人不跑步。跑步使人充满</div> </li> <li><a href="/article/1947033808339529728.htm" title="从 C# 转 Python 第三天:文件操作、异常处理与错误日志实践" target="_blank">从 C# 转 Python 第三天:文件操作、异常处理与错误日志实践</a> <span class="text-muted">AI、少年郎</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a><a class="tag" taget="_blank" href="/search/%E6%96%87%E4%BB%B6%E6%93%8D%E4%BD%9C/1.htm">文件操作</a><a class="tag" taget="_blank" href="/search/%E5%BC%82%E5%B8%B8%E5%A4%84%E7%90%86/1.htm">异常处理</a> <div>在软件开发的广阔领域中,Python和C#作为两种备受瞩目的编程语言,各自凭借独特的特性和强大的功能,在不同的应用场景中展现出卓越的性能。对于开发者而言,深入理解并熟练掌握这两门语言的核心技能,如文件操作与异常处理,不仅是提升个人编程能力的关键,更是在复杂多变的项目开发中应对各种挑战、确保程序稳定运行的必备条件。在日常的编程工作中,文件操作是实现数据持久化存储、读取配置信息以及处理各种数据文件的基</div> </li> <li><a href="/article/1947033809543294976.htm" title="MC0463四大名著-水浒签到" target="_blank">MC0463四大名著-水浒签到</a> <span class="text-muted">qystca</span> <a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a> <div>码蹄集OJ-四大名著-水浒签到一、题目背景本问题以《水浒传》为故事经纬,讲述史进对数列数字奥秘的探索。小码妹向其讲解特殊数列求和规则,我们需依据规则,对给定长度n的数列,按奇偶分组方式计算奇数组和与偶数组和的运算结果(奇数组求和、偶数组作差,交替进行),完成这场时空探险中的数字挑战。二、问题规则(一)分组方式现有长度为n的数列a1,a2,⋯,an,分组规则如下:若n为偶数,将数列分成2n组,依次为</div> </li> <li><a href="/article/1947033508958498816.htm" title="要写……就不能只写……" target="_blank">要写……就不能只写……</a> <span class="text-muted">鹿缘</span> <div>要写夜,就不能只写夜。要写月明,写星稀,写北斗横直河汉纵横。要写梧桐缺处明、空庭风易入。写望钟声客船,写叹抱影无眠,写床前一缕月光的悲凉与凄切。写自问归期未有期,空把思念相寄,写万家灯火,却照不清来时的路,何夜无月、何夜无风,悄然便把离人浸透,只等一梦到白昼。</div> </li> <li><a href="/article/1947033252137070592.htm" title="行情解读与机构论市" target="_blank">行情解读与机构论市</a> <span class="text-muted">鸿运_97d7</span> <div>隔夜外盘欧美股市上涨,A50涨0.14%。外盘比我们想象要强,而A股比我们想象要弱。周四,A股三大指数开盘涨跌各异,早盘受“三桶油”冲高提振,沪指于盘初冲高,不过随后便出现回落并震荡翻绿,创业板指则小幅高开呈现窄幅横盘的走势;午后沪指、深成指相继翻红,三大指数集体收涨,其中沪指终结四连跌。沪指涨0.65%,报3261.25点,深成指涨0.62%,报11651.83点,创业板指涨0.5%,报2383</div> </li> <li><a href="/article/1947032618906218496.htm" title="rollup学习--02.常用插件学习" target="_blank">rollup学习--02.常用插件学习</a> <span class="text-muted">小q</span> <div>这篇笔记总结rollup打包常用的插件常用插件我们在使用插件时可以在plugin汇总中查找:传送门和传送门,另外一些没列举的需要大家自行的去查阅啦,下面我聚几个常用的plugin。node模块的引入rollup因为是及与es规范的,所以在引入node模块时需要对应的插件。这里需要安装@rollup/plugin-node-resolve和@rollup/plugin-commonjs两个插件。ya</div> </li> <li><a href="/article/1947031601904939008.htm" title="《给教师的建议》读书随笔" target="_blank">《给教师的建议》读书随笔</a> <span class="text-muted">依牧_de80</span> <div>教师应该相信纯洁无暇的学生,这种信念是我们每个教育工作者都应该具备的。“没有爱就没有教育”,爱学生是教师最高的职业道德。教师要相信学生,要热爱学生,与学生建立互相的理解和信任,要特别注意培养学生的精神生活。要重视学生的个性发展。重视学生的和谐全面发展!</div> </li> <li><a href="/article/1947031537098747904.htm" title="前端面试专栏-工程化:27.工程化实践(CI/CD、代码规范)" target="_blank">前端面试专栏-工程化:27.工程化实践(CI/CD、代码规范)</a> <span class="text-muted">爱分享的程序员</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E9%9D%A2%E8%AF%95%E9%80%9A%E5%85%B3%E6%8C%87%E5%8D%97/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/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/ci%2Fcd/1.htm">ci/cd</a> <div>欢迎来到前端面试通关指南专栏!从js精讲到框架到实战,渐进系统化学习,坚持解锁新技能,祝你轻松拿下心仪offer。前端面试通关指南专栏主页前端面试专栏规划详情项目实战与工程化模块-工程化实践(CI/CD、代码规范)在团队协作的项目实战中,工程化实践是保障开发效率与代码质量的核心支柱。当项目规模从几人协作扩展到数十人团队时,单纯依赖人工沟通和经验规范会导致效率低下、bug频发。本文聚焦工程化的两大核</div> </li> <li><a href="/article/1947031538021494784.htm" title="前端面试专栏-工程化:28.团队协作与版本控制(Git)" target="_blank">前端面试专栏-工程化:28.团队协作与版本控制(Git)</a> <span class="text-muted">爱分享的程序员</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E9%9D%A2%E8%AF%95%E9%80%9A%E5%85%B3%E6%8C%87%E5%8D%97/1.htm">前端面试通关指南</a><a class="tag" taget="_blank" href="/search/node.js/1.htm">node.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/javascript/1.htm">javascript</a> <div>欢迎来到前端面试通关指南专栏!从js精讲到框架到实战,渐进系统化学习,坚持解锁新技能,祝你轻松拿下心仪offer。前端面试通关指南专栏主页前端面试专栏规划详情项目实战与工程化模块-团队协作与版本控制(Git)在多人协作的项目中,代码的版本管理是保障开发效率与代码质量的核心环节。Git作为目前最流行的分布式版本控制系统,不仅能追踪代码变更历史,更能通过分支策略、协作流程规范团队工作方式。本文从实战角</div> </li> <li><a href="/article/1947031410774700032.htm" title="Node.js特训专栏-实战进阶:16. RBAC权限模型设计" target="_blank">Node.js特训专栏-实战进阶:16. RBAC权限模型设计</a> <span class="text-muted">爱分享的程序员</span> <a class="tag" taget="_blank" href="/search/Node.js/1.htm">Node.js</a><a class="tag" taget="_blank" href="/search/node.js/1.htm">node.js</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%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>欢迎来到Node.js实战专栏!在这里,每一行代码都是解锁高性能应用的钥匙,让我们一起开启Node.js的奇妙开发之旅!Node.js特训专栏主页专栏内容规划详情我将从RBAC权限模型的基础概念、核心组件讲起,详细阐述其设计原则、数据库模型设计,还会结合代码示例展示在实际开发中的实现方式,以及探讨模型的扩展与优化。RBAC权限模型设计:从理论到实战的完整方案在现代应用系统中,权限管理是保障数据安全</div> </li> <li><a href="/article/1947031032784023552.htm" title="前端开发好用的AI工具介绍" target="_blank">前端开发好用的AI工具介绍</a> <span class="text-muted">爱分享的程序员</span> <a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BDAI%E7%9B%B8%E5%85%B3/1.htm">人工智能AI相关</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a> <div>以下是前端开发中提升效率的AI工具推荐,涵盖代码生成、UI设计、调试优化等场景:一、代码生成与辅助工具工具名称特点适用场景GitHubCopilot基于OpenAI,智能代码补全(支持JS/TS/React/Vue)快速生成代码片段、函数逻辑Codeium免费开源,多语言支持,IDE插件丰富(VSCode/WebStorm)代码补全、注释生成AmazonCodeWhispererAWS生态集成,支</div> </li> <li><a href="/article/1947030906510307328.htm" title="python并发执行_Python的并发并行[0] -> 基本概念" target="_blank">python并发执行_Python的并发并行[0] -> 基本概念</a> <span class="text-muted">weixin_39940253</span> <a class="tag" taget="_blank" href="/search/python%E5%B9%B6%E5%8F%91%E6%89%A7%E8%A1%8C/1.htm">python并发执行</a> <div>基本概念/BasicConcept快速跳转0简介与动机/WhyMulti-Thread/Multi-Process/Coroutine在多线程(multithreaded,MT)编程出现之前,计算机程序的执行是由单个步骤序列组成的,该序列在主机的CPU中按照同步顺序执行。即无论任务多少,是否包含子任务,都要按照顺序方式进行。然而,假定子任务之间相互独立,没有因果关系,若能使这些独立的任务同时运行,</div> </li> <li><a href="/article/1947030275150114816.htm" title="移除 GIL,可显著提升 Python 多线程性能么?" target="_blank">移除 GIL,可显著提升 Python 多线程性能么?</a> <span class="text-muted">AIGC开发者</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/1024%E7%A8%8B%E5%BA%8F%E5%91%98%E8%8A%82/1.htm">1024程序员节</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>近日,一位名叫SamGross的开发者提出了一个对全局解释器锁(GIL)进行重大修改的设想。其目标在于移除CPython中的GIL,以使得多线程能够并行执行Python代码。目前,该项目已经引起了Python核心开发团队的关注。我一直在对CPython进行修改,使其能够在没有全局解释器锁的情况下运行。我想与大家分享一个可以在没有GIL的情况下运行的概念验证。这个概念验证涉及到对CPython内部的</div> </li> <li><a href="/article/1947030073529921536.htm" title="日更第一百八十八天" target="_blank">日更第一百八十八天</a> <span class="text-muted">清幽励志文苑</span> <div>图片发自App日子不知觉的流逝着,生活在闹心与和解中过着,每日闲暇之余总是会抽出点时间来上看看。涂鸦几笔,记录光阴,留下足迹,最初也许是为日更而更,但后来就已成为习惯,没有目的,只是想写,想发表下字符。再这里几乎不怎么和文友们互动,只是随心而看,每一篇点赞过得文章都是用心阅读厚的赞赏。也很是感谢简友们的关注品读赏阅,你们的每一次赞赏都是对清幽的鼓励,感谢一路有你们同行,晚安,好梦,简友们!</div> </li> <li><a href="/article/1947029770957025280.htm" title="Windows平台下的Git版本控制实践:msysGit安装与使用" target="_blank">Windows平台下的Git版本控制实践:msysGit安装与使用</a> <span class="text-muted"></span> <div>本文还有配套的精品资源,点击获取简介:msysGit是为Windows系统打造的Git版本控制系统,它允许用户在本地环境中方便地使用Git进行源代码管理和版本控制。Git是一个分布式版本控制系统,以其快速、高效和灵活性著称。msysGit通过模拟Unix-like环境来兼容Git命令,并提供图形界面工具和与Windows集成的特性,极大地提升了Windows用户的操作体验。本文将详细介绍msysG</div> </li> <li><a href="/article/1947029139642970112.htm" title="MTK Camera HAL 与 FeaturePipe 架构解析:从硬件抽象到功能管线的工程落地路径" target="_blank">MTK Camera HAL 与 FeaturePipe 架构解析:从硬件抽象到功能管线的工程落地路径</a> <span class="text-muted"></span> <div>MTKCameraHAL与FeaturePipe架构解析:从硬件抽象到功能管线的工程落地路径关键词MTKCameraHAL、FeaturePipe架构、联发科影像系统、CAM-HAL3、PipelineModel、流控制管理、Node架构、Buffer管理、AndroidCameraFramework摘要MTK的Camera系统在Android平台下采用高度模块化的HAL与FeaturePipe架</div> </li> <li><a href="/article/1947029050321072128.htm" title="听课《冯唐成事法》" target="_blank">听课《冯唐成事法》</a> <span class="text-muted">爱的磁铁石</span> <div>革命与生活两不误的方法:1,有所逼,逼自己12点以后不谈重要的问题。2,有所专,专心,做什么像,工作好好工作,看书就专心看会书。3,有所规,根据自己的工作和生活倾向,让周围人知道,自己也要做到。4,有所贪,比如做对别人有益的事要贪,或者把自己的爱好变成钱,也是一种贪。</div> </li> <li><a href="/article/1947028383506427904.htm" title="JAVA面试宝典 -《API设计:RESTful 与 GraphQL 对比实践》" target="_blank">JAVA面试宝典 -《API设计:RESTful 与 GraphQL 对比实践》</a> <span class="text-muted">没有bug.的程序员</span> <a class="tag" taget="_blank" href="/search/JAVA%E9%9D%A2%E8%AF%95%E5%AE%9D%E5%85%B8/1.htm">JAVA面试宝典</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/restful/1.htm">restful</a> <div>API设计:RESTful与GraphQL对比实践在微服务架构中,API设计如同城市交通网络规划——选择RESTful还是GraphQL,决定了数据流的效率与灵活性。本文通过实战代码与架构对比,揭秘两种风格的适用场景与融合方案。引言:API设计的两大流派之争为什么越来越多团队关注GraphQL?数据需求碎片化:移动端/多终端需要按需获取数据接口迭代成本:REST每次需求变更需发布新版本前后端协作效</div> </li> <li><a href="/article/1947028162818928640.htm" title="我得到的远远超出我付出的|感恩记录--感恩练习第七轮-2" target="_blank">我得到的远远超出我付出的|感恩记录--感恩练习第七轮-2</a> <span class="text-muted">艳平思语</span> <div>我得到的远远超出我付出的|感恩记录--魔力练习第七轮-22022.11.2数算恩福1、感恩这个美丽的清晨,第一想到就是感恩,感恩我醒来了,我还有机会活着,体会好好地活着,体会好好地爱人和享受爱的美好;2、感恩今天的早期第一念:自重、自爱,唯有自重自爱者,人才会爱之。练习自己爱自己,不寄望与别人。3、感恩家人,在这个特殊的时期,跟家人在一起,体会到跟家人朝夕相处中更容易看见自己、看见关系中需要修炼的</div> </li> <li><a href="/article/1947027780222906368.htm" title="人一旦开窍后,会产生哪些改变?" target="_blank">人一旦开窍后,会产生哪些改变?</a> <span class="text-muted">如烟精进</span> <div>这是在知乎上看到的一篇文章,与自己的经历有同感,就像描述自己的心里活动一样,特拿来分享:1,可以找到大量事情的共通之处,做菜,泡茶,装扮,讲话,书法……做得好的关键其实都一样。2,隐藏在记忆深处一些未解的问题,一下子通了。当时为什么ta说那样的话?ta为什么是那个表情?ta为什么那么做事?等等。因此一些悬而未决的事情可以快速做了了断,一些粘粘乎乎的关系迅速做了切割。3,蜕变时可能很不舒服,一边不舒</div> </li> <li><a href="/article/32.htm" title="对于规范和实现,你会混淆吗?" target="_blank">对于规范和实现,你会混淆吗?</a> <span class="text-muted">yangshangchuan</span> <a class="tag" taget="_blank" href="/search/HotSpot/1.htm">HotSpot</a> <div>昨晚和朋友聊天,喝了点咖啡,由于我经常喝茶,很长时间没喝咖啡了,所以失眠了,于是起床读JVM规范,读完后在朋友圈发了一条信息: JVM Run-Time Data Areas:The Java Virtual Machine defines various run-time data areas that are used during execution of a program. So</div> </li> <li><a href="/article/159.htm" title="android 网络" target="_blank">android 网络</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a> <div>android的网络编程和java的一样没什么好分析的都是一些死的照着写就可以了,所以记录下来  方便查找   ,  服务器使用的是TomCat   服务器代码;  servlet的使用需要在xml中注册 package servlet; import java.io.IOException; import java.util.Arr</div> </li> <li><a href="/article/286.htm" title="[读书笔记]读法拉第传" target="_blank">[读书笔记]读法拉第传</a> <span class="text-muted">comsci</span> <a class="tag" taget="_blank" href="/search/%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/1.htm">读书笔记</a> <div>       1831年的时候,一年可以赚到1000英镑的人..应该很少的...       要成为一个科学家,没有足够的资金支持,很多实验都无法完成       但是当钱赚够了以后....就不能够一直在商业和市场中徘徊......</div> </li> <li><a href="/article/413.htm" title="随机数的产生" target="_blank">随机数的产生</a> <span class="text-muted">沐刃青蛟</span> <a class="tag" taget="_blank" href="/search/%E9%9A%8F%E6%9C%BA%E6%95%B0/1.htm">随机数</a> <div>c++中阐述随机数的方法有两种:   一是产生假随机数(不管操作多少次,所产生的数都不会改变)          这类随机数是使用了默认的种子值产生的,所以每次都是一样的。   //默认种子 for (int i = 0; i < 5; i++) { cout<<</div> </li> <li><a href="/article/540.htm" title="PHP检测函数所在的文件名" target="_blank">PHP检测函数所在的文件名</a> <span class="text-muted">IT独行者</span> <a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a><a class="tag" taget="_blank" href="/search/%E5%87%BD%E6%95%B0/1.htm">函数</a> <div>很简单的功能,用到PHP中的反射机制,具体使用的是ReflectionFunction类,可以获取指定函数所在PHP脚本中的具体位置。 创建引用脚本。 代码:   [php]   view plain copy // Filename: functions.php    <?php&nbs</div> </li> <li><a href="/article/667.htm" title="银行各系统功能简介" target="_blank">银行各系统功能简介</a> <span class="text-muted">文强chu</span> <a class="tag" taget="_blank" href="/search/%E9%87%91%E8%9E%8D/1.htm">金融</a> <div>银行各系统功能简介   业务系统 核心业务系统 业务功能包括:总账管理、卡系统管理、客户信息管理、额度控管、存款、贷款、资金业务、国际结算、支付结算、对外接口等 清分清算系统 以清算日期为准,将账务类交易、非账务类交易的手续费、代理费、网络服务费等相关费用,按费用类型计算应收、应付金额,经过清算人员确认后上送核心系统完成结算的过程 国际结算系</div> </li> <li><a href="/article/794.htm" title="Python学习1(pip django 安装以及第一个project)" target="_blank">Python学习1(pip django 安装以及第一个project)</a> <span class="text-muted">小桔子</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/django/1.htm">django</a><a class="tag" taget="_blank" href="/search/pip/1.htm">pip</a> <div>    最近开始学习python,要安装个pip的工具。听说这个工具很强大,安装了它,在安装第三方工具的话so easy!然后也下载了,按照别人给的教程开始安装,奶奶的怎么也安装不上! 第一步:官方下载pip-1.5.6.tar.gz, https://pypi.python.org/pypi/pip easy! 第二部:解压这个压缩文件,会看到一个setup.p</div> </li> <li><a href="/article/921.htm" title="php 数组" target="_blank">php 数组</a> <span class="text-muted">aichenglong</span> <a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a><a class="tag" taget="_blank" href="/search/%E6%8E%92%E5%BA%8F/1.htm">排序</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E7%BB%84/1.htm">数组</a><a class="tag" taget="_blank" href="/search/%E5%BE%AA%E7%8E%AF/1.htm">循环</a><a class="tag" taget="_blank" href="/search/%E5%A4%9A%E7%BB%B4%E6%95%B0%E7%BB%84/1.htm">多维数组</a> <div>1 php中的创建数组 $product = array('tires','oil','spark');//array()实际上是语言结构而不  是函数 2 如果需要创建一个升序的排列的数字保存在一个数组中,可以使用range()函数来自动创建数组 $numbers=range(1,10)//1 2 3 4 5 6 7 8 9 10 $numbers=range(1,10,</div> </li> <li><a href="/article/1048.htm" title="安装python2.7" target="_blank">安装python2.7</a> <span class="text-muted">AILIKES</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>安装python2.7 1、下载可从 http://www.python.org/进行下载#wget https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgz 2、复制解压 #mkdir -p /opt/usr/python #cp  /opt/soft/Python-2</div> </li> <li><a href="/article/1175.htm" title="java异常的处理探讨" target="_blank">java异常的处理探讨</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/JAVA%E5%BC%82%E5%B8%B8/1.htm">JAVA异常</a> <div>//java异常  /* 1,了解java 中的异常处理机制,有三种操作 a,声明异常  b,抛出异常  c,捕获异常 2,学会使用try-catch-finally来处理异常 3,学会如何声明异常和抛出异常 4,学会创建自己的异常   */   //2,学会使用try-catch-finally来处理异常   </div> </li> <li><a href="/article/1302.htm" title="getElementsByName实例" target="_blank">getElementsByName实例</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/element/1.htm">element</a> <div>实例1: <!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/1999/x</div> </li> <li><a href="/article/1429.htm" title="探索JUnit4扩展:Runner" target="_blank">探索JUnit4扩展:Runner</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/%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95/1.htm">单元测试</a><a class="tag" taget="_blank" href="/search/JUnit/1.htm">JUnit</a> <div>        参加敏捷培训时,教练提到Junit4的Runner和Rule,于是特上网查一下,发现很多都讲的太理论,或者是举的例子实在是太牵强。多搜索了几下,搜索到两篇我觉得写的非常好的文章。         文章地址:http://www.blogjava.net/jiangshachina/archive/20</div> </li> <li><a href="/article/1556.htm" title="[MongoDB学习笔记二]MongoDB副本集" target="_blank">[MongoDB学习笔记二]MongoDB副本集</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/mongodb/1.htm">mongodb</a> <div>1. 副本集的特性   1)一台主服务器(Primary),多台从服务器(Secondary)   2)Primary挂了之后,从服务器自动完成从它们之中选举一台服务器作为主服务器,继续工作,这就解决了单点故障,因此,在这种情况下,MongoDB集群能够继续工作   3)挂了的主服务器恢复到集群中只能以Secondary服务器的角色加入进来   2</div> </li> <li><a href="/article/1683.htm" title="【Spark八十一】Hive in the spark assembly" target="_blank">【Spark八十一】Hive in the spark assembly</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/assembly/1.htm">assembly</a> <div>Spark SQL supports most commonly used features of HiveQL. However, different HiveQL statements are executed in different manners: 1. DDL statements (e.g. CREATE TABLE, DROP TABLE, etc.)</div> </li> <li><a href="/article/1810.htm" title="Nginx问题定位之监控进程异常退出" target="_blank">Nginx问题定位之监控进程异常退出</a> <span class="text-muted">ronin47</span> <div>nginx在运行过程中是否稳定,是否有异常退出过?这里总结几项平时会用到的小技巧。 1. 在error.log中查看是否有signal项,如果有,看看signal是多少。 比如,这是一个异常退出的情况: $grep signal error.log 2012/12/24 16:39:56 [alert] 13661#0: worker process 13666 exited on s</div> </li> <li><a href="/article/1937.htm" title="No grammar constraints (DTD or XML schema).....两种解决方法" target="_blank">No grammar constraints (DTD or XML schema).....两种解决方法</a> <span class="text-muted">byalias</span> <a class="tag" taget="_blank" href="/search/xml/1.htm">xml</a> <div>方法一:常用方法   关闭XML验证 工具栏:windows => preferences => xml => xml files => validation => Indicate when no grammar is specified:选择Ignore即可。 方法二:(个人推荐) 添加 内容如下 <?xml version=</div> </li> <li><a href="/article/2064.htm" title="Netty源码学习-DefaultChannelPipeline" target="_blank">Netty源码学习-DefaultChannelPipeline</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/netty/1.htm">netty</a> <div>package com.ljn.channel; /** * ChannelPipeline采用的是Intercepting Filter 模式 * 但由于用到两个双向链表和内部类,这个模式看起来不是那么明显,需要仔细查看调用过程才发现 * * 下面对ChannelPipeline作一个模拟,只模拟关键代码: */ public class Pipeline { </div> </li> <li><a href="/article/2191.htm" title="MYSQL数据库常用备份及恢复语句" target="_blank">MYSQL数据库常用备份及恢复语句</a> <span class="text-muted">chicony</span> <a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a> <div> 备份MySQL数据库的命令,可以加选不同的参数选项来实现不同格式的要求。 mysqldump -h主机 -u用户名 -p密码 数据库名 > 文件 备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。 mysqldump -–add-drop-table -uusername -ppassword databasename > ba</div> </li> <li><a href="/article/2318.htm" title="小白谈谈云计算--基于Google三大论文" target="_blank">小白谈谈云计算--基于Google三大论文</a> <span class="text-muted">CrazyMizzz</span> <a class="tag" taget="_blank" href="/search/Google/1.htm">Google</a><a class="tag" taget="_blank" href="/search/%E4%BA%91%E8%AE%A1%E7%AE%97/1.htm">云计算</a><a class="tag" taget="_blank" href="/search/GFS/1.htm">GFS</a> <div>    之前在没有接触到云计算之前,只是对云计算有一点点模糊的概念,觉得这是一个很高大上的东西,似乎离我们大一的还很远。后来有机会上了一节云计算的普及课程吧,并且在之前的一周里拜读了谷歌三大论文。不敢说理解,至少囫囵吞枣啃下了一大堆看不明白的理论。现在就简单聊聊我对于云计算的了解。     我先说说GFS   &n</div> </li> <li><a href="/article/2445.htm" title="hadoop 平衡空间设置方法" target="_blank">hadoop 平衡空间设置方法</a> <span class="text-muted">daizj</span> <a class="tag" taget="_blank" href="/search/hadoop/1.htm">hadoop</a><a class="tag" taget="_blank" href="/search/balancer/1.htm">balancer</a> <div>在hdfs-site.xml中增加设置balance的带宽,默认只有1M: <property>   <name>dfs.balance.bandwidthPerSec</name>     <value>10485760</value>     <description&g</div> </li> <li><a href="/article/2572.htm" title="Eclipse程序员要掌握的常用快捷键" target="_blank">Eclipse程序员要掌握的常用快捷键</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B/1.htm">编程</a> <div>  判断一个人的编程水平,就看他用键盘多,还是鼠标多。用键盘一是为了输入代码(当然了,也包括注释),再有就是熟练使用快捷键。 曾有人在豆瓣评 《卓有成效的程序员》:“人有多大懒,才有多大闲”。之前我整理了一个 程序员图书列表,目的也就是通过读书,让程序员变懒。  程序员作为特殊的群体,有的人可以这么懒,懒到事情都交给机器去做,而有的人又可以那么勤奋,每天都孜孜不倦得</div> </li> <li><a href="/article/2699.htm" title="Android学习之路" target="_blank">Android学习之路</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/Android%E5%AD%A6%E4%B9%A0/1.htm">Android学习</a> <div>转自:http://blog.csdn.net/ryantang03/article/details/6901459 以前有J2EE基础,接触JAVA也有两三年的时间了,上手Android并不困难,思维上稍微转变一下就可以很快适应。以前做的都是WEB项目,现今体验移动终端项目,让我越来越觉得移动互联网应用是未来的主宰。 下面说说我学习Android的感受,我学Android首先是看MARS的视</div> </li> <li><a href="/article/2826.htm" title="java 遍历Map的四种方法" target="_blank">java 遍历Map的四种方法</a> <span class="text-muted">eksliang</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/HashMap/1.htm">HashMap</a><a class="tag" taget="_blank" href="/search/java+%E9%81%8D%E5%8E%86Map%E7%9A%84%E5%9B%9B%E7%A7%8D%E6%96%B9%E6%B3%95/1.htm">java 遍历Map的四种方法</a> <div>转载请出自出处: http://eksliang.iteye.com/blog/2059996 package com.ickes; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; /** * 遍历Map的四种方式 </div> </li> <li><a href="/article/2953.htm" title="【精典】数据库相关相关" target="_blank">【精典】数据库相关相关</a> <span class="text-muted">gengzg</span> <a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a> <div>package C3P0; import java.sql.Connection; import java.sql.SQLException; import java.beans.PropertyVetoException; import com.mchange.v2.c3p0.ComboPooledDataSource; public class DBPool{ </div> </li> <li><a href="/article/3080.htm" title="自动补全" target="_blank">自动补全</a> <span class="text-muted">huyana_town</span> <a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%8A%A8%E8%A1%A5%E5%85%A8/1.htm">自动补全</a> <div><!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/1999/xhtml&quo</div> </li> <li><a href="/article/3207.htm" title="jquery在线预览PDF文件,打开PDF文件" target="_blank">jquery在线预览PDF文件,打开PDF文件</a> <span class="text-muted">天梯梦</span> <a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a> <div>最主要的是使用到了一个jquery的插件jquery.media.js,使用这个插件就很容易实现了。   核心代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.</div> </li> <li><a href="/article/3334.htm" title="ViewPager刷新单个页面的方法" target="_blank">ViewPager刷新单个页面的方法</a> <span class="text-muted">lovelease</span> <a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/viewpager/1.htm">viewpager</a><a class="tag" taget="_blank" href="/search/tag/1.htm">tag</a><a class="tag" taget="_blank" href="/search/%E5%88%B7%E6%96%B0/1.htm">刷新</a> <div>  使用ViewPager做滑动切换图片的效果时,如果图片是从网络下载的,那么再子线程中下载完图片时我们会使用handler通知UI线程,然后UI线程就可以调用mViewPager.getAdapter().notifyDataSetChanged()进行页面的刷新,但是viewpager不同于listview,你会发现单纯的调用notifyDataSetChanged()并不能刷新页面</div> </li> <li><a href="/article/3461.htm" title="利用按位取反(~)从复合枚举值里清除枚举值" target="_blank">利用按位取反(~)从复合枚举值里清除枚举值</a> <span class="text-muted">草料场</span> <a class="tag" taget="_blank" href="/search/enum/1.htm">enum</a> <div>以 C# 中的 System.Drawing.FontStyle 为例。   如果需要同时有多种效果, 如:“粗体”和“下划线”的效果,可以用按位或(|) FontStyle style = FontStyle.Bold | FontStyle.Underline;   如果需要去除 style 里的某一种效果, </div> </li> <li><a href="/article/3588.htm" title="Linux系统新手学习的11点建议" target="_blank">Linux系统新手学习的11点建议</a> <span class="text-muted">刘星宇</span> <a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B/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/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E8%84%9A%E6%9C%AC/1.htm">脚本</a> <div>  随着Linux应用的扩展许多朋友开始接触Linux,根据学习Windwos的经验往往有一些茫然的感觉:不知从何处开始学起。这里介绍学习Linux的一些建议。   一、从基础开始:常常有些朋友在Linux论坛问一些问题,不过,其中大多数的问题都是很基础的。例如:为什么我使用一个命令的时候,系统告诉我找不到该目录,我要如何限制使用者的权限等问题,这些问题其实都不是很难的,只要了解了 Linu</div> </li> <li><a href="/article/3715.htm" title="hibernate dao层应用之HibernateDaoSupport二次封装" target="_blank">hibernate dao层应用之HibernateDaoSupport二次封装</a> <span class="text-muted">wangzhezichuan</span> <a class="tag" taget="_blank" href="/search/DAO/1.htm">DAO</a><a class="tag" taget="_blank" href="/search/Hibernate/1.htm">Hibernate</a> <div>/** * <p>方法描述:sql语句查询 返回List<Class> </p> * <p>方法备注: Class 只能是自定义类 </p> * @param calzz * @param sql * @return * <p>创建人:王川</p> * <p>创建时间:Jul</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>