React的组件和用法

基本使用:

// 从 react 的包当中引入了 React。只要你要写 React.js 组件就必须引入React, 因为react里有一种语法叫JSX,稍后会讲到JSX,要写JSX,就必须引入React
import React from 'react'
// ReactDOM 可以帮助我们把 React 组件渲染到页面上去,没有其它的作用了。它是从 react-dom 中引入的,而不是从 react 引入。
import ReactDOM from 'react-dom'

// ReactDOM里有一个render方法,功能就是把组件渲染并且构造 DOM 树,然后插入到页面上某个特定的元素上
ReactDOM.render(
// 这里就比较奇怪了,它并不是一个字符串,看起来像是纯 HTML 代码写在 JavaScript 代码里面。语法错误吗?这并不是合法的 JavaScript 代码, “在 JavaScript 写的标签的”语法叫 JSX- JavaScript XML。
  <h1>欢迎进入React的世界</h1>,
// 渲染到哪里
  document.getElementById('root')
)

元素与组件

如果代码多了之后,不可能一直在render方法里写,所以就需要把里面的代码提出来,定义一个变量,像这样:

import React from 'react'
import ReactDOM from 'react-dom'
// 这里感觉又不习惯了?这是在用JSX定义一下react元素
const app = '

欢迎进入React的世界

'
ReactDOM.render( app, document.getElementById('root') )

函数式组件( 无状态组件 PureComponent)

由于元素没有办法传递参数,所以我们就需要把之前定义的变量改为一个方法,让这个方法去return一个元素:

import React from 'react'
import ReactDOM from 'react-dom'

// 特别注意这里的写法,如果要在JSX里写js表达式(只能是表达式,不能流程控制),就需要加 {},包括注释也是一样,并且可以多层嵌套
const app = (props) => <h1>欢迎进入{props.name}的世界</h1>

ReactDOM.render(
  app({
    name: 'react'
  }),
  document.getElementById('root')
)

这里我们定义的方法实际上也是react定义组件的第一种方式-定义函数式组件,这也是无状态组件。但是这种写法不符合react的jsx的风格,更好的方式是使用以下方式进行改造

//函数式组件的标准写法
import React from 'react'
import ReactDOM from 'react-dom'

const App = (props) => <h1>欢迎进入{props.name}的世界</h1>

ReactDOM.render(
  // React组件的调用方式
  <App name="react" />,
  document.getElementById('root')
)

这样一个完整的函数式组件就定义好了。但要注意!注意!注意!组件名必须大写,否则报错。

class组件

ES6的加入让JavaScript直接支持使用class来定义一个类,react的第二种创建组件的方式就是使用的类的继承,ES6 class是目前官方推荐的使用方式,它使用了ES6标准语法来构建,看以下代码:

import React from 'react'
import ReactDOM from 'react-dom'

class App extends React.Component {
  render () {
    return (
      // 注意这里得用this.props.name, 必须用this.props
      <h1>欢迎进入{this.props.name}的世界</h1>
  	)
  }
}
ReactDOM.render(
  <App name="react" />,
  document.getElementById('root')
)

运行结果和之前完全一样,因为JS里没有真正的class,这个class只是一个语法糖, 但二者的运行机制底层运行机制不一样。

  • 函数式组件是直接调用, 在前面的代码里已经有看到
  • es6 class组件其实就是一个构造器,每次使用组件都相当于在实例化组件,像这样:
import React from 'react'
import ReactDOM from 'react-dom'

class App extends React.Component {
  render () {
    return (
  		<h1>欢迎进入{this.props.name}的世界</h1>
  	)
  }
}

const app = new App({
  name: 'react'
}).render()

ReactDOM.render(
  app,
  document.getElementById('root')
)

更老的一种方法

在16以前的版本还支持这样创建组件, 但现在的项目基本上不用

React.createClass({
  render () {
    return (
      <div>{this.props.xxx}</div>
  	)
  }
})

组件的组合、嵌套

将一个组件渲染到某一个节点里的时候,会将这个节点里原有内容覆盖

组件嵌套的方式就是将子组件写入到父组件的模板中去,且react没有Vue中的内容分发机制(slot),所以我们在一个组件的模板中只能看到父子关系

// 从 react 的包当中引入了 React 和 React.js 的组件父类 Component
// 还引入了一个React.js里的一种特殊的组件 Fragment
import React, { Component, Fragment } from 'react'
import ReactDOM from 'react-dom'

class Title extends Component {
  render () {
    return (
      <h1>欢迎进入React的世界</h1>
  	)
  }
}
class Content extends Component {
  render () {
    return (
      <p>React.js是一个构建UI的库</p>
  	)
  }
}
/** 由于每个React组件只能有一个根节点,所以要渲染多个组件的时候,需要在最外层包一个容器,如果使用div, 会生成多余的一层dom
class App extends Component {
  render () {
    return (
    	
<Content /> </div> ) } } **/</span> <span class="token comment">// 如果不想生成多余的一层dom可以使用React提供的Fragment组件在最外层进行包裹</span> <span class="token keyword">class</span> <span class="token class-name">App</span> <span class="token keyword">extends</span> <span class="token class-name">Component</span> <span class="token punctuation">{</span> <span class="token function">render</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">return</span> <span class="token punctuation">(</span> <span class="token operator"><</span>Fragment<span class="token operator">></span> <span class="token operator"><</span>Title <span class="token operator">/</span><span class="token operator">></span> <span class="token operator"><</span>Content <span class="token operator">/</span><span class="token operator">></span> <span class="token operator"><</span><span class="token operator">/</span>Fragment<span class="token operator">></span> <span class="token punctuation">)</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> ReactDOM<span class="token punctuation">.</span><span class="token function">render</span><span class="token punctuation">(</span> <span class="token operator"><</span>App<span class="token operator">/</span><span class="token operator">></span><span class="token punctuation">,</span> document<span class="token punctuation">.</span><span class="token function">getElementById</span><span class="token punctuation">(</span><span class="token string">'root'</span><span class="token punctuation">)</span> <span class="token punctuation">)</span> </code></pre> </div> </div> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1295883542479314944"></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">你可能感兴趣的:(React的组件和用法)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1896125754081603584.htm" title="(LeetCode 每日一题) 132. 分割回文串 II (动态规划dp)" target="_blank">(LeetCode 每日一题) 132. 分割回文串 II (动态规划dp)</a> <span class="text-muted">岁忧</span> <a class="tag" taget="_blank" href="/search/java%E7%89%88%E5%88%B7%E9%A2%98/1.htm">java版刷题</a><a class="tag" taget="_blank" href="/search/LeetCode/1.htm">LeetCode</a><a class="tag" taget="_blank" href="/search/leetcode/1.htm">leetcode</a><a class="tag" taget="_blank" href="/search/%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92/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/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a> <div>题目:132.分割回文串II思路:最大分割次数为n-1,也就是分割为单个字符的次数。通过动态规划dp,可以得出字符串之间的哪段是回文串。再通过动态规划dp,算出使区间[0,i]为回文分割串所需要的最小分割次数f[i]。最后答案为f[n-1],时间复杂度为0(n^2)。classSolution{public:intn;vector>v;//动态规划一:判断回文串voiddp1(strings){v</div> </li> <li><a href="/article/1896125501399953408.htm" title="前端项目中脚本文件打包,vscode中如何正确使用gtar命令" target="_blank">前端项目中脚本文件打包,vscode中如何正确使用gtar命令</a> <span class="text-muted">今天吃了嘛o</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/vscode/1.htm">vscode</a><a class="tag" taget="_blank" href="/search/ide/1.htm">ide</a> <div>1、下载gtarhttps://gnuwin32.sourceforge.net/packages/libarchive.htm2、傻瓜式安装一路下一步即可。3、配置环境变量高级系统设置”在弹出的“系统属性”窗口中,点击“环境变量”。在“系统变量”列表中找到“Path”变量,点击“编辑”。点击“新建”,将gtar可执行文件所在的目录路径(例如C:\ProgramFiles(x86)\GnuWin3</div> </li> <li><a href="/article/1896125501865521152.htm" title="一篇文章搞懂C#中的泛型类/泛型方法/泛型接口" target="_blank">一篇文章搞懂C#中的泛型类/泛型方法/泛型接口</a> <span class="text-muted">方程式sunny</span> <a class="tag" taget="_blank" href="/search/C%23/1.htm">C#</a><a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a> <div>一篇文章搞懂C#中的泛型类/泛型方法/泛型接口链接:源码提起泛型类,很多人就头疼,我也头疼。在C#中这个概念很重要,重要的向定义一个int数值类型一样,但是这个内容又不像if···else那样容易理解。我花费了两天的时间,把整个知识点梳理了一遍,希望讲清楚,也当给自己做个笔记。泛型类(GenericClasses)泛型类是一种可以处理多种数据类型的数据结构或算法模板。它允许在定义类时使用一个或多个</div> </li> <li><a href="/article/1896125500867276800.htm" title="单片机的SRAM和Flash" target="_blank">单片机的SRAM和Flash</a> <span class="text-muted">木子李2789</span> <a class="tag" taget="_blank" href="/search/%E5%8D%95%E7%89%87%E6%9C%BA/1.htm">单片机</a><a class="tag" taget="_blank" href="/search/%E5%8D%95%E7%89%87%E6%9C%BA/1.htm">单片机</a> <div>单片机的SRAM相当于内存RAM。单片机的Flash(闪存)相当于外存ROM,程序一般都是用烧录器烧录到Flash中的。Flash用于存储程序,SRAM用于存放程序运行时产生的数据。运行速度:CPU>内存SRAM>外存Flash</div> </li> <li><a href="/article/1896124997009731584.htm" title="【登月计划】DAY 4 中期 --《排产“阿尔法狗”大揭秘!美的如何用APS算法碾压对手》" target="_blank">【登月计划】DAY 4 中期 --《排产“阿尔法狗”大揭秘!美的如何用APS算法碾压对手》</a> <span class="text-muted">泛泛不谈</span> <a class="tag" taget="_blank" href="/search/0-2%E5%B2%81%E6%99%BA%E8%83%BD%E5%88%B6%E9%80%A0%E5%B7%A5%E7%A8%8B%E5%B8%88%E5%90%AF%E8%92%99/1.htm">0-2岁智能制造工程师启蒙</a><a class="tag" taget="_blank" href="/search/%E5%88%B6%E9%80%A0/1.htm">制造</a><a class="tag" taget="_blank" href="/search/%E7%BB%8F%E9%AA%8C%E5%88%86%E4%BA%AB/1.htm">经验分享</a><a class="tag" taget="_blank" href="/search/%E9%9C%80%E6%B1%82%E5%88%86%E6%9E%90/1.htm">需求分析</a> <div>目录四、乐高教学:APS系统核心模块与排产算法1.APS系统定位与价值2.APS核心模块拆解模块1:产能建模引擎(排产的“地基”)模块2:排产算法库(排产的“大脑”)模块3:动态响应模块(排产的“应急部队”)3.家电行业典型排产规则规则1:交货期优先(DueDateFirst)规则2:最小化换型时间(SMED优化)规则3:瓶颈资源最大化利用4.APS系统数据流(家电行业协同网络)5.APS实施避坑</div> </li> <li><a href="/article/1896124744793649152.htm" title="区分单片机RAM、ROM、Flash" target="_blank">区分单片机RAM、ROM、Flash</a> <span class="text-muted">Amazinqc</span> <a class="tag" taget="_blank" href="/search/%E5%8D%95%E7%89%87%E6%9C%BA/1.htm">单片机</a> <div>最近搞毕设,又一次接触到51单片机系列了,但是由于之前学习单片机的时间过去的有点久,我对单片机的有些硬件知识记得有点模糊了,现在重新翻旧账出来复习复习。单片机的RAM,学名叫随机存储器,就是一个可读可写而且速度还比较快的存储器,缺点是断电数据会丢失,在单片机中用作程序运行时所产生的中间变量的数据存储器。ROM,只读存储器,从名字就可以看出ROM生产完成后就不能再写数据,只能读取数据。后来技术发展,</div> </li> <li><a href="/article/1896124491579322368.htm" title="STM32堆和栈及变量的存储理解" target="_blank">STM32堆和栈及变量的存储理解</a> <span class="text-muted">༺༒至尊宝༒༻</span> <a class="tag" taget="_blank" href="/search/C%E8%AF%AD%E8%A8%80/1.htm">C语言</a><a class="tag" taget="_blank" href="/search/stm32/1.htm">stm32</a><a class="tag" taget="_blank" href="/search/STM32/1.htm">STM32</a><a class="tag" taget="_blank" href="/search/%E5%A0%86%E5%92%8C%E6%A0%88/1.htm">堆和栈</a> <div>STM32堆和栈及变量的存储理解转至:https://blog.csdn.net/shaynerain/article/details/71952754关于堆和栈已经是程序员的一个月经话题,大部分有是基于os层来聊的。那么,在赤裸裸的单片机下的堆和栈是什么样的分布呢?以下是网摘:刚接手STM32时,你只编写一个intmain(){while(1);}BUILD://ProgramSize:Code</div> </li> <li><a href="/article/1896124492602732544.htm" title="如何在VSCode中使用OpenAI" target="_blank">如何在VSCode中使用OpenAI</a> <span class="text-muted">WeiLai1112</span> <a class="tag" taget="_blank" href="/search/DeepSeek/1.htm">DeepSeek</a><a class="tag" taget="_blank" href="/search/vscode/1.htm">vscode</a><a class="tag" taget="_blank" href="/search/ide/1.htm">ide</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E8%BE%91%E5%99%A8/1.htm">编辑器</a> <div>如何在VSCode中使用OpenAI:从集成到应用场景详解人工智能(AI)正在改变软件开发的方式,而OpenAI提供的强大模型可以帮助开发者提升编码效率、优化工作流并自动化繁琐任务。本文将详细介绍如何在VSCode(VisualStudioCode)中使用OpenAI,集成后可以做哪些事情,以及如何充分发挥OpenAI的能力来提高生产力。1.在VSCode中使用OpenAI,可以做什么?将Open</div> </li> <li><a href="/article/1896123482614329344.htm" title="嵌入式单片机中Flash存储器控制与实现" target="_blank">嵌入式单片机中Flash存储器控制与实现</a> <span class="text-muted">嵌入式开发星球</span> <a class="tag" taget="_blank" href="/search/%E5%8D%95%E7%89%87%E6%9C%BA%E9%A1%B9%E7%9B%AE%E5%AE%9E%E6%88%98%E6%93%8D%E4%BD%9C%E4%B9%8B%E4%BC%98%E7%A7%80/1.htm">单片机项目实战操作之优秀</a><a class="tag" taget="_blank" href="/search/%E5%8D%95%E7%89%87%E6%9C%BA/1.htm">单片机</a><a class="tag" taget="_blank" href="/search/%E5%B5%8C%E5%85%A5%E5%BC%8F%E7%A1%AC%E4%BB%B6/1.htm">嵌入式硬件</a> <div>第一:嵌入式单片机内部Flash概述1.存储器的概念存储器指的是若干个存储单元的集合,每个存储单元都可以存储若干个二进制数,为了方便的操作存储单元,就为每个存储单元都分配了地址,就可以通过寻址来访问存储单元。由于计算机的处理的数据量较大,并且运算速度都很快,就要求存储器的容量更大,并且存取数据的速度更快。2.存储器的分类一般存储器按照功能划分可以分为两种:只读存储器(ROM)随机存储器(RAM)。</div> </li> <li><a href="/article/1896123483130228736.htm" title="一文讲清C++14的Type-Deduction" target="_blank">一文讲清C++14的Type-Deduction</a> <span class="text-muted">海育大厦</span> <a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a> <div>一文讲清C++14的Type-Deduction记录一下Type-Deduction:总结自:CppCon2014:ScottMeyers"TypeDeductionandWhyYouCare"文章目录一文讲清C++14的Type-DeductionType-Deduction简介一、Template规则二、auto关键字规则三、lambdacapture:四、decltype(declaredt</div> </li> <li><a href="/article/1896122978760978432.htm" title="使用Semantic Kernel:对DeepSeek添加自定义插件" target="_blank">使用Semantic Kernel:对DeepSeek添加自定义插件</a> <span class="text-muted">归-途</span> <a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/1.htm">机器学习</a><a class="tag" taget="_blank" href="/search/oneapi/1.htm">oneapi</a><a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/1.htm">机器学习</a> <div>SemanticKernel介绍SemanticKernel是一个SDK,它将OpenAI、AzureOpenAI等大型语言模型与C#、Python和Java等传统编程语言集成在一起。SemanticKernel通过允许您定义插件来实现这一点。为什么需要添加插件?大语言模型虽然具有强大的自然语言理解和生成能力,但它们通常是基于预训练的模型,其功能受限于训练时所接触的数据和任务。为大语言模型添加插件</div> </li> <li><a href="/article/1896121970978779136.htm" title="嵌入式通用学习路线整理" target="_blank">嵌入式通用学习路线整理</a> <span class="text-muted">小麦大叔</span> <a class="tag" taget="_blank" href="/search/%E5%B5%8C%E5%85%A5%E5%BC%8F%E7%9F%A5%E8%AF%86/1.htm">嵌入式知识</a><a class="tag" taget="_blank" href="/search/%E2%AD%90%E2%AD%90%E2%AD%90%E2%AD%90%E2%AD%90/1.htm">⭐⭐⭐⭐⭐</a><a class="tag" taget="_blank" href="/search/%E5%B5%8C%E5%85%A5%E5%BC%8F/1.htm">嵌入式</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/%E5%8D%95%E7%89%87%E6%9C%BA/1.htm">单片机</a><a class="tag" taget="_blank" href="/search/STM32/1.htm">STM32</a><a class="tag" taget="_blank" href="/search/%E7%89%A9%E8%81%94%E7%BD%91/1.htm">物联网</a> <div>大家好,我是小麦。从事嵌入式相关行业,差不多快有10年时间了,走过很多弯路,踩过很多坑。很多人会问,嵌入式真的没有前途吗?这个我其实也无法回答。用发展的眼光来看,万物都有周期。这个和嵌入式无关,和行业有关,一个行业的增长有关,和资本有关,和郭嘉发展有关。所以只有天时地利人和,而这个人和,就是你自己的选择。对此这是我的看法,也欢迎大家发表自己的看法。如果打算入门嵌入式学习,那就和大家聊聊嵌入式学习路</div> </li> <li><a href="/article/1896121467079290880.htm" title="OpenAI API教程" target="_blank">OpenAI API教程</a> <span class="text-muted">Jachin Huang</span> <a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%A8%A1%E5%9E%8B%E6%8C%87%E5%8D%97/1.htm">大模型指南</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E8%AF%AD%E8%A8%80%E6%A8%A1%E5%9E%8B/1.htm">语言模型</a> <div>OpenAIAPI是由OpenAI公司开发,为LLM开发人员提供的一个简单接口。通过此API能在应用程序中方便地调用OpenAI提供的大模型基础能力。OpenAI的API协议已成为LLM领域的标准。本文将首先介绍OpenAIAPI基础知识和模型,然后以ChatCompletionsAPI和EmbeddingAPI为例子介绍OpenAIAPI的用法。最后使用Embedding模型构建一个网站智能问答</div> </li> <li><a href="/article/1896121465737113600.htm" title="打卡信奥刷题(877)用C++信奥P11231[普及组/提高] [CSP-S 2024] 决斗" target="_blank">打卡信奥刷题(877)用C++信奥P11231[普及组/提高] [CSP-S 2024] 决斗</a> <span class="text-muted">Loge编程生活</span> <a class="tag" taget="_blank" href="/search/C%2B%2B/1.htm">C++</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E9%9D%92%E5%B0%91%E5%B9%B4%E7%BC%96%E7%A8%8B/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>P11231[CSP-S2024]决斗题目描述今天是小Q的生日,他得到了nnn张卡牌作为礼物。这些卡牌属于火爆的“决斗怪兽”,其中,第iii张卡代表一只攻击力为rir_iri,防御力也为rir_iri的怪兽。一场游戏分为若干回合。每回合,小Q会选择某只怪兽iii以及另一只怪兽j(i≠j)j(i\neqj)j(i=j),并让怪兽iii向怪兽jjj发起攻击。此时,若怪兽iii的攻击力小于等于怪兽jj</div> </li> <li><a href="/article/1896121087347978240.htm" title="C++深入学习笔记(19)—— 迭代器" target="_blank">C++深入学习笔记(19)—— 迭代器</a> <span class="text-muted">慎铭</span> <a class="tag" taget="_blank" href="/search/C%2B%2B%E6%B7%B1%E5%85%A5%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/1.htm">C++深入学习笔记</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/%E5%AE%B9%E5%99%A8/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>  iterator头文件中,除了为每个容器所定义的迭代器外,标准库中还额外定义了其它的迭代器类型,如下。插入迭代器(insetiterator):该类迭代器被绑定到一个容器上,可用来向容器中插入元素。流迭代器(streamiterator):该类迭代器被绑定到输入或者输出流上,可以用来遍历有关联的IO流。反向迭代器(reverseiterator):这些迭代器向后移动而不是向前移动。除了forw</div> </li> <li><a href="/article/1896120205554282496.htm" title="【设计模式】(二)工厂方法模式详解" target="_blank">【设计模式】(二)工厂方法模式详解</a> <span class="text-muted">24K钛合金镭射眼</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/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a><a class="tag" taget="_blank" href="/search/%E5%B7%A5%E5%8E%82%E6%96%B9%E6%B3%95%E6%A8%A1%E5%BC%8F/1.htm">工厂方法模式</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>结合代码示例针对工厂方法模式进行详细讲解文章目录前言一、工厂方法模式的特点二、简单工厂模式2.1代码示例2.2优缺点分析三、工厂方法模式3.1代码示例3.2优缺点分析总结前言工厂方法模式是一种创建型设计模式,旨在提供一种统一的方式来创建对象,将对象的实例化过程封装在一个单独的类中。这种模式通过定义一个公共的接口来创建对象,但允许子类决定实例化哪个类,从而将调用者和实现类解耦,提高了系统的可扩展性和</div> </li> <li><a href="/article/1896119323223715840.htm" title="清华出品Deepseek合集手册,AI学习的超强资源宝库" target="_blank">清华出品Deepseek合集手册,AI学习的超强资源宝库</a> <span class="text-muted">qq_35008050</span> <a class="tag" taget="_blank" href="/search/pdf/1.htm">pdf</a> <div>资源链接:https://pan.quark.cn/s/df8ce3ea6f4e资源链接:https://pan.quark.cn/s/3d4088555ca0资源链接:https://pan.quark.cn/s/df8ce3ea6f4e「DeepSeek资料大全」资源链接:https://pan.quark.cn/s/1352425b0645「完整版Dee...键整合包」链接:https://</div> </li> <li><a href="/article/1896119323706060800.htm" title="fp8、fp16和bp16的区别" target="_blank">fp8、fp16和bp16的区别</a> <span class="text-muted">SmallerFL</span> <a class="tag" taget="_blank" href="/search/NLP%26amp%3B%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/1.htm">NLP&机器学习</a><a class="tag" taget="_blank" href="/search/fp8/1.htm">fp8</a><a class="tag" taget="_blank" href="/search/fp16/1.htm">fp16</a><a class="tag" taget="_blank" href="/search/bp16/1.htm">bp16</a><a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a> <div>文章目录1.FP8(8-bitFloatingPoint)2.FP16(16-bitFloatingPoint)3.BP16(BrainFloatingPoint)4.总结FP8、FP16和BP16是指不同精度的浮点数格式,主要用于计算机图形学和机器学习等领域。它们的区别在于表示数字的位数、精度和范围。1.FP8(8-bitFloatingPoint)位数:FP8使用8位来表示浮点数。精度和范围:</div> </li> <li><a href="/article/1896119196882890752.htm" title="Arduino雨水传感器接口教程:检测降雨并测量雨量强度" target="_blank">Arduino雨水传感器接口教程:检测降雨并测量雨量强度</a> <span class="text-muted">星际编程喵</span> <a class="tag" taget="_blank" href="/search/Python%E6%8E%A2%E7%B4%A2%E4%B9%8B%E6%97%85/1.htm">Python探索之旅</a><a class="tag" taget="_blank" href="/search/%E5%8D%95%E7%89%87%E6%9C%BA/1.htm">单片机</a><a class="tag" taget="_blank" href="/search/%E5%B5%8C%E5%85%A5%E5%BC%8F%E7%A1%AC%E4%BB%B6/1.htm">嵌入式硬件</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/1.htm">机器学习</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E7%A1%AC%E4%BB%B6%E5%B7%A5%E7%A8%8B/1.htm">硬件工程</a> <div>前言你是否曾被突如其来的大雨困在门口,望着天上的乌云无奈叹气?或者在大雨滂沱时,想过“要是我能提前知道有雨该有多好”?又或者你想制作一个智能雨天报警系统,但又不知从何下手?别担心,Arduino雨水传感器来帮忙!本教程将带你轻松上手,从硬件接线到代码编写,实现降雨检测与雨量强度测量,让你的Arduino不仅能控制灯光和温度,还能“读懂”天气,成为你生活中的天气助手。在本文中,我们将详细介绍如何将雨</div> </li> <li><a href="/article/1896118944197046272.htm" title="flash和ram的区别" target="_blank">flash和ram的区别</a> <span class="text-muted">高龄新手</span> <a class="tag" taget="_blank" href="/search/STM32%E5%AD%A6%E4%B9%A0%E8%AE%B0%E5%BD%95/1.htm">STM32学习记录</a><a class="tag" taget="_blank" href="/search/flash/1.htm">flash</a> <div>flash和ram的区别:FLASH和RAM最大的区别是,FLASH是掉电保持的,RAM是掉电丢失的。也就是说在关掉电源之后,储存在FLASH中的数据还是在FLASH里面,储存在RAM中的数据会随着电源关闭而丢失。</div> </li> <li><a href="/article/1896118944704557056.htm" title="深入解析SpringMVC中Http响应的实现机制" target="_blank">深入解析SpringMVC中Http响应的实现机制</a> <span class="text-muted">上官美丽</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%8D%8F%E8%AE%AE/1.htm">网络协议</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>在Web应用开发中,处理HTTP请求并返回相应的HTTP响应是核心任务之一。SpringMVC作为Java生态中广泛使用的Web框架,提供了灵活且强大的机制来处理HTTP请求和生成HTTP响应。本文将深入探讨SpringMVC中如何实现HTTP响应的返回,涵盖从控制器方法的返回值到最终生成HTTP响应的完整流程。1.SpringMVC处理HTTP请求的流程在SpringMVC中,HTTP请求的处理</div> </li> <li><a href="/article/1896118941315559424.htm" title="Unity基础——List的用法" target="_blank">Unity基础——List的用法</a> <span class="text-muted">鱼儿-1226</span> <a class="tag" taget="_blank" href="/search/unity3d/1.htm">unity3d</a><a class="tag" taget="_blank" href="/search/unity/1.htm">unity</a><a class="tag" taget="_blank" href="/search/list/1.htm">list</a><a class="tag" taget="_blank" href="/search/%E6%B8%B8%E6%88%8F%E5%BC%95%E6%93%8E/1.htm">游戏引擎</a> <div>一、List的方法和属性Capacity:用于获取或设置List可容纳元素的数量。当数量超过容量时,这个值会自动增长。您可以设置这个值以减少容量,也可以调用trin()方法来减少容量以适合实际的元素数目。Count:属性,用于获取数组中当前元素数量Item():通过指定索引获取或设置元素。对于List类来说,它是一个索引器。Add():在List中添加一个对象的公有方法AddRange()公有方法</div> </li> <li><a href="/article/1896118689166585856.htm" title="查询orace 表属性SQL" target="_blank">查询orace 表属性SQL</a> <span class="text-muted">元气满满的码农</span> <a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a> <div>工作中要写系统文档,需要导出字段的说明,用这个sql导成excel很方便SELECTa.column_nameAS字段,a.data_typeAS数据类型,a.data_lengthAS长度,a.nullableAS是否为空,a.data_defaultAS默认值,b.commentsAS注释FROMuser_tab_columnsaLEFTJOINuser_col_commentsbONb.co</div> </li> <li><a href="/article/1896117680935596032.htm" title="015结构体基础" target="_blank">015结构体基础</a> <span class="text-muted">Bardb</span> <a class="tag" taget="_blank" href="/search/C%E8%AF%AD%E8%A8%80/1.htm">C语言</a><a class="tag" taget="_blank" href="/search/vscode/1.htm">vscode</a><a class="tag" taget="_blank" href="/search/c%E8%AF%AD%E8%A8%80/1.htm">c语言</a> <div>一、结构体基本概念和定义C语言提供了众多的基本类型,但现实生活中的对象一般都不是单纯的整型、浮点型或字符串,而是这些基本类型的综合体。比如一个学生,典型地应该拥有学号(整型)、姓名(字符串)、分数(浮点型)、性别(枚举)等不同侧面的属性,这些所有的属性都不应该被拆分开来,而是应该组成一个整体,代表一个完整的学生。在C语言中,可以使用结构体来将多种不同的数据类型组装起来,形成某种现实意义的自定义的变</div> </li> <li><a href="/article/1896117681891897344.htm" title="关于openAI接口的使用(个人学习总结)" target="_blank">关于openAI接口的使用(个人学习总结)</a> <span class="text-muted">暗雾飘扬</span> <a class="tag" taget="_blank" href="/search/python%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0_%E5%AE%9E%E9%AA%8C%E9%A1%B9%E7%9B%AE/1.htm">python机器学习_实验项目</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a> <div>文章目录背景OpenAIOpenAI的三种使用方法模型python的openai库根据文档自定义request函数http请求构成接口的响应构成自定义请求和接收函数背景在使用OpenAIAPI接口时遇到了许多问题,在此总结个人的问题(不代表大众),如要深究请看官方OpenAI-API接口文档(中文版)。OpenAIOpenAI的三种使用方法1、使用OpenAIAPI2、使用第三方库3、自己训练模型</div> </li> <li><a href="/article/1896117553592332288.htm" title="SCI分区标准" target="_blank">SCI分区标准</a> <span class="text-muted">黄昏ivi</span> <a class="tag" taget="_blank" href="/search/%E7%94%B5%E6%B0%94%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5/1.htm">电气基本概念</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E5%B8%83%E5%BC%8F/1.htm">分布式</a> <div>‌SCI几区是指SCI期刊根据不同的评价标准被划分为不同的区域,通常分为四个区域:一区、二区、三区和四区。‌‌SCI期刊的分区标准SCI期刊的分区主要有两种标准:‌JCR分区‌:根据期刊的影响因子(IF值)进行划分。具体来说,前5%的期刊被归为一区,前20%的期刊为二区,前50%的期刊为三区,剩下的为四区。‌中国科学院分区‌:将期刊按照影响因子分为四个区域。一区期刊是影响因子前5%的期刊,二区是前</div> </li> <li><a href="/article/1896117554028539904.htm" title="pip指令及其用法" target="_blank">pip指令及其用法</a> <span class="text-muted">大侠升</span> <a class="tag" taget="_blank" href="/search/%E6%8C%87%E4%BB%A4%E5%A4%A7%E5%85%A8/1.htm">指令大全</a><a class="tag" taget="_blank" href="/search/pip/1.htm">pip</a> <div>pip是Python的包管理工具,用于安装、升级和管理Python包。下面是一些常用的pip指令及其用法:1.安装包安装一个包,默认从PyPI安装:pipinstall例如:pipinstallnumpy2.安装指定版本的包安装指定版本的包:pipinstall==例如:pipinstallnumpy==1.19.33.升级包升级已安装的包到最新版本:pipinstall--upgrade例如:p</div> </li> <li><a href="/article/1896117554569605120.htm" title="第二九课:HarmonyOS Next设备特性访问与权限管理实践" target="_blank">第二九课:HarmonyOS Next设备特性访问与权限管理实践</a> <span class="text-muted">小_铁</span> <a class="tag" taget="_blank" href="/search/Harmony/1.htm">Harmony</a><a class="tag" taget="_blank" href="/search/OS/1.htm">OS</a><a class="tag" taget="_blank" href="/search/Next/1.htm">Next</a><a class="tag" taget="_blank" href="/search/harmonyos/1.htm">harmonyos</a><a class="tag" taget="_blank" href="/search/%E5%8D%8E%E4%B8%BA/1.htm">华为</a> <div>一、设备特性访问的技术实现HarmonyOSNext通过系统级能力重构设备访问模式,为开发者提供了安全高效的设备交互方案:‌统一设备接口调用‌基于ArkTS语言的@ohos.multimedia.camera等API模块,实现摄像头、麦克风等设备的标准化调用,支持4K视频流采集与AI降噪处理‌23。新增设备抽象层(DeviceAbstractionLayer),自动适配不同硬件厂商的驱动协议,降低</div> </li> <li><a href="/article/1896117175601655808.htm" title="FLASH与RAM" target="_blank">FLASH与RAM</a> <span class="text-muted">AARON_MJT</span> <a class="tag" taget="_blank" href="/search/STM32/1.htm">STM32</a><a class="tag" taget="_blank" href="/search/%E5%8D%95%E7%89%87%E6%9C%BA/1.htm">单片机</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%B5%8C%E5%85%A5%E5%BC%8F%E7%A1%AC%E4%BB%B6/1.htm">嵌入式硬件</a> <div>STM32内的FLASH与RAMFLASH1、什么是FLASH?FLASH的作用是什么?2、NandFlash&NorFlashRAM1、什么是RAM?RAM的作用?内存分区1、四区分配2、单片机的程序存储3、STM32有两部分内存空间4、为什么会有RAM1和RAM2?5、怎样将变量存储在CMM内存中?6、将实时操作系统的数据存放在CCM单片机的flash和RAM,相当于电脑的硬盘和内存条FLAS</div> </li> <li><a href="/article/1896116545860464640.htm" title="IDEA修改recent project的路径" target="_blank">IDEA修改recent project的路径</a> <span class="text-muted">胖毁青春,瘦解百病</span> <a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/IDEA/1.htm">IDEA</a> <div>有时候需要将某些项目统一放到另外一个工作区间,此时可以通过修改下面的文件来解决文件路径问题C:\Users%username%.IntelliJIdea2019.3\config\options\recentProjects.xml.IntelliJIdea2019.3为2019年IDEA的路径,2020年后面升级之后移动到了C:\Users%username%\AppData\Roaming\J</div> </li> <li><a href="/article/8.htm" title="LeetCode[Math] - #66 Plus One" target="_blank">LeetCode[Math] - #66 Plus One</a> <span class="text-muted">Cwind</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/LeetCode/1.htm">LeetCode</a><a class="tag" taget="_blank" href="/search/%E9%A2%98%E8%A7%A3/1.htm">题解</a><a class="tag" taget="_blank" href="/search/Algorithm/1.htm">Algorithm</a><a class="tag" taget="_blank" href="/search/Math/1.htm">Math</a> <div>原题链接:#66 Plus One   要求: 给定一个用数字数组表示的非负整数,如num1 = {1, 2, 3, 9}, num2 = {9, 9}等,给这个数加上1。 注意: 1. 数字的较高位存在数组的头上,即num1表示数字1239 2. 每一位(数组中的每个元素)的取值范围为0~9   难度:简单   分析: 题目比较简单,只须从数组</div> </li> <li><a href="/article/135.htm" title="JQuery中$.ajax()方法参数详解" target="_blank">JQuery中$.ajax()方法参数详解</a> <span class="text-muted">AILIKES</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/jsonp/1.htm">jsonp</a><a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a><a class="tag" taget="_blank" href="/search/Ajax/1.htm">Ajax</a><a class="tag" taget="_blank" href="/search/json/1.htm">json</a> <div>url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址。 type: 要求为String类型的参数,请求方式(post或get)默认为get。注意其他http请求方法,例如put和    delete也可以使用,但仅部分浏览器支持。 timeout: 要求为Number类型的参数,设置请求超时时间(毫秒)。此设置将覆盖$.ajaxSetup()方法的全局</div> </li> <li><a href="/article/262.htm" title="JConsole & JVisualVM远程监视Webphere服务器JVM" target="_blank">JConsole & JVisualVM远程监视Webphere服务器JVM</a> <span class="text-muted">Kai_Ge</span> <a class="tag" taget="_blank" href="/search/JVisualVM/1.htm">JVisualVM</a><a class="tag" taget="_blank" href="/search/JConsole/1.htm">JConsole</a><a class="tag" taget="_blank" href="/search/Webphere/1.htm">Webphere</a> <div>    JConsole是JDK里自带的一个工具,可以监测Java程序运行时所有对象的申请、释放等动作,将内存管理的所有信息进行统计、分析、可视化。我们可以根据这些信息判断程序是否有内存泄漏问题。   使用JConsole工具来分析WAS的JVM问题,需要进行相关的配置。   首先我们看WAS服务器端的配置.   1、登录was控制台https://10.4.119.18</div> </li> <li><a href="/article/389.htm" title="自定义annotation" target="_blank">自定义annotation</a> <span class="text-muted">120153216</span> <a class="tag" taget="_blank" href="/search/annotation/1.htm">annotation</a> <div>Java annotation 自定义注释@interface的用法 一、什么是注释      说起注释,得先提一提什么是元数据(metadata)。所谓元数据就是数据的数据。也就是说,元数据是描述数据的。就象数据表中的字段一样,每个字段描述了这个字段下的数据的含义。而J2SE5.0中提供的注释就是java源代码的元数据,也就是说注释是描述java源</div> </li> <li><a href="/article/516.htm" title="CentOS 5/6.X 使用 EPEL YUM源" target="_blank">CentOS 5/6.X 使用 EPEL YUM源</a> <span class="text-muted">2002wmj</span> <a class="tag" taget="_blank" href="/search/centos/1.htm">centos</a> <div>CentOS 6.X 安装使用EPEL YUM源1. 查看操作系统版本[root@node1 ~]# uname -a Linux node1.test.com 2.6.32-358.el6.x86_64 #1 SMP Fri Feb 22 00:31:26 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux [root@node1 ~]#</div> </li> <li><a href="/article/643.htm" title="在SQLSERVER中查找缺失和无用的索引SQL" target="_blank">在SQLSERVER中查找缺失和无用的索引SQL</a> <span class="text-muted">357029540</span> <a class="tag" taget="_blank" href="/search/SQL+Server/1.htm">SQL Server</a> <div>--缺失的索引 SELECT  avg_total_user_cost * avg_user_impact * ( user_scans + user_seeks ) AS PossibleImprovement ,          last_user_seek ,    </div> </li> <li><a href="/article/770.htm" title="Spring3 MVC 笔记(二) —json+rest优化" target="_blank">Spring3 MVC 笔记(二) —json+rest优化</a> <span class="text-muted">7454103</span> <a class="tag" taget="_blank" href="/search/Spring3+MVC/1.htm">Spring3 MVC</a> <div>接上次的 spring mvc 注解的一些详细信息!                          其实也是一些个人的学习笔记  呵呵! </div> </li> <li><a href="/article/897.htm" title="替换“\”的时候报错Unexpected internal error near index 1 \ ^" target="_blank">替换“\”的时候报错Unexpected internal error near index 1 \ ^</a> <span class="text-muted">adminjun</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E2%80%9C%5C%E6%9B%BF%E6%8D%A2%E2%80%9D/1.htm">“\替换”</a> <div>发现还是有些东西没有刻子脑子里,,过段时间就没什么概念了,所以贴出来...以免再忘...   在拆分字符串时遇到通过 \ 来拆分,可是用所以想通过转义 \\ 来拆分的时候会报异常   public class Main {          /*</div> </li> <li><a href="/article/1024.htm" title="POJ 1035 Spell checker(哈希表)" target="_blank">POJ 1035 Spell checker(哈希表)</a> <span class="text-muted">aijuans</span> <a class="tag" taget="_blank" href="/search/%E6%9A%B4%E5%8A%9B%E6%B1%82%E8%A7%A3--%E5%93%88%E5%B8%8C%E8%A1%A8/1.htm">暴力求解--哈希表</a> <div>/* 题意:输入字典,然后输入单词,判断字典中是否出现过该单词,或者是否进行删除、添加、替换操作,如果是,则输出对应的字典中的单词 要求按照输入时候的排名输出 题解:建立两个哈希表。一个存储字典和输入字典中单词的排名,一个进行最后输出的判重 */ #include <iostream> //#define using namespace std; const int HASH =</div> </li> <li><a href="/article/1151.htm" title="通过原型实现javascript Array的去重、最大值和最小值" target="_blank">通过原型实现javascript Array的去重、最大值和最小值</a> <span class="text-muted">ayaoxinchao</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/array/1.htm">array</a><a class="tag" taget="_blank" href="/search/prototype/1.htm">prototype</a> <div>用原型函数(prototype)可以定义一些很方便的自定义函数,实现各种自定义功能。本次主要是实现了Array的去重、获取最大值和最小值。 实现代码如下:   <script type="text/javascript"> Array.prototype.unique = function() { var a = {}; var le</div> </li> <li><a href="/article/1278.htm" title="UIWebView实现https双向认证请求" target="_blank">UIWebView实现https双向认证请求</a> <span class="text-muted">bewithme</span> <a class="tag" taget="_blank" href="/search/UIWebView/1.htm">UIWebView</a><a class="tag" taget="_blank" href="/search/https/1.htm">https</a><a class="tag" taget="_blank" href="/search/Objective-C/1.htm">Objective-C</a> <div>          什么是HTTPS双向认证我已在先前的博文 ASIHTTPRequest实现https双向认证请求 中有讲述,不理解的读者可以先复习一下。本文是用UIWebView来实现对需要客户端证书验证的服务请求,网上有些文章中有涉及到此内容,但都只言片语,没有讲完全,更没有完整的代码,让人困扰不已。但是此知</div> </li> <li><a href="/article/1405.htm" title="NoSQL数据库之Redis数据库管理(Redis高级应用之事务处理、持久化操作、pub_sub、虚拟内存)" target="_blank">NoSQL数据库之Redis数据库管理(Redis高级应用之事务处理、持久化操作、pub_sub、虚拟内存)</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/redis/1.htm">redis</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/NoSQL/1.htm">NoSQL</a> <div>3.事务处理         Redis对事务的支持目前不比较简单。Redis只能保证一个client发起的事务中的命令可以连续的执行,而中间不会插入其他client的命令。当一个client在一个连接中发出multi命令时,这个连接会进入一个事务上下文,该连接后续的命令不会立即执行,而是先放到一个队列中,当执行exec命令时,redis会顺序的执行队列中</div> </li> <li><a href="/article/1532.htm" title="各数据库分页sql备忘" target="_blank">各数据库分页sql备忘</a> <span class="text-muted">bingyingao</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E9%A1%B5/1.htm">分页</a> <div>ORACLE 下面这个效率很低 SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM IPAY_RCD_FS_RETURN order by id desc) A ) WHERE RN <20; 下面这个效率很高 SELECT A.*, ROWNUM RN FROM (SELECT * FROM IPAY_RCD_</div> </li> <li><a href="/article/1659.htm" title="【Scala七】Scala核心一:函数" target="_blank">【Scala七】Scala核心一:函数</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/scala/1.htm">scala</a> <div>1. 如果函数体只有一行代码,则可以不用写{},比如 def print(x: Int) = println(x) 一行上的多条语句用分号隔开,则只有第一句属于方法体,例如   def printWithValue(x: Int) : String= println(x); "ABC"   上面的代码报错,因为,printWithValue的方法</div> </li> <li><a href="/article/1786.htm" title="了解GHC的factorial编译过程" target="_blank">了解GHC的factorial编译过程</a> <span class="text-muted">bookjovi</span> <a class="tag" taget="_blank" href="/search/haskell/1.htm">haskell</a> <div>GHC相对其他主流语言的编译器或解释器还是比较复杂的,一部分原因是haskell本身的设计就不易于实现compiler,如lazy特性,static typed,类型推导等。 关于GHC的内部实现有篇文章说的挺好,这里,文中在RTS一节中详细说了haskell的concurrent实现,里面提到了green thread,如果熟悉Go语言的话就会发现,ghc的concurrent实现和Go有点类</div> </li> <li><a href="/article/1913.htm" title="Java-Collections Framework学习与总结-LinkedHashMap" target="_blank">Java-Collections Framework学习与总结-LinkedHashMap</a> <span class="text-muted">BrokenDreams</span> <a class="tag" taget="_blank" href="/search/LinkedHashMap/1.htm">LinkedHashMap</a> <div>        前面总结了java.util.HashMap,了解了其内部由散列表实现,每个桶内是一个单向链表。那有没有双向链表的实现呢?双向链表的实现会具备什么特性呢?来看一下HashMap的一个子类——java.util.LinkedHashMap。       </div> </li> <li><a href="/article/2040.htm" title="读《研磨设计模式》-代码笔记-抽象工厂模式-Abstract Factory" target="_blank">读《研磨设计模式》-代码笔记-抽象工厂模式-Abstract Factory</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/abstract/1.htm">abstract</a> <div>声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/ package design.pattern; /* * Abstract Factory Pattern * 抽象工厂模式的目的是: * 通过在抽象工厂里面定义一组产品接口,方便地切换“产品簇” * 这些接口是相关或者相依赖的</div> </li> <li><a href="/article/2167.htm" title="压暗面部高光" target="_blank">压暗面部高光</a> <span class="text-muted">cherishLC</span> <a class="tag" taget="_blank" href="/search/PS/1.htm">PS</a> <div>方法一、压暗高光&重新着色 当皮肤很油又使用闪光灯时,很容易在面部形成高光区域。 下面讲一下我今天处理高光区域的心得: 皮肤可以分为纹理和色彩两个属性。其中纹理主要由亮度通道(Lab模式的L通道)决定,色彩则由a、b通道确定。 处理思路为在保持高光区域纹理的情况下,对高光区域着色。具体步骤为:降低高光区域的整体的亮度,再进行着色。 如果想简化步骤,可以只进行着色(参看下面的步骤1</div> </li> <li><a href="/article/2294.htm" title="Java VisualVM监控远程JVM" target="_blank">Java VisualVM监控远程JVM</a> <span class="text-muted">crabdave</span> <a class="tag" taget="_blank" href="/search/visualvm/1.htm">visualvm</a> <div>Java VisualVM监控远程JVM    JDK1.6开始自带的VisualVM就是不错的监控工具. 这个工具就在JAVA_HOME\bin\目录下的jvisualvm.exe, 双击这个文件就能看到界面   通过JMX连接远程机器, 需要经过下面的配置: 1. 修改远程机器JDK配置文件 (我这里远程机器是linux).    </div> </li> <li><a href="/article/2421.htm" title="Saiku去掉登录模块" target="_blank">Saiku去掉登录模块</a> <span class="text-muted">daizj</span> <a class="tag" taget="_blank" href="/search/saiku/1.htm">saiku</a><a class="tag" taget="_blank" href="/search/%E7%99%BB%E5%BD%95/1.htm">登录</a><a class="tag" taget="_blank" href="/search/olap/1.htm">olap</a><a class="tag" taget="_blank" href="/search/BI/1.htm">BI</a> <div> 1、修改applicationContext-saiku-webapp.xml <security:intercept-url pattern="/rest/**" access="IS_AUTHENTICATED_ANONYMOUSLY" />  <security:intercept-url pattern=&qu</div> </li> <li><a href="/article/2548.htm" title="浅析 Flex中的Focus" target="_blank">浅析 Flex中的Focus</a> <span class="text-muted">dsjt</span> <a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/Flex/1.htm">Flex</a><a class="tag" taget="_blank" href="/search/Flash/1.htm">Flash</a> <div>关键字:focus、 setFocus、 IFocusManager、KeyboardEvent 焦点、设置焦点、获得焦点、键盘事件 一、无焦点的困扰——组件监听不到键盘事件 原因:只有获得焦点的组件(确切说是InteractiveObject)才能监听到键盘事件的目标阶段;键盘事件(flash.events.KeyboardEvent)参与冒泡阶段,所以焦点组件的父项(以及它爸</div> </li> <li><a href="/article/2675.htm" title="Yii全局函数使用" target="_blank">Yii全局函数使用</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/yii/1.htm">yii</a> <div>由于YII致力于完美的整合第三方库,它并没有定义任何全局函数。yii中的每一个应用都需要全类别和对象范围。例如,Yii::app()->user;Yii::app()->params['name'];等等。我们可以自行设定全局函数,使得代码看起来更加简洁易用。(原文地址) 我们可以保存在globals.php在protected目录下。然后,在入口脚本index.php的,我们包括在</div> </li> <li><a href="/article/2802.htm" title="设计模式之单例模式二(解决无序写入的问题)" target="_blank">设计模式之单例模式二(解决无序写入的问题)</a> <span class="text-muted">come_for_dream</span> <a class="tag" taget="_blank" href="/search/%E5%8D%95%E4%BE%8B%E6%A8%A1%E5%BC%8F/1.htm">单例模式</a><a class="tag" taget="_blank" href="/search/volatile/1.htm">volatile</a><a class="tag" taget="_blank" href="/search/%E4%B9%B1%E5%BA%8F%E6%89%A7%E8%A1%8C/1.htm">乱序执行</a><a class="tag" taget="_blank" href="/search/%E5%8F%8C%E9%87%8D%E6%A3%80%E9%AA%8C%E9%94%81/1.htm">双重检验锁</a> <div>                在上篇文章中我们使用了双重检验锁的方式避免懒汉式单例模式下由于多线程造成的实例被多次创建的问题,但是因为由于JVM为了使得处理器内部的运算单元能充分利用,处理器可能会对输入代码进行乱序执行(Out Of Order Execute)优化,处理器会在计算之后将乱序执行的结果进行重组,保证该</div> </li> <li><a href="/article/2929.htm" title="程序员从初级到高级的蜕变" target="_blank">程序员从初级到高级的蜕变</a> <span class="text-muted">gcq511120594</span> <a class="tag" taget="_blank" href="/search/%E6%A1%86%E6%9E%B6/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/PHP/1.htm">PHP</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/html5/1.htm">html5</a> <div>软件开发是一个奇怪的行业,市场远远供不应求。这是一个已经存在多年的问题,而且随着时间的流逝,愈演愈烈。 我们严重缺乏能够满足需求的人才。这个行业相当年轻。大多数软件项目是失败的。几乎所有的项目都会超出预算。我们解决问题的最佳指导方针可以归结为——“用一些通用方法去解决问题,当然这些方法常常不管用,于是,唯一能做的就是不断地尝试,逐个看看是否奏效”。 现在我们把淫浸代码时间超过3年的开发人员称为</div> </li> <li><a href="/article/3056.htm" title="Reverse Linked List" target="_blank">Reverse Linked List</a> <span class="text-muted">hcx2013</span> <a class="tag" taget="_blank" href="/search/list/1.htm">list</a> <div>Reverse a singly linked list.   /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ p</div> </li> <li><a href="/article/3183.htm" title="Spring4.1新特性——数据库集成测试" target="_blank">Spring4.1新特性——数据库集成测试</a> <span class="text-muted">jinnianshilongnian</span> <a class="tag" taget="_blank" href="/search/spring+4.1/1.htm">spring 4.1</a> <div>目录 Spring4.1新特性——综述 Spring4.1新特性——Spring核心部分及其他 Spring4.1新特性——Spring缓存框架增强 Spring4.1新特性——异步调用和事件机制的异常处理 Spring4.1新特性——数据库集成测试脚本初始化 Spring4.1新特性——Spring MVC增强 Spring4.1新特性——页面自动化测试框架Spring MVC T</div> </li> <li><a href="/article/3310.htm" title="C# Ajax上传图片同时生成微缩图(附Demo)" target="_blank">C# Ajax上传图片同时生成微缩图(附Demo)</a> <span class="text-muted">liyonghui160com</span> <div>    1.Ajax无刷新上传图片,详情请阅我的这篇文章。(jquery + c# ashx)         2.C#位图处理  System.Drawing。         3.最新demo支持IE7,IE8,Fir</div> </li> <li><a href="/article/3437.htm" title="Java list三种遍历方法性能比较" target="_blank">Java list三种遍历方法性能比较</a> <span class="text-muted">pda158</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>从c/c++语言转向java开发,学习java语言list遍历的三种方法,顺便测试各种遍历方法的性能,测试方法为在ArrayList中插入1千万条记录,然后遍历ArrayList,发现了一个奇怪的现象,测试代码例如以下: package com.hisense.tiger.list; import java.util.ArrayList; import java.util.Iterator;</div> </li> <li><a href="/article/3564.htm" title="300个涵盖IT各方面的免费资源(上)——商业与市场篇" target="_blank">300个涵盖IT各方面的免费资源(上)——商业与市场篇</a> <span class="text-muted">shoothao</span> <a class="tag" taget="_blank" href="/search/seo/1.htm">seo</a><a class="tag" taget="_blank" href="/search/%E5%95%86%E4%B8%9A%E4%B8%8E%E5%B8%82%E5%9C%BA/1.htm">商业与市场</a><a class="tag" taget="_blank" href="/search/IT%E8%B5%84%E6%BA%90/1.htm">IT资源</a><a class="tag" taget="_blank" href="/search/%E5%85%8D%E8%B4%B9%E8%B5%84%E6%BA%90/1.htm">免费资源</a> <div> A.网站模板+logo+服务器主机+发票生成 HTML5 UP:响应式的HTML5和CSS3网站模板。 Bootswatch:免费的Bootstrap主题。 Templated:收集了845个免费的CSS和HTML5网站模板。 Wordpress.org|Wordpress.com:可免费创建你的新网站。 Strikingly:关注领域中免费无限的移动优</div> </li> <li><a href="/article/3691.htm" title="localStorage、sessionStorage" target="_blank">localStorage、sessionStorage</a> <span class="text-muted">uule</span> <a class="tag" taget="_blank" href="/search/localStorage/1.htm">localStorage</a> <div>W3School 例子   HTML5 提供了两种在客户端存储数据的新方法: localStorage - 没有时间限制的数据存储 sessionStorage - 针对一个 session 的数据存储   之前,这些都是由 cookie 完成的。但是 cookie 不适合大量数据的存储,因为它们由每个对服务器的请求来传递,这使得 cookie 速度很慢而且效率也不</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>