「Scrapy 爬虫框架」选择器(Selectors)详解

文章目录

  • 内容介绍
  • 如何使用选择器
  • CSS选择器扩展
  • 嵌套选择器
  • 选择元素属性
  • 带有正则表达式的选择器
  • extract() and extract_first()

内容介绍

开发环境为 Python3.6,Scrapy 版本 2.4.x ,爬虫项目全部内容索引目录

看懂Python爬虫框架,所见即所得一切皆有可能

本章带你学习基于 Python3Scrapy 爬虫框架 中数据爬取过程中从HTML源中如何提取数据。

提取数据的方式有很多种根据自己的习惯就好。

  • BeautifulSoup 是 Python程序员中一个非常流行的Web抓取库,基于HTML代码的结构构造Python对象,并相当好地处理不好的标记,但它缺点是速度慢。
  • lxml 是一个XML解析库(解析HTML),并非Python标准库。它使用基于 ElementTree
  • Scrapy 有自己的提取数据的机制被称为Selectors。

代码内容基于「Scrapy 爬虫框架」源码版本 2.4.0 ,更新内容会进行标记说明对应版本。

如何使用选择器

  • 1.构建选择器
# 在处理response对象可以直接使用selector定位属性获取数据
>>> response.selector.xpath('//span/text()').get()
'good'
  • 2.使用XPath和CSS查询方式
# response.xpath()方式
>>> response.xpath('//span/text()').get()
'good'

# response.css()方式
>>> response.css('span::text').get()
'good'

# 文本构造方式
>>> from scrapy.selector import Selector
>>> body = 'good'
>>> Selector(text=body).xpath('//span/text()').get()
'good'

# 基于TextResponse类的HtmlResponse处理response
>>> from scrapy.selector import Selector
>>> from scrapy.http import HtmlResponse
>>> response = HtmlResponse(url='http://example.com', body=body)
>>> Selector(response=response).xpath('//span/text()').get()
'good'
  • 3.使用选择器
    「Scrapy 爬虫框架」选择器(Selectors)详解_第1张图片
# 构造一个XPath,用于选择title标记中的文本
>>> response.xpath('//title/text()')
[<Selector xpath='//title/text()' data='Example website'>]

# 提取文本数据调用选择器 .get() 或 .getall()
>>> response.xpath('//title/text()').getall()
['Example website']
>>> response.xpath('//title/text()').get()
'Example website'
>>> response.css('title::text').get()
'Example website'
# .xpath()和.css()方法返回SelectorList实例列表
>>> response.css('img').xpath('@src').getall()
['image1_thumb.jpg',
 'image2_thumb.jpg',
 'image3_thumb.jpg',
 'image4_thumb.jpg',
 'image5_thumb.jpg']
# 提取第一个匹配的元素,使用 .get() 或者 .extract_first()
>>> response.xpath('//div[@id="images"]/a/text()').get()
'Name: My image 1 '
# 未抓取到对应数据元素
>>> response.xpath('//div[@id="not-exists"]/text()').get() is None
True

>>> response.xpath('//div[@id="not-exists"]/text()').get(default='not-found')
'not-found'
# 选择对应属性内容
>>> [img.attrib['src'] for img in response.css('img')]
['image1_thumb.jpg',
 'image2_thumb.jpg',
 'image3_thumb.jpg',
 'image4_thumb.jpg',
 'image5_thumb.jpg']
 
>>> response.css('img').attrib['src']
'image1_thumb.jpg'
# 对应选择的结果是唯一时
>>> response.css('base').attrib['href']
'http://example.com/'
# 构建图像url的几种方式
>>> response.xpath('//base/@href').get()
'http://example.com/'

>>> response.css('base::attr(href)').get()
'http://example.com/'

>>> response.css('base').attrib['href']
'http://example.com/'

>>> response.xpath('//a[contains(@href, "image")]/@href').getall()
['image1.html',
 'image2.html',
 'image3.html',
 'image4.html',
 'image5.html']

>>> response.css('a[href*=image]::attr(href)').getall()
['image1.html',
 'image2.html',
 'image3.html',
 'image4.html',
 'image5.html']

>>> response.xpath('//a[contains(@href, "image")]/img/@src').getall()
['image1_thumb.jpg',
 'image2_thumb.jpg',
 'image3_thumb.jpg',
 'image4_thumb.jpg',
 'image5_thumb.jpg']

>>> response.css('a[href*=image] img::attr(src)').getall()
['image1_thumb.jpg',
 'image2_thumb.jpg',
 'image3_thumb.jpg',
 'image4_thumb.jpg',
 'image5_thumb.jpg']

CSS选择器扩展

按照W3C标准,CSS选择器不支持选择文本节点或属性值。但在web抓取上下文中选择这些内容是非常重要的,因此scrapy(Parsel)实现非标准伪元素:

  1. 若要选择文本节点,使用 ::text
  2. 若要选择属性值,使用 ::attr(name) 属性的名称
# title::text 选择后代的子文本节点</span>
<span class="token operator">>></span><span class="token operator">></span> response<span class="token punctuation">.</span>css<span class="token punctuation">(</span><span class="token string">'title::text'</span><span class="token punctuation">)</span><span class="token punctuation">.</span>get<span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token string">'Example website'</span>
</code></pre> 
  <pre><code class="prism language-python"><span class="token comment"># *::text 选择当前选择器上下文的所有子代文本节点</span>
<span class="token operator">>></span><span class="token operator">></span> response<span class="token punctuation">.</span>css<span class="token punctuation">(</span><span class="token string">'#images *::text'</span><span class="token punctuation">)</span><span class="token punctuation">.</span>getall<span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token punctuation">[</span><span class="token string">'\n   '</span><span class="token punctuation">,</span>
 <span class="token string">'Name: My image 1 '</span><span class="token punctuation">,</span>
 <span class="token string">'\n   '</span><span class="token punctuation">,</span>
 <span class="token string">'Name: My image 2 '</span><span class="token punctuation">,</span>
 <span class="token string">'\n   '</span><span class="token punctuation">,</span>
 <span class="token string">'Name: My image 3 '</span><span class="token punctuation">,</span>
 <span class="token string">'\n   '</span><span class="token punctuation">,</span>
 <span class="token string">'Name: My image 4 '</span><span class="token punctuation">,</span>
 <span class="token string">'\n   '</span><span class="token punctuation">,</span>
 <span class="token string">'Name: My image 5 '</span><span class="token punctuation">,</span>
 <span class="token string">'\n  '</span><span class="token punctuation">]</span>
</code></pre> 
  <pre><code class="prism language-python"><span class="token comment"># foo::text 如果foo元素,但不包含文本(即文本为空)</span>
<span class="token operator">>></span><span class="token operator">></span> response<span class="token punctuation">.</span>css<span class="token punctuation">(</span><span class="token string">'img::text'</span><span class="token punctuation">)</span><span class="token punctuation">.</span>getall<span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token punctuation">[</span><span class="token punctuation">]</span>

<span class="token operator">>></span><span class="token operator">></span> response<span class="token punctuation">.</span>css<span class="token punctuation">(</span><span class="token string">'img::text'</span><span class="token punctuation">)</span><span class="token punctuation">.</span>get<span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token operator">>></span><span class="token operator">></span> response<span class="token punctuation">.</span>css<span class="token punctuation">(</span><span class="token string">'img::text'</span><span class="token punctuation">)</span><span class="token punctuation">.</span>get<span class="token punctuation">(</span>default<span class="token operator">=</span><span class="token string">'none'</span><span class="token punctuation">)</span>
<span class="token string">'none'</span>
</code></pre> 
  <pre><code class="prism language-python"><span class="token comment"># a::attr(href) 选择href子代链接的属性</span>
<span class="token operator">>></span><span class="token operator">></span> response<span class="token punctuation">.</span>css<span class="token punctuation">(</span><span class="token string">'a::attr(href)'</span><span class="token punctuation">)</span><span class="token punctuation">.</span>getall<span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token punctuation">[</span><span class="token string">'image1.html'</span><span class="token punctuation">,</span>
 <span class="token string">'image2.html'</span><span class="token punctuation">,</span>
 <span class="token string">'image3.html'</span><span class="token punctuation">,</span>
 <span class="token string">'image4.html'</span><span class="token punctuation">,</span>
 <span class="token string">'image5.html'</span><span class="token punctuation">]</span>
</code></pre> 
  <h1>嵌套选择器</h1> 
  <pre><code class="prism language-python"><span class="token comment"># 使用 (.xpath()或.css()) 返回相同类型的选择器列表</span>
<span class="token operator">>></span><span class="token operator">></span> links <span class="token operator">=</span> response<span class="token punctuation">.</span>xpath<span class="token punctuation">(</span><span class="token string">'//a[contains(@href, "image")]'</span><span class="token punctuation">)</span>
<span class="token operator">>></span><span class="token operator">></span> links<span class="token punctuation">.</span>getall<span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token punctuation">[</span><span class="token string">'<a href="image1.html">Name: My image 1 <br><img src="image1_thumb.jpg"></a>'</span><span class="token punctuation">,</span>
 <span class="token string">'<a href="image2.html">Name: My image 2 <br><img src="image2_thumb.jpg"></a>'</span><span class="token punctuation">,</span>
 <span class="token string">'<a href="image3.html">Name: My image 3 <br><img src="image3_thumb.jpg"></a>'</span><span class="token punctuation">,</span>
 <span class="token string">'<a href="image4.html">Name: My image 4 <br><img src="image4_thumb.jpg"></a>'</span><span class="token punctuation">,</span>
 <span class="token string">'<a href="image5.html">Name: My image 5 <br><img src="image5_thumb.jpg"></a>'</span><span class="token punctuation">]</span>
</code></pre> 
  <pre><code class="prism language-python"><span class="token operator">>></span><span class="token operator">></span> <span class="token keyword">for</span> index<span class="token punctuation">,</span> link <span class="token keyword">in</span> <span class="token builtin">enumerate</span><span class="token punctuation">(</span>links<span class="token punctuation">)</span><span class="token punctuation">:</span>
<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>     href_xpath <span class="token operator">=</span> link<span class="token punctuation">.</span>xpath<span class="token punctuation">(</span><span class="token string">'@href'</span><span class="token punctuation">)</span><span class="token punctuation">.</span>get<span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>     img_xpath <span class="token operator">=</span> link<span class="token punctuation">.</span>xpath<span class="token punctuation">(</span><span class="token string">'img/@src'</span><span class="token punctuation">)</span><span class="token punctuation">.</span>get<span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>     <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f'Link number </span><span class="token interpolation"><span class="token punctuation">{
       </span>index<span class="token punctuation">}</span></span><span class="token string"> points to url </span><span class="token interpolation"><span class="token punctuation">{
       </span>href_xpath<span class="token conversion-option punctuation">!r</span><span class="token punctuation">}</span></span><span class="token string"> and image </span><span class="token interpolation"><span class="token punctuation">{
       </span>img_xpath<span class="token conversion-option punctuation">!r</span><span class="token punctuation">}</span></span><span class="token string">'</span></span><span class="token punctuation">)</span>

Link number <span class="token number">0</span> points to url <span class="token string">'image1.html'</span> <span class="token keyword">and</span> image <span class="token string">'image1_thumb.jpg'</span>
Link number <span class="token number">1</span> points to url <span class="token string">'image2.html'</span> <span class="token keyword">and</span> image <span class="token string">'image2_thumb.jpg'</span>
Link number <span class="token number">2</span> points to url <span class="token string">'image3.html'</span> <span class="token keyword">and</span> image <span class="token string">'image3_thumb.jpg'</span>
Link number <span class="token number">3</span> points to url <span class="token string">'image4.html'</span> <span class="token keyword">and</span> image <span class="token string">'image4_thumb.jpg'</span>
Link number <span class="token number">4</span> points to url <span class="token string">'image5.html'</span> <span class="token keyword">and</span> image <span class="token string">'image5_thumb.jpg'</span>
</code></pre> 
  <h1>选择元素属性</h1> 
  <pre><code class="prism language-python"><span class="token comment"># XPath语法</span>
<span class="token operator">>></span><span class="token operator">></span> response<span class="token punctuation">.</span>xpath<span class="token punctuation">(</span><span class="token string">"//a/@href"</span><span class="token punctuation">)</span><span class="token punctuation">.</span>getall<span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token punctuation">[</span><span class="token string">'image1.html'</span><span class="token punctuation">,</span> <span class="token string">'image2.html'</span><span class="token punctuation">,</span> <span class="token string">'image3.html'</span><span class="token punctuation">,</span> <span class="token string">'image4.html'</span><span class="token punctuation">,</span> <span class="token string">'image5.html'</span><span class="token punctuation">]</span>
</code></pre> 
  <pre><code class="prism language-python"><span class="token comment"># CSS选择器的扩展 (::attr(...)) 语法</span>
<span class="token operator">>></span><span class="token operator">></span> response<span class="token punctuation">.</span>css<span class="token punctuation">(</span><span class="token string">'a::attr(href)'</span><span class="token punctuation">)</span><span class="token punctuation">.</span>getall<span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token punctuation">[</span><span class="token string">'image1.html'</span><span class="token punctuation">,</span> <span class="token string">'image2.html'</span><span class="token punctuation">,</span> <span class="token string">'image3.html'</span><span class="token punctuation">,</span> <span class="token string">'image4.html'</span><span class="token punctuation">,</span> <span class="token string">'image5.html'</span><span class="token punctuation">]</span>
</code></pre> 
  <pre><code class="prism language-python"><span class="token comment"># .attrib 语法</span>
<span class="token operator">>></span><span class="token operator">></span> <span class="token punctuation">[</span>a<span class="token punctuation">.</span>attrib<span class="token punctuation">[</span><span class="token string">'href'</span><span class="token punctuation">]</span> <span class="token keyword">for</span> a <span class="token keyword">in</span> response<span class="token punctuation">.</span>css<span class="token punctuation">(</span><span class="token string">'a'</span><span class="token punctuation">)</span><span class="token punctuation">]</span>
<span class="token punctuation">[</span><span class="token string">'image1.html'</span><span class="token punctuation">,</span> <span class="token string">'image2.html'</span><span class="token punctuation">,</span> <span class="token string">'image3.html'</span><span class="token punctuation">,</span> <span class="token string">'image4.html'</span><span class="token punctuation">,</span> <span class="token string">'image5.html'</span><span class="token punctuation">]</span>

<span class="token comment"># 字典方式</span>
<span class="token operator">>></span><span class="token operator">></span> response<span class="token punctuation">.</span>css<span class="token punctuation">(</span><span class="token string">'base'</span><span class="token punctuation">)</span><span class="token punctuation">.</span>attrib
<span class="token punctuation">{
     </span><span class="token string">'href'</span><span class="token punctuation">:</span> <span class="token string">'http://example.com/'</span><span class="token punctuation">}</span>
<span class="token operator">>></span><span class="token operator">></span> response<span class="token punctuation">.</span>css<span class="token punctuation">(</span><span class="token string">'base'</span><span class="token punctuation">)</span><span class="token punctuation">.</span>attrib<span class="token punctuation">[</span><span class="token string">'href'</span><span class="token punctuation">]</span>
<span class="token string">'http://example.com/'</span>

<span class="token comment"># 空结果</span>
<span class="token operator">>></span><span class="token operator">></span> response<span class="token punctuation">.</span>css<span class="token punctuation">(</span><span class="token string">'foo'</span><span class="token punctuation">)</span><span class="token punctuation">.</span>attrib
<span class="token punctuation">{
     </span><span class="token punctuation">}</span>
</code></pre> 
  <h1>带有正则表达式的选择器</h1> 
  <pre><code class="prism language-python"><span class="token comment"># Selector也有一个.re()使用正则表达式提取数据的方法。</span>
<span class="token comment"># 但与使用.xpath()或.css()方法,.re()返回字符串列表。</span>
<span class="token comment"># 因此不能构造嵌套的.re()。</span>
<span class="token operator">>></span><span class="token operator">></span> response<span class="token punctuation">.</span>xpath<span class="token punctuation">(</span><span class="token string">'//a[contains(@href, "image")]/text()'</span><span class="token punctuation">)</span><span class="token punctuation">.</span>re<span class="token punctuation">(</span><span class="token string">r'Name:\s*(.*)'</span><span class="token punctuation">)</span>
<span class="token punctuation">[</span><span class="token string">'My image 1'</span><span class="token punctuation">,</span>
 <span class="token string">'My image 2'</span><span class="token punctuation">,</span>
 <span class="token string">'My image 3'</span><span class="token punctuation">,</span>
 <span class="token string">'My image 4'</span><span class="token punctuation">,</span>
 <span class="token string">'My image 5'</span><span class="token punctuation">]</span>
</code></pre> 
  <pre><code class="prism language-python"><span class="token comment"># .get() .extract_first()) .re(),命名.re_first()。</span>
<span class="token comment"># 使用它仅提取第一个匹配字符串:</span>
<span class="token operator">>></span><span class="token operator">></span> response<span class="token punctuation">.</span>xpath<span class="token punctuation">(</span><span class="token string">'//a[contains(@href, "image")]/text()'</span><span class="token punctuation">)</span><span class="token punctuation">.</span>re_first<span class="token punctuation">(</span><span class="token string">r'Name:\s*(.*)'</span><span class="token punctuation">)</span>
<span class="token string">'My image 1'</span>
</code></pre> 
  <h1>extract() and extract_first()</h1> 
  <pre><code class="prism language-python"><span class="token comment"># SelectorList.get()** 与 **SelectorList.extract_first() 相同</span>
<span class="token operator">>></span><span class="token operator">></span> response<span class="token punctuation">.</span>css<span class="token punctuation">(</span><span class="token string">'a::attr(href)'</span><span class="token punctuation">)</span><span class="token punctuation">.</span>get<span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token string">'image1.html'</span>
<span class="token operator">>></span><span class="token operator">></span> response<span class="token punctuation">.</span>css<span class="token punctuation">(</span><span class="token string">'a::attr(href)'</span><span class="token punctuation">)</span><span class="token punctuation">.</span>extract_first<span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token string">'image1.html'</span>
</code></pre> 
  <pre><code class="prism language-python"><span class="token comment"># SelectorList.getall() 与  SelectorList.extract()  相同</span>
<span class="token operator">>></span><span class="token operator">></span> response<span class="token punctuation">.</span>css<span class="token punctuation">(</span><span class="token string">'a::attr(href)'</span><span class="token punctuation">)</span><span class="token punctuation">.</span>getall<span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token punctuation">[</span><span class="token string">'image1.html'</span><span class="token punctuation">,</span> <span class="token string">'image2.html'</span><span class="token punctuation">,</span> <span class="token string">'image3.html'</span><span class="token punctuation">,</span> <span class="token string">'image4.html'</span><span class="token punctuation">,</span> <span class="token string">'image5.html'</span><span class="token punctuation">]</span>
<span class="token operator">>></span><span class="token operator">></span> response<span class="token punctuation">.</span>css<span class="token punctuation">(</span><span class="token string">'a::attr(href)'</span><span class="token punctuation">)</span><span class="token punctuation">.</span>extract<span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token punctuation">[</span><span class="token string">'image1.html'</span><span class="token punctuation">,</span> <span class="token string">'image2.html'</span><span class="token punctuation">,</span> <span class="token string">'image3.html'</span><span class="token punctuation">,</span> <span class="token string">'image4.html'</span><span class="token punctuation">,</span> <span class="token string">'image5.html'</span><span class="token punctuation">]</span>
</code></pre> 
  <pre><code class="prism language-python"><span class="token comment"># Selector.get() 与 Selector.extract() 相同</span>
<span class="token operator">>></span><span class="token operator">></span> response<span class="token punctuation">.</span>css<span class="token punctuation">(</span><span class="token string">'a::attr(href)'</span><span class="token punctuation">)</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">.</span>get<span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token string">'image1.html'</span>
<span class="token operator">>></span><span class="token operator">></span> response<span class="token punctuation">.</span>css<span class="token punctuation">(</span><span class="token string">'a::attr(href)'</span><span class="token punctuation">)</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">.</span>extract<span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token string">'image1.html'</span>
</code></pre> 
  <pre><code class="prism language-python"><span class="token comment"># 列表方式操作 Selector.getall() </span>
<span class="token operator">>></span><span class="token operator">></span> response<span class="token punctuation">.</span>css<span class="token punctuation">(</span><span class="token string">'a::attr(href)'</span><span class="token punctuation">)</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">.</span>getall<span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token punctuation">[</span><span class="token string">'image1.html'</span><span class="token punctuation">]</span>
</code></pre> 
 </div> 
</div>
                            </div>
                        </div>
                    </div>
                    <!--PC和WAP自适应版-->
                    <div id="SOHUCS" sid="1444663948501626880"></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">你可能感兴趣的:(Python,爬虫基础和项目管理,python,scrapy,选择器,爬虫,源码)</h4>
        <div id="paradigm-article-related">
            <div class="recommend-post mb30">
                <ul class="widget-links">
                    <li><a href="/article/1892543883510870016.htm"
                           title="自适应键盘,自带隐藏键盘的输入框(UITextField)" target="_blank">自适应键盘,自带隐藏键盘的输入框(UITextField)</a>
                        <span class="text-muted">胖虎1</span>
<a class="tag" taget="_blank" href="/search/UI%E5%B0%8F%E7%BB%84%E4%BB%B6/1.htm">UI小组件</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%AE%9A%E4%B9%89%E8%BE%93%E5%85%A5%E6%A1%86/1.htm">自定义输入框</a><a class="tag" taget="_blank" href="/search/%E9%94%AE%E7%9B%98/1.htm">键盘</a><a class="tag" taget="_blank" href="/search/UITextField/1.htm">UITextField</a>
                        <div>引言在iOS开发中,输入框占据着举足轻重的地位。与安卓不同,iOS输入框经常面临键盘遮挡的问题,或者无法方便地取消键盘。为了解决这些问题,有许多针对iOS键盘管理的库,如IQKeyboardManager、TPKeyboardAvoiding和KeyboardManager等等。然而,一些库可能对整个项目的侵入性较大,可能会影响到其他功能。有时,我们可能不希望某些输入框被这些库管理,虽然它们通常也</div>
                    </li>
                    <li><a href="/article/1892543000987365376.htm"
                           title="基于数据挖掘的股票预测系统" target="_blank">基于数据挖掘的股票预测系统</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>1.背景介绍1.1股票市场预测的挑战股票市场以其波动性和不可预测性而闻名。无数因素,从全球经济趋势到个别公司公告,都会影响股票价格。这使得准确预测股票价格极具挑战性,即使对经验丰富的投资者和金融分析师也是如此。1.2数据挖掘的兴起近年来,数据挖掘技术的出现为股票预测提供了新的可能性。数据挖掘是从大型数据集中提取有意义的模式和洞察力的过程。通过利用先进的算法和计算能力,数据挖掘可以揭示隐藏在海量金融</div>
                    </li>
                    <li><a href="/article/1892542745315176448.htm"
                           title="GPT (Generative Pre-trained Transformer)" target="_blank">GPT (Generative Pre-trained Transformer)</a>
                        <span class="text-muted">彬彬侠</span>
<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/gpt/1.htm">gpt</a><a class="tag" taget="_blank" href="/search/transformer/1.htm">transformer</a><a class="tag" taget="_blank" href="/search/%E9%A2%84%E8%AE%AD%E7%BB%83/1.htm">预训练</a><a class="tag" taget="_blank" href="/search/NLP/1.htm">NLP</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>GPT(GenerativePre-trainedTransformer)是由OpenAI提出的一个基于Transformer架构的自回归语言模型。GPT模型通过大规模无监督预训练,使用大量的文本数据进行学习,然后再进行微调(fine-tuning)来适应具体的下游任务。GPT的设计目标是能够理解和生成自然语言文本,并且它以其出色的自然语言生成能力在多个领域取得了显著的成果。GPT的基本原理GPT</div>
                    </li>
                    <li><a href="/article/1892542618877882368.htm"
                           title="国产编辑器EverEdit - 独门暗器:自动监视剪贴板内容" target="_blank">国产编辑器EverEdit - 独门暗器:自动监视剪贴板内容</a>
                        <span class="text-muted">编辑器爱好者</span>
<a class="tag" taget="_blank" href="/search/%E5%A6%99%E7%94%A8%E7%BC%96%E8%BE%91%E5%99%A8/1.htm">妙用编辑器</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E8%BE%91%E5%99%A8/1.htm">编辑器</a><a class="tag" taget="_blank" href="/search/EverEdit/1.htm">EverEdit</a><a class="tag" taget="_blank" href="/search/EmEditor/1.htm">EmEditor</a><a class="tag" taget="_blank" href="/search/Notepad/1.htm">Notepad</a>
                        <div>1监视剪贴板1.1应用场景  如果需要对剪贴板的所有历史进行记录,并进行分析和回顾,则可以使用监视剪贴板功能,不仅在EverEdit中的复制会记录,在其他应用的复制也会记录。1.2使用方法  新建一个空文档(重要:防止扰乱正常文件),单击主菜单文档->监视剪贴板即可。该功能打开后,当前系统所有的复制内容,都会追加到用户指定的文档中。说明:监视剪贴板只会监控文本内容,图片、文档等非文本信息,不会追加</div>
                    </li>
                    <li><a href="/article/1892541989010862080.htm"
                           title="基于Linux平台的多实例RTSP|RTMP直播播放器深度解析与技术实现" target="_blank">基于Linux平台的多实例RTSP|RTMP直播播放器深度解析与技术实现</a>
                        <span class="text-muted">音视频牛哥</span>
<a class="tag" taget="_blank" href="/search/RTSP%E6%92%AD%E6%94%BE%E5%99%A8/1.htm">RTSP播放器</a><a class="tag" taget="_blank" href="/search/RTMP%E6%92%AD%E6%94%BE%E5%99%A8/1.htm">RTMP播放器</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E7%89%9B%E7%9B%B4%E6%92%ADSDK/1.htm">大牛直播SDK</a><a class="tag" taget="_blank" href="/search/%E9%9F%B3%E8%A7%86%E9%A2%91/1.htm">音视频</a><a class="tag" taget="_blank" href="/search/%E5%AE%9E%E6%97%B6%E9%9F%B3%E8%A7%86%E9%A2%91/1.htm">实时音视频</a><a class="tag" taget="_blank" href="/search/%E8%A7%86%E9%A2%91%E7%BC%96%E8%A7%A3%E7%A0%81/1.htm">视频编解码</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/rtsp%E6%92%AD%E6%94%BE%E5%99%A8/1.htm">rtsp播放器</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/rtmp%E6%92%AD%E6%94%BE%E5%99%A8/1.htm">rtmp播放器</a><a class="tag" taget="_blank" href="/search/linux%E5%9B%BD%E4%BA%A7rtmp%E6%92%AD%E6%94%BE%E5%99%A8/1.htm">linux国产rtmp播放器</a><a class="tag" taget="_blank" href="/search/linux%E5%9B%BD%E4%BA%A7rtsp%E6%92%AD%E6%94%BE%E5%99%A8/1.htm">linux国产rtsp播放器</a>
                        <div>一、引言在Linux平台上实现一个高性能、高并发的多实例播放器,是许多流媒体应用的核心需求。本文将结合大牛直播SDK的Linux平台RTSP/RTMP播放器功能,深入解析其实现原理、关键技术点以及优化策略。通过对代码的详细分析和实际应用的结合,帮助开发者更好地理解和应用该技术。二、项目概述本文基于以下代码实现了一个多实例播放器:multi_player_demo.cpp:主程序,负责初始化SDK、</div>
                    </li>
                    <li><a href="/article/1892540980872146944.htm"
                           title="深入解析 C++ STL中的 std::map 容器" target="_blank">深入解析 C++ STL中的 std::map 容器</a>
                        <span class="text-muted">金外飞176</span>
<a class="tag" taget="_blank" href="/search/C%2B%2B/1.htm">C++</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/c%2B%2B/1.htm">c++</a>
                        <div>深入解析C++中的std::map容器在C++标准模板库(STL)中,std::map是一种非常强大且常用的关联式容器。它通过键值对(key-value)的方式存储数据,并且基于红黑树实现,能够高效地进行插入、删除和查找操作。本文将通过一个实际的项目代码,深入探讨std::map的各种特性,包括构造、插入、删除、查找、排序以及与其他容器的交互。1.std::map的基本概念std::map是一个关</div>
                    </li>
                    <li><a href="/article/1892540599857377280.htm"
                           title="路由导航守卫" target="_blank">路由导航守卫</a>
                        <span class="text-muted">治金的blog</span>
<a class="tag" taget="_blank" href="/search/Vue3%E5%AD%A6%E4%B9%A0/1.htm">Vue3学习</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><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>路由导航守卫(NavigationGuards)是VueRouter提供的功能,用于控制用户在应用中的导航行为。简单来说,它们允许你在用户访问不同路由时执行一些代码,比如检查用户是否登录、加载数据或阻止导航等。比喻:可以将其想象成机场的安检。安检元在你登机前会检查你的证件和行李,确保一切符合要求,然后才允许你进入登机口。路由导航守卫的主要类型1.全局守卫:(全局守卫就像博物馆的总管理员,负责在你进</div>
                    </li>
                    <li><a href="/article/1892540094556991488.htm"
                           title="Java 与设计模式(15):模板方法模式" target="_blank">Java 与设计模式(15):模板方法模式</a>
                        <span class="text-muted">暗星涌动</span>
<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/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a><a class="tag" taget="_blank" href="/search/%E6%A8%A1%E6%9D%BF%E6%96%B9%E6%B3%95%E6%A8%A1%E5%BC%8F/1.htm">模板方法模式</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/boot/1.htm">boot</a>
                        <div>一、定义模板方法模式是一种行为设计模式,它定义了一个操作中的算法的骨架(也就是大致的步骤和流程),而将一些具体步骤的实现延迟到子类中。这样,子类可以不改变算法的结构即可重新定义算法的某些特定步骤。二、Java示例举个简单的例子:假设我们要泡一杯茶和一杯咖啡,这两者的制作过程有一些共同的步骤,比如烧水、倒水、搅拌等,但也有不同的地方,比如茶需要放茶叶,而咖啡需要放咖啡粉。泡茶的过程:烧水、放茶叶、倒</div>
                    </li>
                    <li><a href="/article/1892539968312635392.htm"
                           title="基于若依和flowable6.7.2的ruoyi-nbcio流程管理系统正式发布" target="_blank">基于若依和flowable6.7.2的ruoyi-nbcio流程管理系统正式发布</a>
                        <span class="text-muted">宁波阿成</span>
<a class="tag" taget="_blank" href="/search/ruoyi-nbcio/1.htm">ruoyi-nbcio</a><a class="tag" taget="_blank" href="/search/%E8%8B%A5%E4%BE%9D/1.htm">若依</a><a class="tag" taget="_blank" href="/search/flowable/1.htm">flowable</a><a class="tag" taget="_blank" href="/search/flowable/1.htm">flowable</a><a class="tag" taget="_blank" href="/search/%E8%8B%A5%E4%BE%9D/1.htm">若依</a><a class="tag" taget="_blank" href="/search/ruoyi-nbcio/1.htm">ruoyi-nbcio</a><a class="tag" taget="_blank" href="/search/ruoyi/1.htm">ruoyi</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/vue/1.htm">vue</a>
                        <div>更多ruoyi-nbcio功能请看演示系统gitee源代码地址前后端代码:https://gitee.com/nbacheng/ruoyi-nbcio演示地址:RuoYi-Nbcio后台管理系统项目概要本项目基于RuoYi-Flowable-Plus进行二次开发,从nbcio-boot(https://gitee.com/nbacheng/nbcio-boot)项目</</div>
                    </li>
                    <li><a href="/article/1892539841762095104.htm"
                           title="js的垃圾回收机制" target="_blank">js的垃圾回收机制</a>
                        <span class="text-muted">www.www</span>
<a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/%E7%9B%B8%E5%85%B3/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/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>js中的垃圾回收机制JavaScript作为一种高级语言,开发者不需要手动管理内存的分配和释放。垃圾回收机制是JavaScript引擎中的一部分,负责自动回收那些不再被使用的内存,确保内存资源得到有效利用,避免内存泄漏。垃圾回收机制主要有两种算法:引用计数和标记清除引用计数基本原理:每个对象都有一个引用计数器,当有一个引用指向该对象时,计数器+1,当一个引用不再指向该对象时,计数器-1。如果某个对</div>
                    </li>
                    <li><a href="/article/1892539212012515328.htm"
                           title="Android Calendar日历获取几个月的总天数,每月的月初时间和月末时间" target="_blank">Android Calendar日历获取几个月的总天数,每月的月初时间和月末时间</a>
                        <span class="text-muted">OKXLIN</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a>
                        <div>/***获取当月剩余天数(含当天)+往后几个月的天数总和*@parammonthNum往后几个月*@return总天数*/publicstaticintgetDaysWithMonthYear(intmonthNum){intdays=0;Calendarcalendar=Calendar.getInstance();intyear=calendar.get(Calendar.YEAR);intm</div>
                    </li>
                    <li><a href="/article/1892538578999767040.htm"
                           title="基于Transformer的YOLOv8检测头架构改进:提升目标检测精度的全新突破(YOLOv8)" target="_blank">基于Transformer的YOLOv8检测头架构改进:提升目标检测精度的全新突破(YOLOv8)</a>
                        <span class="text-muted">步入烟尘</span>
<a class="tag" taget="_blank" href="/search/transformer/1.htm">transformer</a><a class="tag" taget="_blank" href="/search/YOLO/1.htm">YOLO</a><a class="tag" taget="_blank" href="/search/%E7%9B%AE%E6%A0%87%E6%A3%80%E6%B5%8B/1.htm">目标检测</a>
                        <div>本专栏专为AI视觉领域的爱好者和从业者打造。涵盖分类、检测、分割、追踪等多项技术,带你从入门到精通!后续更有实战项目,助你轻松应对面试挑战!立即订阅,开启你的YOLOv8之旅!专栏订阅地址:https://blog.csdn.net/mrdeam/category_12804295.html文章目录基于Transformer的YOLOv8检测头架构改进:提升目标检测精度的全新突破什么是DAtten</div>
                    </li>
                    <li><a href="/article/1892537949245992960.htm"
                           title="Python爬虫TLS" target="_blank">Python爬虫TLS</a>
                        <span class="text-muted">dme.</span>
<a class="tag" taget="_blank" href="/search/Python%E7%88%AC%E8%99%AB%E9%9B%B6%E5%9F%BA%E7%A1%80%E5%85%A5%E9%97%A8/1.htm">Python爬虫零基础入门</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a>
                        <div>TLS指纹校验原理和绕过浏览器可以正常访问,但是用requests发送请求失败。后端是如何监测得呢?为什么浏览器可以返回结果,而requests模块不行呢?https://cn.investing.com/equities/amazon-com-inc-historical-data1.指纹校验案例1.1案例:ascii2dhttps://ascii2d.net/importrequestsres</div>
                    </li>
                    <li><a href="/article/1892537066504384512.htm"
                           title="python爬虫Selenium库详细教程_python爬虫之selenium库的使用详解" target="_blank">python爬虫Selenium库详细教程_python爬虫之selenium库的使用详解</a>
                        <span class="text-muted">嘻嘻哈哈学编程</span>
<a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E5%91%98/1.htm">程序员</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/selenium/1.htm">selenium</a>
                        <div>网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。需要这份系统化学习资料的朋友,可以戳这里获取一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!2.2访问页面2.3查找元素2.3.1单个元素下面</div>
                    </li>
                    <li><a href="/article/1892537067355828224.htm"
                           title="排序算法:冒泡排序(Python)" target="_blank">排序算法:冒泡排序(Python)</a>
                        <span class="text-muted">娱乐不打烊丶</span>
<a class="tag" taget="_blank" href="/search/%E6%8E%92%E5%BA%8F%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>
                        <div>思路:大家一定都喝过汽水吧,汽水中常常有许多小小的气泡,往上飘,这是因为组成小气泡的二氧化碳比水要轻,所以小气泡才会一点一点的向上浮。而冒泡排序之所以叫冒泡排序,正是因为这种排序算法的每一个元素都可以向小气泡一样,根据自身大小,一点一点向着数组的一侧移动。一图解百惑,上图!那么,话不多说,上代码!defbubble_sort(input_list):#冒泡排序:每次循环,锁定一个最值,并朝着最大或</div>
                    </li>
                    <li><a href="/article/1892536309688365056.htm"
                           title="supervisord 命令介绍和使用案例" target="_blank">supervisord 命令介绍和使用案例</a>
                        <span class="text-muted">lisanmengmeng</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E5%91%BD%E4%BB%A4%E5%B7%A5%E5%85%B7/1.htm">命令工具</a><a class="tag" taget="_blank" href="/search/%E7%B3%BB%E7%BB%9F%E8%BF%90%E7%BB%B4/1.htm">系统运维</a><a class="tag" taget="_blank" href="/search/shell%E7%BC%96%E7%A8%8B/1.htm">shell编程</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/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a>
                        <div>supervisord命令介绍和使用案例supervisord是一个用Python编写的进程管理工具,用于监控和管理Linux系统中的进程。它可以将普通的命令行进程转变为后台守护进程(daemon),并监控进程状态,在进程异常退出时自动重启。它通过fork/exec的方式把被管理的进程当作自己的子进程来启动。主要功能:进程管理:能够启动、停止、重启和关闭进程.自动重启:监控进程状态,并在进程崩溃时</div>
                    </li>
                    <li><a href="/article/1892536183204933632.htm"
                           title="ptython setup.py install 设置python包编译时的并行数" target="_blank">ptython setup.py install 设置python包编译时的并行数</a>
                        <span class="text-muted">leo0308</span>
<a class="tag" taget="_blank" href="/search/%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/1.htm">基础知识</a><a class="tag" taget="_blank" href="/search/Python/1.htm">Python</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/pytorch3d/1.htm">pytorch3d</a>
                        <div>通过源码编译安装pytorch3d的时候,直接执行pythonsetup.pyinstall时,默认开的并行数很多,有10几个,直接导致机器卡死。通过设置下面的环境变量,可以设置较小的并行数,避免占用过多的资源。exportMAX_JOBS=4设置后,同时只有4个编译的进程。</div>
                    </li>
                    <li><a href="/article/1892535803729473536.htm"
                           title="微信扫二维码挪车小程序开发制作功能" target="_blank">微信扫二维码挪车小程序开发制作功能</a>
                        <span class="text-muted">dh13122250525</span>
<a class="tag" taget="_blank" href="/search/%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8%8B%E5%BA%8F/1.htm">微信小程序</a>
                        <div>微信扫二维码挪车小程序开发制作功能微信扫码挪车是一种全新的挪车服务,实现“微信扫码,隐号通话”。用户只需要通过微信扫描对方车主置于车内的挪车码,即可通过匿名电话和短信联络对方车主挪车,同时对双方的电话信息进行有效的保护。扫一下挪车,二维码代替了电话号码,只需要用手机扫描二维码,即可直接联系到车主挪车,在整个过程中,不需要知道车主联系电话或其他任何联系方式,平台会以微信、短信、语音通话等方式通知车主</div>
                    </li>
                    <li><a href="/article/1892534920669097984.htm"
                           title="Vue.js 从新手到专家:第七章 高级渲染、动态组件和插件合成" target="_blank">Vue.js 从新手到专家:第七章 高级渲染、动态组件和插件合成</a>
                        <span class="text-muted">caifox菜狐狸</span>
<a class="tag" taget="_blank" href="/search/Vue.js/1.htm">Vue.js</a><a class="tag" taget="_blank" href="/search/%E4%BB%8E%E6%96%B0%E6%89%8B%E5%88%B0%E4%B8%93%E5%AE%B6/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/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/ecmascript/1.htm">ecmascript</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/vite/1.htm">vite</a>
                        <div>欢迎来到《Vue.js从新手到专家》的第七章!在这一章中,我们将深入探讨Vue.js的高级渲染技术、动态组件的使用以及如何通过插件扩展应用程序的功能。这些技能将帮助你构建更加灵活和可维护的应用程序。通过学习本章内容,你将掌握以下技能:理解Render函数和JSX的基本概念及其应用场景。学习函数式组件的定义及其实现方式。掌握如何为函数式组件定义Props和Emits。学习如何使用Vue插件全局地添加</div>
                    </li>
                    <li><a href="/article/1892533535663779840.htm"
                           title="vue根据vue-admin-template封装导出excel数据文件组件" target="_blank">vue根据vue-admin-template封装导出excel数据文件组件</a>
                        <span class="text-muted">Nikki_u</span>
<a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.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>(1)由于Export2Excel不仅依赖js-xlsx还依赖file-saver和script-loader。先需要安装如下命令npminstallxlsxfile-saver-Snpminstallscript-loader-S-D(2)导出表格地址https://github.com/PanJiaChen/vue-element-admin/blob/master/src/vendor/Ex</div>
                    </li>
                    <li><a href="/article/1892533283338645504.htm"
                           title="深入浅出:基于SpringBoot和JWT的后端鉴权系统设计与实现" target="_blank">深入浅出:基于SpringBoot和JWT的后端鉴权系统设计与实现</a>
                        <span class="text-muted">Vcats</span>
<a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/boot/1.htm">boot</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                        <div>文章目录什么是鉴权系统定义与作用主要组成部分工作原理常用技术和框架基于SpringBoot+JWT的鉴权系统设计与实现指南前言技术对比令牌技术JWT令牌实现全流程1.**依赖引入**2.**JWT工具类**3.**JWT拦截器(Interceptor)**4.**拦截器注册**5.**登录接口**什么是鉴权系统后端开发鉴权系统是一种用于验证和授权用户访问后端资源的系统,在保障系统安全和资源合理访问</div>
                    </li>
                    <li><a href="/article/1892532653761032192.htm"
                           title="CSS flex布局 列表单个元素点击 本行下插入详情独占一行" target="_blank">CSS flex布局 列表单个元素点击 本行下插入详情独占一行</a>
                        <span class="text-muted">Cxiaomu</span>
<a class="tag" taget="_blank" href="/search/CSS3/1.htm">CSS3</a><a class="tag" taget="_blank" href="/search/UI%E8%AE%BE%E8%AE%A1/1.htm">UI设计</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a>
                        <div>技术栈:Vue2+javaScript简介在实际开发过程中有遇到一个场景:一个list,每行个数固定,点击单个元素后,在当前行与下一行之间插入一行元素详情,便于更直观的查看到对应的数据详情。这种情形,在移动端比较常见,比如用户列表,点击单个列表展示详情,可以考虑flex布局+positionrelative定位。实现思路对于需求重点和实现拆解列表元素:for遍历每行固定(3)个元素:flex布局、</div>
                    </li>
                    <li><a href="/article/1892532149689577472.htm"
                           title="短剧系统源码上线三端小程序需要什么资质上线周期是多久?" target="_blank">短剧系统源码上线三端小程序需要什么资质上线周期是多久?</a>
                        <span class="text-muted">南阳迈特网络科技</span>
<a class="tag" taget="_blank" href="/search/%E7%9F%AD%E5%89%A7%E6%BA%90%E7%A0%81/1.htm">短剧源码</a><a class="tag" taget="_blank" href="/search/%E7%9F%AD%E5%89%A7%E7%B1%BB%E7%9B%AE/1.htm">短剧类目</a><a class="tag" taget="_blank" href="/search/%E5%B0%8F%E7%A8%8B%E5%BA%8F/1.htm">小程序</a>
                        <div>短剧系统部署上线需要哪些资质呢?近年来,随着移动互联网的迅猛发展和用户内容消费习惯的改变,短剧作为一种新兴的内容形式,正迅速崛起并受到广泛关注。短剧以其短小精悍、节奏紧凑、题材多样化的特点,吸引了大量年轻观众的喜爱。无论是在通勤路上、午休时间,还是临睡前,短剧都成为了人们碎片化时间娱乐的首选。运营短剧类小程序首先需要注册申请开放平台账号,小程序备案、类目申请等等......抖音小程序《营业执照》《</div>
                    </li>
                    <li><a href="/article/1892531896454279168.htm"
                           title="《沙雕传奇》手游官网:爆笑冒险,传奇之旅等你开启!" target="_blank">《沙雕传奇》手游官网:爆笑冒险,传奇之旅等你开启!</a>
                        <span class="text-muted">林舟Jie</span>
<a class="tag" taget="_blank" href="/search/%E6%B8%B8%E6%88%8F/1.htm">游戏</a><a class="tag" taget="_blank" href="/search/%E6%B8%B8%E6%88%8F/1.htm">游戏</a><a class="tag" taget="_blank" href="/search/%E6%89%8B%E6%B8%B8%E6%B8%B8%E6%88%8F/1.htm">手游游戏</a><a class="tag" taget="_blank" href="/search/%E4%BC%A0%E5%A5%87%E6%B8%B8%E6%88%8F/1.htm">传奇游戏</a>
                        <div>沙雕传奇手游官网:https://sdcq.qn185.com沙雕传奇手游官网《沙雕传奇》手游作为一款以“爆笑冒险”为主打的游戏,听起来就充满了趣味性和创意。以下是一些建议,帮助玩家更好地体验这款游戏:一、游戏初探与角色创建官网注册与下载:首先,前往《沙雕传奇》手游官网进行注册和下载。确保下载的是官方正版游戏,以避免遇到安全问题或盗版内容。角色创建:在创建角色时,可以根据自己的喜好选择性别、职业和</div>
                    </li>
                    <li><a href="/article/1892531391170670592.htm"
                           title="同城拼车打车约车系统:Java源码全开源构建与优化" target="_blank">同城拼车打车约车系统:Java源码全开源构建与优化</a>
                        <span class="text-muted">狂团商城小师妹</span>
<a class="tag" taget="_blank" href="/search/%E5%8D%9A%E7%BA%B3miui52086/1.htm">博纳miui52086</a><a class="tag" taget="_blank" href="/search/%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8%8B%E5%BA%8F/1.htm">微信小程序</a><a class="tag" taget="_blank" href="/search/%E5%B0%8F%E7%A8%8B%E5%BA%8F/1.htm">小程序</a><a class="tag" taget="_blank" href="/search/%E5%BE%AE%E4%BF%A1%E5%85%AC%E4%BC%97%E5%B9%B3%E5%8F%B0/1.htm">微信公众平台</a>
                        <div>同城拼车系统是一个复杂且功能全面的软件系统,它巧妙地运用互联网技术,将具有相同出行需求的乘客与车主进行精准匹配,旨在实现资源的最大化共享、显著降低出行成本、有效缓解交通拥堵问题,并大幅提升出行效率。Java,作为一种功能强大、应用广泛的编程语言,凭借其出色的跨平台性、丰富的API库以及强大的性能,成为开发此类系统的理想选择。一、Java源码构建系统架构MVC架构:同城拼车系统采用MVC(Model</div>
                    </li>
                    <li><a href="/article/1892531392466710528.htm"
                           title="活动报名系统源码:JAVA同城服务系统活动报名同城圈子商家商城城市代理躲猫猫" target="_blank">活动报名系统源码:JAVA同城服务系统活动报名同城圈子商家商城城市代理躲猫猫</a>
                        <span class="text-muted">狂团商城小师妹</span>
<a class="tag" taget="_blank" href="/search/%E5%8D%9A%E7%BA%B3miui52086/1.htm">博纳miui52086</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</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%E6%95%B0%E6%8D%AE/1.htm">大数据</a><a class="tag" taget="_blank" href="/search/%E5%BE%AE%E4%BF%A1%E5%85%AC%E4%BC%97%E5%B9%B3%E5%8F%B0/1.htm">微信公众平台</a><a class="tag" taget="_blank" href="/search/%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8%8B%E5%BA%8F/1.htm">微信小程序</a>
                        <div>JAVA同城服务系统:打造多元化社交与娱乐新体验在数字化时代,同城服务系统已成为连接城市生活的重要桥梁。我们精心打造的JAVA同城服务系统,不仅融合了活动报名、同城圈子、商家商城、城市代理等多重功能,还特别加入了创新的“躲猫猫”游戏模块,旨在为用户提供一个集社交、娱乐、消费于一体的综合性平台。以下是对该系统功能的详细介绍及技术栈分析。功能介绍活动报名用户可以通过系统轻松浏览并参与同城各类精彩活动,</div>
                    </li>
                    <li><a href="/article/1892531009493200896.htm"
                           title="PTA:使用指针方式求一个给定的m×n矩阵各行元素之和" target="_blank">PTA:使用指针方式求一个给定的m×n矩阵各行元素之和</a>
                        <span class="text-muted">WZMeiei</span>
<a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a>
                        <div>本题要求编写程序,使用指针方式求一个给定的m×n矩阵各行元素之和。(例如:scanf("%d",*(matrix+i)+j);//使用指针方式访问二维数组元素)输入格式:输入第一行给出两个正整数m和n(1intmain(){intm,n;scanf("%d%d",&m,&n);intmatrix[6][6];//使用指针方式输入矩阵元素for(inti=0;i<m;i++){for(intj=0;</div>
                    </li>
                    <li><a href="/article/1892530756757024768.htm"
                           title="Java如何调用构造函数和方法以及使用" target="_blank">Java如何调用构造函数和方法以及使用</a>
                        <span class="text-muted">WZMeiei</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>调用构造函数的格式构造函数在创建新对象时被调用。调用格式如下:ClassNameobjectName=newClassName(parameters);ClassName:你需要创建其实例的类的名称。objectName:你将创建的对象的名称。parameters:如果你使用的是带有参数的构造函数,这里需要传递相应的参数。示例:Personperson=newPerson("John",25);调</div>
                    </li>
                    <li><a href="/article/1892530757285507072.htm"
                           title="Java中的static关键字" target="_blank">Java中的static关键字</a>
                        <span class="text-muted">WZMeiei</span>
<a class="tag" taget="_blank" href="/search/Java/1.htm">Java</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>static是Java中的一个关键字,主要用于修饰类成员(变量和方法),以表示这个成员属于类本身,而不是类的实例1.静态变量(StaticVariables)类级属性:静态变量也称为类变量或静态属性,它们在类加载时初始化,并且只有一份拷贝,被所有该类的对象共享。这意味着无论创建多少个对象,静态变量的内存空间只有一处。生命周期长:静态变量的生命周期与类相同,只要应用运行,它们就存在。访问方式:可以直</div>
                    </li>
                    <li><a href="/article/1892529998733045760.htm"
                           title="axios" target="_blank">axios</a>
                        <span class="text-muted">是小傲雨呀^_^</span>
<a class="tag" taget="_blank" href="/search/axios/1.htm">axios</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a>
                        <div>1.简介:Axios是一个基于Promise的现代化HTTP客户端库,广泛用于浏览器和Node.js环境中发送HTTP请求。它的设计目标是简化前后端数据交互,提供更高效、更易用的API。2.Axios的核心作用发送HTTP请求支持所有常见请求方法(GET、POST、PUT、DELETE等),并自动处理请求参数和响应数据。拦截请求和响应可以在请求发送前或响应返回后添加统一的处理逻辑(例如添加认证To</div>
                    </li>
                                <li><a href="/article/36.htm"
                                       title="ASM系列四 利用Method 组件动态注入方法逻辑" target="_blank">ASM系列四 利用Method 组件动态注入方法逻辑</a>
                                    <span class="text-muted">lijingyao8206</span>
<a class="tag" taget="_blank" href="/search/%E5%AD%97%E8%8A%82%E7%A0%81%E6%8A%80%E6%9C%AF/1.htm">字节码技术</a><a class="tag" taget="_blank" href="/search/jvm/1.htm">jvm</a><a class="tag" taget="_blank" href="/search/AOP/1.htm">AOP</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/ASM/1.htm">ASM</a>
                                    <div>        这篇继续结合例子来深入了解下Method组件动态变更方法字节码的实现。通过前面一篇,知道ClassVisitor 的visitMethod()方法可以返回一个MethodVisitor的实例。那么我们也基本可以知道,同ClassVisitor改变类成员一样,MethodVIsistor如果需要改变方法成员,注入逻辑,也可以</div>
                                </li>
                                <li><a href="/article/163.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/%E5%86%85%E9%83%A8%E7%B1%BB/1.htm">内部类</a><a class="tag" taget="_blank" href="/search/%E5%8C%BF%E5%90%8D%E5%86%85%E9%83%A8%E7%B1%BB/1.htm">匿名内部类</a>
                                    <div>内部类;了解外部类 并能与之通信 内部类写出来的代码更加整洁与优雅 
  
1,内部类的创建  内部类是创建在类中的 
 
package com.wj.InsideClass;

/*
 * 内部类的创建
 */
public class CreateInsideClass {

	public CreateInsideClass(</div>
                                </li>
                                <li><a href="/article/290.htm"
                                       title="web.xml报错" target="_blank">web.xml报错</a>
                                    <span class="text-muted">crabdave</span>
<a class="tag" taget="_blank" href="/search/web.xml/1.htm">web.xml</a>
                                    <div>web.xml报错 
  
The content of element type "web-app" must match "(icon?,display- 
 name?,description?,distributable?,context-param*,filter*,filter-mapping*,listener*,servlet*,s</div>
                                </li>
                                <li><a href="/article/417.htm"
                                       title="泛型类的自定义" target="_blank">泛型类的自定义</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/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/%E6%B3%9B%E5%9E%8B/1.htm">泛型</a>
                                    <div>   为什么要定义泛型类,当类中要操作的引用数据类型不确定的时候。 
采用泛型类,完成扩展。 
  例如有一个学生类 
    
Student{
  Student(){
   System.out.println("I'm a student.....");
  }
} 
 有一个老师类 
  
</div>
                                </li>
                                <li><a href="/article/544.htm"
                                       title="CSS清除浮动的4中方法" target="_blank">CSS清除浮动的4中方法</a>
                                    <span class="text-muted">IT独行者</span>
<a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/UI/1.htm">UI</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a>
                                    <div>清除浮动这个问题,做前端的应该再熟悉不过了,咱是个新人,所以还是记个笔记,做个积累,努力学习向大神靠近。CSS清除浮动的方法网上一搜,大概有N多种,用过几种,说下个人感受。 
1、结尾处加空div标签 clear:both      1   2   3   4      
.div 
1 
{ 
background 
: 
#000080 
; 
border 
: 
1px   
s</div>
                                </li>
                                <li><a href="/article/671.htm"
                                       title="Cygwin使用windows的jdk 配置方法" target="_blank">Cygwin使用windows的jdk 配置方法</a>
                                    <span class="text-muted">_wy_</span>
<a class="tag" taget="_blank" href="/search/jdk/1.htm">jdk</a><a class="tag" taget="_blank" href="/search/windows/1.htm">windows</a><a class="tag" taget="_blank" href="/search/cygwin/1.htm">cygwin</a>
                                    <div>1.[vim /etc/profile] 
   JAVA_HOME="/cgydrive/d/Java/jdk1.6.0_43"  (windows下jdk路径为D:\Java\jdk1.6.0_43) 
   PATH="$JAVA_HOME/bin:${PATH}" 
   CLAS</div>
                                </li>
                                <li><a href="/article/798.htm"
                                       title="linux下安装maven" target="_blank">linux下安装maven</a>
                                    <span class="text-muted">无量</span>
<a class="tag" taget="_blank" href="/search/maven/1.htm">maven</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E8%A3%85/1.htm">安装</a>
                                    <div>Linux下安装maven(转)  1.首先到Maven官网 
下载安装文件,目前最新版本为3.0.3,下载文件为 
apache-maven-3.0.3-bin.tar.gz,下载可以使用wget命令; 
 
2.进入下载文件夹,找到下载的文件,运行如下命令解压 
  tar -xvf  apache-maven-2.2.1-bin.tar.gz  
解压后的文件夹</div>
                                </li>
                                <li><a href="/article/925.htm"
                                       title="tomcat的https 配置,syslog-ng配置" target="_blank">tomcat的https 配置,syslog-ng配置</a>
                                    <span class="text-muted">aichenglong</span>
<a class="tag" taget="_blank" href="/search/tomcat/1.htm">tomcat</a><a class="tag" taget="_blank" href="/search/http%E8%B7%B3%E8%BD%AC%E5%88%B0https/1.htm">http跳转到https</a><a class="tag" taget="_blank" href="/search/syslong-ng%E9%85%8D%E7%BD%AE/1.htm">syslong-ng配置</a><a class="tag" taget="_blank" href="/search/syslog%E9%85%8D%E7%BD%AE/1.htm">syslog配置</a>
                                    <div>1) tomcat配置https,以及http自动跳转到https的配置 
    1)TOMCAT_HOME目录下生成密钥(keytool是jdk中的命令) 
     keytool -genkey -alias tomcat -keyalg RSA -keypass changeit -storepass changeit</div>
                                </li>
                                <li><a href="/article/1052.htm"
                                       title="关于领号活动总结" target="_blank">关于领号活动总结</a>
                                    <span class="text-muted">alafqq</span>
<a class="tag" taget="_blank" href="/search/%E6%B4%BB%E5%8A%A8/1.htm">活动</a>
                                    <div>关于某彩票活动的总结 
具体需求,每个用户进活动页面,领取一个号码,1000中的一个; 
活动要求 
1,随机性,一定要有随机性; 
2,最少中奖概率,如果注数为3200注,则最多中4注 
3,效率问题,(不能每个人来都产生一个随机数,这样效率不高); 
4,支持断电(仍然从下一个开始),重启服务;(存数据库有点大材小用,因此不能存放在数据库) 
 
解决方案 
1,事先产生随机数1000个,并打</div>
                                </li>
                                <li><a href="/article/1179.htm"
                                       title="java数据结构 冒泡排序的遍历与排序" target="_blank">java数据结构 冒泡排序的遍历与排序</a>
                                    <span class="text-muted">百合不是茶</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                                    <div>java的冒泡排序是一种简单的排序规则 
  
冒泡排序的原理:  
         比较两个相邻的数,首先将最大的排在第一个,第二次比较第二个 ,此后一样; 
        针对所有的元素重复以上的步骤,除了最后一个 
  
  
例题;将int array[] </div>
                                </li>
                                <li><a href="/article/1306.htm"
                                       title="JS检查输入框输入的是否是数字的一种校验方法" target="_blank">JS检查输入框输入的是否是数字的一种校验方法</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/js/1.htm">js</a>
                                    <div>如下是JS检查输入框输入的是否是数字的一种校验方法: 
<form method=post target="_blank">
   数字:<input type="text" name=num onkeypress="checkNum(this.form)"><br>
</form>
</div>
                                </li>
                                <li><a href="/article/1433.htm"
                                       title="Test注解的两个属性:expected和timeout" target="_blank">Test注解的两个属性:expected和timeout</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/JUnit/1.htm">JUnit</a><a class="tag" taget="_blank" href="/search/expected/1.htm">expected</a><a class="tag" taget="_blank" href="/search/timeout/1.htm">timeout</a>
                                    <div>JUnit4:Test文档中的解释: 
  The Test annotation supports two optional parameters. 
  The first, expected, declares that a test method should throw an exception. 
  If it doesn't throw an exception or if it </div>
                                </li>
                                <li><a href="/article/1560.htm"
                                       title="[Gson二]继承关系的POJO的反序列化" target="_blank">[Gson二]继承关系的POJO的反序列化</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/POJO/1.htm">POJO</a>
                                    <div>父类 
  
  
package inheritance.test2;

import java.util.Map;

public class Model {
    private String field1;
    private String field2;

    private Map<String, String> infoMap</div>
                                </li>
                                <li><a href="/article/1687.htm"
                                       title="【Spark八十四】Spark零碎知识点记录" target="_blank">【Spark八十四】Spark零碎知识点记录</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/spark/1.htm">spark</a>
                                    <div>1. ShuffleMapTask的shuffle数据在什么地方记录到MapOutputTracker中的 
ShuffleMapTask的runTask方法负责写数据到shuffle map文件中。当任务执行完成成功,DAGScheduler会收到通知,在DAGScheduler的handleTaskCompletion方法中完成记录到MapOutputTracker中 
  
   </div>
                                </li>
                                <li><a href="/article/1814.htm"
                                       title="WAS各种脚本作用大全" target="_blank">WAS各种脚本作用大全</a>
                                    <span class="text-muted">ronin47</span>
<a class="tag" taget="_blank" href="/search/WAS+%E8%84%9A%E6%9C%AC/1.htm">WAS 脚本</a>
                                    <div>   http://www.ibm.com/developerworks/cn/websphere/library/samples/SampleScripts.html 
   无意中,在WAS官网上发现的各种脚本作用,感觉很有作用,先与各位分享一下 
    
获取下载 
这些示例 jacl 和 Jython 脚本可用于在 WebSphere Application Server 的不同版本中自</div>
                                </li>
                                <li><a href="/article/1941.htm"
                                       title="java-12.求 1+2+3+..n不能使用乘除法、 for 、 while 、 if 、 else 、 switch 、 case 等关键字以及条件判断语句" target="_blank">java-12.求 1+2+3+..n不能使用乘除法、 for 、 while 、 if 、 else 、 switch 、 case 等关键字以及条件判断语句</a>
                                    <span class="text-muted">bylijinnan</span>
<a class="tag" taget="_blank" href="/search/switch/1.htm">switch</a>
                                    <div>借鉴网上的思路,用java实现: 
 




public class NoIfWhile {

	/**
	 * @param args
	 * 
	 * find x=1+2+3+....n
	 */
	public static void main(String[] args) {
		int n=10;
		int re=find(n);
		System.o</div>
                                </li>
                                <li><a href="/article/2068.htm"
                                       title="Netty源码学习-ObjectEncoder和ObjectDecoder" target="_blank">Netty源码学习-ObjectEncoder和ObjectDecoder</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/netty/1.htm">netty</a>
                                    <div>Netty中传递对象的思路很直观: 
Netty中数据的传递是基于ChannelBuffer(也就是byte[]); 
那把对象序列化为字节流,就可以在Netty中传递对象了 
相应的从ChannelBuffer恢复对象,就是反序列化的过程 
 
Netty已经封装好ObjectEncoder和ObjectDecoder 
 
先看ObjectEncoder 
ObjectEncoder是往外发送</div>
                                </li>
                                <li><a href="/article/2195.htm"
                                       title="spring 定时任务中cronExpression表达式含义" target="_blank">spring 定时任务中cronExpression表达式含义</a>
                                    <span class="text-muted">chicony</span>
<a class="tag" taget="_blank" href="/search/cronExpression/1.htm">cronExpression</a>
                                    <div>一个cron表达式有6个必选的元素和一个可选的元素,各个元素之间是以空格分隔的,从左至右,这些元素的含义如下表所示: 
代表含义            是否必须 允许的取值范围         &nb</div>
                                </li>
                                <li><a href="/article/2322.htm"
                                       title="Nutz配置Jndi" target="_blank">Nutz配置Jndi</a>
                                    <span class="text-muted">ctrain</span>
<a class="tag" taget="_blank" href="/search/JNDI/1.htm">JNDI</a>
                                    <div>1、使用JNDI获取指定资源: 
 

var ioc = {
    dao : {
        type :"org.nutz.dao.impl.NutDao",
        args : [ {jndi :"jdbc/dataSource"} ]
    }
}
 
以上方法,仅需要在容器中配置好数据源,注入到NutDao即可. </div>
                                </li>
                                <li><a href="/article/2449.htm"
                                       title="解决 /bin/sh^M: bad interpreter: No such file or directory" target="_blank">解决 /bin/sh^M: bad interpreter: No such file or directory</a>
                                    <span class="text-muted">daizj</span>
<a class="tag" taget="_blank" href="/search/shell/1.htm">shell</a>
                                    <div>在Linux中执行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory。 
  
分析:这是不同系统编码格式引起的:在windows系统中编辑的.sh文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息。 
解决: 
1)在windows下转换: 
利用一些编辑器如UltraEdit或EditPlus等工具</div>
                                </li>
                                <li><a href="/article/2576.htm"
                                       title="[转]for 循环为何可恨?" target="_blank">[转]for 循环为何可恨?</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E5%91%98/1.htm">程序员</a><a class="tag" taget="_blank" href="/search/%E8%AF%BB%E4%B9%A6/1.htm">读书</a>
                                    <div>  
Java的闭包(Closure)特征最近成为了一个热门话题。 一些精英正在起草一份议案,要在Java将来的版本中加入闭包特征。 然而,提议中的闭包语法以及语言上的这种扩充受到了众多Java程序员的猛烈抨击。 
不久前,出版过数十本编程书籍的大作家Elliotte Rusty Harold发表了对Java中闭包的价值的质疑。 尤其是他问道“for 循环为何可恨?”[http://ju</div>
                                </li>
                                <li><a href="/article/2703.htm"
                                       title="Android实用小技巧" target="_blank">Android实用小技巧</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/android/1.htm">android</a>
                                    <div>1、去掉所有Activity界面的标题栏 
  修改AndroidManifest.xml   在application 标签中添加android:theme="@android:style/Theme.NoTitleBar" 
  
2、去掉所有Activity界面的TitleBar 和StatusBar  
  修改AndroidManifes</div>
                                </li>
                                <li><a href="/article/2830.htm"
                                       title="Oracle 复习笔记之序列" target="_blank">Oracle 复习笔记之序列</a>
                                    <span class="text-muted">eksliang</span>
<a class="tag" taget="_blank" href="/search/Oracle+%E5%BA%8F%E5%88%97/1.htm">Oracle 序列</a><a class="tag" taget="_blank" href="/search/sequence/1.htm">sequence</a><a class="tag" taget="_blank" href="/search/Oracle+sequence/1.htm">Oracle sequence</a>
                                    <div>转载请出自出处:http://eksliang.iteye.com/blog/2098859 
1.序列的作用 
 
 序列是用于生成唯一、连续序号的对象 
 一般用序列来充当数据库表的主键值 
 
2.创建序列语法如下: 
  
create sequence s_emp
start with 1      --开始值
increment by 1    --増长值
maxval</div>
                                </li>
                                <li><a href="/article/2957.htm"
                                       title="有“品”的程序员" target="_blank">有“品”的程序员</a>
                                    <span class="text-muted">gongmeitao</span>
<a class="tag" taget="_blank" href="/search/%E5%B7%A5%E4%BD%9C/1.htm">工作</a>
                                    <div>完美程序员的10种品质   
  
 完美程序员的每种品质都有一个范围,这个范围取决于具体的问题和背景。没有能解决所有问题的 
  
完美程序员(至少在我们这个星球上),并且对于特定问题,完美程序员应该具有以下品质: 
  1. 才智非凡- 能够理解问题、能够用清晰可读的代码翻译并表达想法、善于分析并且逻辑思维能力强 
  
(范围:用简单方式解决复杂问题)   
 </div>
                                </li>
                                <li><a href="/article/3084.htm"
                                       title="使用KeleyiSQLHelper类进行分页查询" target="_blank">使用KeleyiSQLHelper类进行分页查询</a>
                                    <span class="text-muted">hvt</span>
<a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/.net/1.htm">.net</a><a class="tag" taget="_blank" href="/search/C%23/1.htm">C#</a><a class="tag" taget="_blank" href="/search/asp.net/1.htm">asp.net</a><a class="tag" taget="_blank" href="/search/hovertree/1.htm">hovertree</a>
                                    <div>本文适用于sql server单主键表或者视图进行分页查询,支持多字段排序。KeleyiSQLHelper类的最新代码请到http://hovertree.codeplex.com/SourceControl/latest下载整个解决方案源代码查看。或者直接在线查看类的代码:http://hovertree.codeplex.com/SourceControl/latest#HoverTree.D</div>
                                </li>
                                <li><a href="/article/3211.htm"
                                       title="SVG 教程 (三)圆形,椭圆,直线" target="_blank">SVG 教程 (三)圆形,椭圆,直线</a>
                                    <span class="text-muted">天梯梦</span>
<a class="tag" taget="_blank" href="/search/svg/1.htm">svg</a>
                                    <div>SVG <circle>   SVG 圆形 - <circle> 
<circle> 标签可用来创建一个圆: 
下面是SVG代码: 
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
  <circle cx="100" c</div>
                                </li>
                                <li><a href="/article/3338.htm"
                                       title="链表栈" target="_blank">链表栈</a>
                                    <span class="text-muted">luyulong</span>
<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%E7%BB%93%E6%9E%84/1.htm">数据结构</a>
                                    <div>
public class Node {
	private Object object;
	private Node next;

	public Node() {
		this.next = null;
		this.object = null;
	}

	public Object getObject() {
		return object;
	}

	public</div>
                                </li>
                                <li><a href="/article/3465.htm"
                                       title="基础数据结构和算法十:2-3 search tree" target="_blank">基础数据结构和算法十:2-3 search tree</a>
                                    <span class="text-muted">sunwinner</span>
<a class="tag" taget="_blank" href="/search/Algorithm/1.htm">Algorithm</a><a class="tag" taget="_blank" href="/search/2-3+search+tree/1.htm">2-3 search tree</a>
                                    <div>  
Binary search tree works well for a wide variety of applications, but they have poor worst-case performance. Now we introduce a type of binary search tree where costs are guaranteed to be loga</div>
                                </li>
                                <li><a href="/article/3592.htm"
                                       title="spring配置定时任务" target="_blank">spring配置定时任务</a>
                                    <span class="text-muted">stunizhengjia</span>
<a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/timer/1.htm">timer</a>
                                    <div>最近因工作的需要,用到了spring的定时任务的功能,觉得spring还是很智能化的,只需要配置一下配置文件就可以了,在此记录一下,以便以后用到: 
  
  
//------------------------定时任务调用的方法------------------------------
    /**
     * 存储过程定时器
    */
    publi</div>
                                </li>
                                <li><a href="/article/3719.htm"
                                       title="ITeye 8月技术图书有奖试读获奖名单公布" target="_blank">ITeye 8月技术图书有奖试读获奖名单公布</a>
                                    <span class="text-muted">ITeye管理员</span>
<a class="tag" taget="_blank" href="/search/%E6%B4%BB%E5%8A%A8/1.htm">活动</a>
                                    <div>ITeye携手博文视点举办的8月技术图书有奖试读活动已圆满结束,非常感谢广大用户对本次活动的关注与参与。 
 
 
8月试读活动回顾: 
http://webmaster.iteye.com/blog/2102830 
 
 
本次技术图书试读活动的优秀奖获奖名单及相应作品如下(优秀文章有很多,但名额有限,没获奖并不代表不优秀): 
 
 
《跨终端Web》 
 
 
 
 gleams:http</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>