来源:FreeMarker 模板引擎快速入门 与 生成Word文档终极解决方案_freemark word 字体_蚩尤后裔的博客-CSDN博客
FreeMarker 模板引擎概述
1、Apache FreeMarker 是一个模板引擎:一个基于模板和不断变化的数据生成文本输出(HTML网页、电子邮件、配置文件、源代码等)的 Java 库。
2、市面上主流的 Java 模板引擎有:JSP、Velocity、Freemarker、Thymeleaf,Spring Boot 官方支持:Thymeleaf Templates、FreeMarker Templates、Groovy Templates 等模板引擎。

3、虽然 FreeMarker 最初是为在 mvc web 应用程序框架中生成 HTML 页面而创建的,但它并没有绑定到 servlet 或 HTML 或任何与 web 相关的内容,它也用于非 web 应用程序环境。
4、FreeMarker 的一些亮点特性:
1)强大的模板语言:条件块、迭代、赋值、字符串和算术运算和格式化、宏和函数(包括其他模板)、默认转义(可选)等
2)多用途和轻量级:零依赖,任何输出格式,可以从任何地方加载模板(可插拔),许多配置选项
3)国际化/本地化意识:对区域设置敏感的数字和日期/时间格式,本地化的模板变体。
4)XML处理功能:将XMLDOM-s放入数据模型中并遍历它们,甚至以声明方式处理它们
5)多功能数据模型:Java对象通过可插拔适配器作为变量树公开给模板,这决定了模板如何看待它们。
5、参考网址:
Apache FreeMarker 官网地址:https://freemarker.apache.org/、
官方原版英文使用手册:https://freemarker.apache.org/docs/index.html
翻译版中文在线手册:http://freemarker.foofun.cn/index.html
通用目标 |
1、能够生成各种文本:HTML、XML、RTF、Java 源代码等等 2、易于嵌入到产品中:轻量级;不需要 Servlet 环境 3、插件式模板载入器:可以从任何源载入模板,如本地文件、数据库等等 4、可以按所需生成文本:保存到本地文件;作为Email发送;从Web应用程序发送它返回给Web浏览器 |
强大的模板语言 |
1、含有所有常用的指令:include、if/elseif/else、循环结构 2、在模板中创建和改变变量 3、几乎在任何地方都可以使用复杂表达式来指定值 4、命名的宏,可以具有位置参数和嵌套内容 5、名字空间有助于建立和维护可重用的宏库,或者将一个大工程分成模块,而不必担心名字冲突 6、输出转换块:在嵌套模板片段生成输出时,转换HTML转义、压缩、语法高亮等等; |
通用数据模型 |
1、FreeMarker不是直接反射到Java对象,Java对象通过插件式对象封装,以变量方式在模板中显示 2、可以使用抽象(接口)方式表示对象(JavaBean、XML文档、SQL查询结果集等等),告诉模板开发者使用方法,使其不受技术细节的打扰 |
智能的国际化和本地化 |
1、字符集智能化(内部使用UNICODE) 2、数字格式本地化敏感 3、日期和时间格式本地化敏感 4、非US字符集可以用作标识(如变量名) 5、多种不同语言的相同模板 |
强大的XML处理能力 |
1、<#recurse> 和<#visit>指令(2.3版本)用于递归遍历XML树 2、在模板中清楚和直觉的访问XML对象模型 |
网页静态化 |
使用如 Freemarker/valocity 技术将动态的页面(jsp,asp.net,php) 转换成静态的页面(如 html),再通过浏览器直接访问静态页面。 浏览器直接访问静态的页面,不需要经过程序处理,访问速度高。 稳定性好。 更有效的防止安全漏洞问题,比如不易遭受黑客攻击。 静态的页面更容易被搜索引擎收录。 |
5、学过 JSP 或者Thymeleaf 任意一种模板引擎的,学习 FreeMarker 就不难,因为语法基本类似,都是使用模板引擎的标签将后台的数据注入到模板中:Template(模板) + data-model(数据模型) = output(静态页面)。
6、相对来说,JSP 和 Thymeleaf 更相似,而 FreeMarker 静态化的模板引擎多一个模板文件,JSP 和 Thymeleaf 都是用户访问后台,然后返回数据,最后直接填充到模板中(JSP或者Html)显示,而 FreeMarker 则必须先使用 Java 代码将数据注入到模板文件中,然后生成静态文件(如 html),最后用户直接访问静态文件。
7、FreeMarker 优点:因为访问的是静态文件,就像访问一个写死的 html 文件一样,它不需要再请求数据库,所以访问速度快;FreeMarker 缺点:缺点也恰恰在此,因为只要数据发生了改变,就必须得重新将新数据注入到模板文件重新生成静态文件,否则用户容易看到过期的数据。
8、个人感受:以后前后端分离才是王道,一是前后端分离后,后台只需要提供接口,不用再写什么模板引擎的标签了,这样前后端只需要调接口即可,对双方无疑都是最好的;二是前端技术日新月异,已经不是很多年前了,展示数据完全没必要再使用 JSP、Thymeleaf 、FreeMarker 这种模板引擎了,前端自己已经有足够优秀的库和框架了。
9、FreeMarker 最常见的用途:一是网页静态化;二是做代码生成,很多代码生成器都是使用的 FreeMarker,先提供模板文件,然后将数据注入进去,最后生成源代码。
FreeMarker 模板快速入门
1、既然前后端分离才是王道,那模板引擎就不学了吗?这也不绝对,因为像 FreeMarker 除了生成网页,还可以做一些其它操作,比如生成 RFT 办公文档、生成文件作为Email发送、操作 XML 文档等等.
2、本文先一步一步练习 FreeMarker 的标签语法,后面再整合 Spring Boot。本文环境:Java JDK 1.8 + freemarker 2.3.30.
3、导入依赖如下,更多版本以及二进制 Jar 包可以从官网获取。
org.freemarker
freemarker
2.3.30
4、准备 freeMarker 模板文件,官方默认后缀名是 .ftl,理论上任意格式都可以,但是只有 .ftl 格式时,IDEA 才会有 freeMarker 模板标签的语法提示。(模板文件入门示例源码)。
5、使用 FreeMarker 提供 API 将数据模型填充到模板文件中,然后生成静态文件(静态页面生成源码)。
6、下面是演示的动图:
7、freeMarker 的语法相对 JSP 和 Thymeleaf 来说还是有些另类,但好在 IDEA 不用安装插件也能对 .ftl 文件中的 FreeMarker 语法进行提示,下面将平时开发中常见的需求汇总说明如下:
1)freeMarker 控制严格,当操作数据的值为 null 时,生成静态文件时会报错,比如 ${user},如果 user 不存在,或者 user 的值为 null,则生成静态文件时报错。
2)FTL 标记/标签(FreeMarker模板语言标记):类似于 HTML 标记/标签,为了与 HTML 标记区分,用 #或者@ 开始。
3)ftl 注释:包含在 <#-- 和 -->(而不是 )之间,生成的静态文件中是不含这些注释的。
4)ftl 严格区分大小写,如 <#list> 正确,<#LIST> 错误,${name} 和 ${NAME} 结果不一样。
5)ftl 标记不能位于另一个 FTL 标记内部,例如 <#if <#include 'foo'>='bar'>... 是错误的。
6)注释可以位于 FTL 标记和 ${xxx} 内部
7)FreeMarke r会忽略 FTL 标记中的空白字符,但是 "<"、"
${ key } key 为变量,${ key } 取值后可以直接显示内容,如:${person.pid}、${userName}
${ .now } 获取当前时间
${ key?cap_first } 首字母转大写
${ key?uncap_first } 首字母转小写
${ key?lower_case} 字母全部转小写
${ key?upper_case} 字母全部转大写
${ key.name?length} 获取字符串内容长度
${ key?size} 获取数组、集合的大小,如:${basicList?size}
${ key?replace(String substring,String replacement) } 替换子符串,如 ${personA1.name?replace("MX","猫熊")}
<#if key == "xxx">xxxx 字符串比较与数字比较一样,都是使用 ==,不等于是 != .
<#if key?contains(String substring)>xxxx 判断值是否包含子字符串(substring)
${ key?index_of(String substring)} 获取字符串的索引位置,从0开始
${ key?substring(from)}、${ key?substring(int from,int toExclusive)}
FreeMarker 不会自动进行类型转换,必须手动转换,比如 key 的值是 100001,${ key } 返回的数字,默认会使用千分位符号,所以显示的是 10,001,而 ${ key?c} 转成字符串后,则显示为 100001
${ key?c } 数字类型转字符串类型
${ key?string("currency")} 数字转货币字符串,比如 :9500.11F -> ¥9,500.11
${ key?string("percent")} 数字转百分比,比如:9500.11F -> 9,50011%
${person.birthday?date}
${person.birthday?time}
${person.birthday?datetime}
${person.birthday?string("yyyy/MM/dd HH:mm:ss")}
表示取 yyyy-MM-dd,如 2021-1-2
表示取 HH:mm:ss,如 13:02:45
表示取 yyyy-MM-dd HH:mm:ss,如 2021-1-2 13:03:06
自定义日期格式,如 2021/01/02 13:04:31
${ key?eval } 字符串类型转数字类型,整数浮点数都可以
${ key?number } 字符串类型转数字类型,整数浮点数都可以
<#if key != ""> 判断值是否为空
<#if key??> xxxx 判断值是否为 null 或者 key 不存在,如左侧所示表示当 key 的值不为 null 时,输出 xxxx。
${key!"为null时的默认值"}、${key!""}、${testNull!} 当值为 null 时,可以给出默认值,或者变为空值,!"" 可以省略为 !
<#if key>xxx 布尔值判断,如:<#if person.married>已婚, married 属性是一个 Boolean 类型。
${ key?string(String true,String false)} 如果 key 的结果为 true,则输出 true 的内容,否则输出 false 的内如,如:${p.married?string("是","否")}
${ key[int index]}、${ key[int index].xxx} 获取指定索引位置的元素,如数组、List 等等,例如:${array[0]}、${personList[2].name}
<#if person.salary < 8000>
低产阶级
<#elseif person.salary < 8000>
中产阶级
<#else >
资本家
if 指令:条件判断语句
<#list personList as person>
序号:${person_index+1},
名称:${person.name},
薪资:${person.salary?c}
list 指令:数组遍历、集合遍历。其中为变量加上后缀 _index 表示当前循环的索引,从0开始。
<#include "./commFooter.ftl"> include 指令:引入公共的模板,比如公共的头、公共的底部,或者公共的左侧菜单树等等。注意是引入模板文件,被引用的模板只需要提供公共内容即可,其它的如
等标签都不需要重复写。<br> <#assign toekn=xxx> <br> 自定义变量,如:</p>
<p><#--自定义变量,值有:普通类型、对象类型、接收后台传递的值--><br> <#assign toekn="8748378TT8Y66"><br> <#assign book={"id":"77878TTR55","name":"水浒传","price":89.88}></p>
<p>算数运算符 FreeMarker 表达式中完全支持算术运算, 包括:+、-、*、/、%<br> 逻辑运算符 &、||、!,逻辑运算符只能作用于布尔值,否则异常<br> 比较运算符 <br> ==、!=、> 或者 gt、>= 或者 gte、< 或者 lt、<= 或者 lte</p>
<p><#if book.price gte 89.88>价格大于60</#if></p>
<p><#if book.price gte 89.88 && book.name == "水浒传">水浒传价格大于60</#if></p>
<h1>Word 文档生成/导出终极解决方案</h1>
<p>1、对于 Word 文档生成/导出功能,虽然 Apache POI 也能做,但是 API 却比较繁琐,所有的格式都需要通过代码来控制,比如字体、颜色、缩进、行距、大小、标题等等,而如果使用 FreeMarker 却非常简单。</p>
<p>2、这得先归功于 Microsoft、WPS、OpenOffice 等办公软件,它们可以将 .doc、.docx 等格式的 Word 文档另存为 .xml 格式,这个 xml 文件里面存储了整个 Word 文档的内容以及格式,如果把 Word 文档比作浏览器中的网页,那么这个 xml 文件就相当于 html 文件。</p>
<p>3、你可以亲自测试一下,将 Word 文档另存为 xml 文件,然后右击保存后的 xml 文件,打开方式仍然选择 Microsoft、WPS、OpenOffice 等办公软件,可以发现和 .doc、docx 等格式完全一样。</p>
<p>4、所以 Java 应用 Word 文档导出终极解决方案如下:</p>
<p>1)先准备一个 .doc、.docx 等格式的 Word 文档模板,后期不变的内容可以直接写死,后期需要变化的内容可以自定义一些占位符先占着位置,比如 #1、#2...,然后设置好文档的格式,比如 字体、颜色、缩进、行距、大小、表格等等。<br> 2)然后将设置好格式的 Word 模板另存为 .xml 文件,使用工具(比如 notepad++ 或者网上的在线格式化工具)对 xml 文件内容进行格式化,然后导入到项目中,并修改后缀名为 .ftl。<br> 3)提供 FreeMarker 模板对应的数据模型,也就是需要往 ftl 文件中注入数据的对象,比如 Map、POJO 等等。<br> 4)然后将 ftl 模板文件中的占位符 #1、#2...使用 FreeMarker 标签进行替换,比如单个值使用 ${xxx} 取值,表格使用 <#list> 遍历等等。<br> 5)最后 Java 后台使用 FreeMarker API 将 .ftl 模板和数据模型生成 .doc 文档。<br> 6)如果是 Web 应用,需要导出文档,则可以将生成好的 .doc 文件使用 javax.servlet.ServletResponse#getWriter 打印流进行输出,让浏览器自动下载。<br> 5、如上所示,使用 FreeMarker 生成 Word 的优点如下:</p>
<p>1)因为模板的格式是提前设置好的,所以生成的 Word 文档完全和事先的预期一模一样。<br> 2)即使是再复杂的格式,只要用户事先能将 Word 文档的格式做得出来,那么 FreeMarker 就能为它注入数据,保证格式一致。<br> 3)Word 另存为 xml 后,后缀改成 ftl 的好处是 IDEA 会有 FreeMarker 语法提示,原则上不改后缀名都是可以的。<br> 4)FreeMarker 根据 xml 生成 .doc 文件和根据 ftl 生成 .html 完全一样的,FreeMarker 标签可以在任意文件中编写,比如 ftl、xml、java、js 等等。<br> 6、涉及到的在线源码如下:</p>
<p>word 源文件以及 .xml 源文件:https://github.com/wangmaoxiong/red-door/tree/master/src/test/resources/word</p>
<p>freeMarker 模板文件:https://github.com/wangmaoxiong/red-door/blob/master/src/test/resources/ftl/purchaseContract.ftl</p>
<p>FreeMarker 后台生成源码:https://github.com/wangmaoxiong/red-door/blob/master/src/test/java/com/wmx/reddoor/freeMarker/PurchaseContract.java</p>
<p>7、此种方式的优点是简单,缺点是只能生成 .doc 格式,无法生成 .docx 格式,如果需要生成 .docx 格式,则操作步骤稍微要多一点点(因为没有需求,所以暂时不讨论)。<br> ————————————————<br> 版权声明:本文为CSDN博主「蚩尤后裔」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。<br> 原文链接:https://blog.csdn.net/wangmx1993328/article/details/111824765</p>
<p></p>
<p></p>
<p></p>
<p></p>
</div>
</div>
</div>
</div>
</div>
<!--PC和WAP自适应版-->
<div id="SOHUCS" sid="1692211490150494208"></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">你可能感兴趣的:(Java,JavaWeb,FreeMark)</h4>
<div id="paradigm-article-related">
<div class="recommend-post mb30">
<ul class="widget-links">
<li><a href="/article/1897269030037811200.htm"
title="java 批量查询es_java操作ES的简单查询和bool查询" target="_blank">java 批量查询es_java操作ES的简单查询和bool查询</a>
<span class="text-muted">weixin_39831567</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E6%89%B9%E9%87%8F%E6%9F%A5%E8%AF%A2es/1.htm">批量查询es</a>
<div>导入包org.elasticsearch.clienttransport5.2.2org.apache.logging.log4jlog4j-api2.7org.apache.logging.log4jlog4j-core2.7junitjunitRELEASEViewCode2.Java操作基本操作通过client客户端对象获得客户端然后通过preparIndex等方法传入index,type,</div>
</li>
<li><a href="/article/1897266638097543168.htm"
title="2025年计算机毕业设计springboot 校园二手物品交易平台的设计与实现" target="_blank">2025年计算机毕业设计springboot 校园二手物品交易平台的设计与实现</a>
<span class="text-muted">基林计算机毕设程序</span>
<a class="tag" taget="_blank" href="/search/%E8%AF%BE%E7%A8%8B%E8%AE%BE%E8%AE%A1/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><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a>
<div>本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容选题背景随着环保意识的增强和校园经济的蓬勃发展,校园二手物品交易逐渐成为大学生群体中的重要经济活动。当前,国内外对于二手物品交易的研究主要集中在电商平台的发展、交易模式的创新以及市场潜力的挖掘等方面。然而,专门针对校园二手物品交易平台的研究相对较少,尤其是结合大学生实际需求和行为特点的</div>
</li>
<li><a href="/article/1897255673222197248.htm"
title="JUC模块" target="_blank">JUC模块</a>
<span class="text-muted">C18298182575</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
<div>JUC(JavaUtilConcurrent)是Java标准库中用于支持并发编程的模块,提供了丰富的工具类和框架,帮助开发者编写高效、线程安全的并发程序。JUC模块自Java5引入,是Java并发编程的核心部分。1.JUC的核心组件1.1原子类(AtomicClasses)作用:提供原子操作,避免使用锁的情况下实现线程安全。常见类:AtomicInteger:原子操作的整数。AtomicLong:</div>
</li>
<li><a href="/article/1897250128981454848.htm"
title="Github 2024-08-16Java开源项目日报 Top10" target="_blank">Github 2024-08-16Java开源项目日报 Top10</a>
<span class="text-muted">老孙正经胡说</span>
<a class="tag" taget="_blank" href="/search/github/1.htm">github</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E6%BA%90/1.htm">开源</a><a class="tag" taget="_blank" href="/search/Github%E8%B6%8B%E5%8A%BF%E5%88%86%E6%9E%90/1.htm">Github趋势分析</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E6%BA%90%E9%A1%B9%E7%9B%AE/1.htm">开源项目</a><a class="tag" taget="_blank" href="/search/Python/1.htm">Python</a><a class="tag" taget="_blank" href="/search/Golang/1.htm">Golang</a>
<div>根据GithubTrendings的统计,今日(2024-08-16统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下:开发语言项目数量Java项目10TypeScript项目1Ruby项目1ApacheDubbo:高性能的Java开源RPC框架创建周期:4441天开发语言:Java协议类型:ApacheLicense2.0Star数量:40303个Fork数量:26383次关注人数</div>
</li>
<li><a href="/article/1897237892321832960.htm"
title="TypeScript系列01-类型系统全解析" target="_blank">TypeScript系列01-类型系统全解析</a>
<span class="text-muted">Mr.NickJJ</span>
<a class="tag" taget="_blank" href="/search/Typescript%E7%B3%BB%E5%88%97/1.htm">Typescript系列</a><a class="tag" taget="_blank" href="/search/typescript/1.htm">typescript</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>本文总结了TypeScript的类型系统基础,涵盖了:TypeScript的价值:静态类型检查为JavaScript添加了类型安全保障基本类型系统:从原始类型到特殊类型(any、unknown、never)的完整介绍类型注解与推断:理解何时依赖自动推断,何时显式标注类型类型兼容性:掌握TypeScript结构类型系统的核心规则1.TypeScript介绍1.1与JavaScript的关系TypeS</div>
</li>
<li><a href="/article/1897233354642747392.htm"
title="Java 大视界 -- Java 大数据机器学习模型的可解释性增强技术与应用(107)" target="_blank">Java 大视界 -- Java 大数据机器学习模型的可解释性增强技术与应用(107)</a>
<span class="text-muted">青云交</span>
<a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AE%E6%96%B0%E8%A7%86%E7%95%8C/1.htm">大数据新视界</a><a class="tag" taget="_blank" href="/search/Java/1.htm">Java</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E8%A7%86%E7%95%8C/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/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%8F%AF%E8%A7%A3%E9%87%8A%E6%80%A7/1.htm">可解释性</a><a class="tag" taget="_blank" href="/search/AI/1.htm">AI</a><a class="tag" taget="_blank" href="/search/SHAP/1.htm">SHAP</a><a class="tag" taget="_blank" href="/search/LIME/1.htm">LIME</a><a class="tag" taget="_blank" href="/search/%E5%9B%A0%E6%9E%9C%E6%8E%A8%E7%90%86/1.htm">因果推理</a><a class="tag" taget="_blank" href="/search/%E5%8F%AF%E8%A7%86%E5%8C%96%E4%BA%A4%E4%BA%92/1.htm">可视化交互</a>
<div>亲爱的朋友们,热烈欢迎来到青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而我的博客正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也期待你毫无保留地分享独特见解,愿我们于此携手成长,共赴新程!一、欢迎加入【福利社群】点击快速加入:青云交灵犀技韵交响盛汇福利社群点击快速加入2:2024CSDN博客之星创作交流营(NEW)二、本博客的精华专栏:大数据新视</div>
</li>
<li><a href="/article/1897233228339671040.htm"
title="Java 大视界 -- Java 大数据在智慧环保污染源监测与预警中的应用(104)" target="_blank">Java 大视界 -- Java 大数据在智慧环保污染源监测与预警中的应用(104)</a>
<span class="text-muted">青云交</span>
<a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AE%E6%96%B0%E8%A7%86%E7%95%8C/1.htm">大数据新视界</a><a class="tag" taget="_blank" href="/search/Java/1.htm">Java</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E8%A7%86%E7%95%8C/1.htm">大视界</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</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/%E6%99%BA%E6%85%A7%E7%8E%AF%E4%BF%9D/1.htm">智慧环保</a><a class="tag" taget="_blank" href="/search/%E6%B1%A1%E6%9F%93%E6%BA%90%E7%9B%91%E6%B5%8B/1.htm">污染源监测</a><a class="tag" taget="_blank" href="/search/%E5%AE%9E%E6%97%B6%E9%A2%84%E8%AD%A6/1.htm">实时预警</a><a class="tag" taget="_blank" href="/search/Flink/1.htm">Flink</a><a class="tag" taget="_blank" href="/search/LSTM/1.htm">LSTM</a>
<div>亲爱的朋友们,热烈欢迎来到青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而我的博客正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也期待你毫无保留地分享独特见解,愿我们于此携手成长,共赴新程!一、欢迎加入【福利社群】点击快速加入:青云交灵犀技韵交响盛汇福利社群点击快速加入2:2024CSDN博客之星创作交流营(NEW)二、本博客的精华专栏:大数据新视</div>
</li>
<li><a href="/article/1897232976131977216.htm"
title="Java 大视界 -- Java 大数据分布式文件系统的性能调优实战(101)" target="_blank">Java 大视界 -- Java 大数据分布式文件系统的性能调优实战(101)</a>
<span class="text-muted">青云交</span>
<a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AE%E6%96%B0%E8%A7%86%E7%95%8C/1.htm">大数据新视界</a><a class="tag" taget="_blank" href="/search/Java/1.htm">Java</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E8%A7%86%E7%95%8C/1.htm">大视界</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</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/Java/1.htm">Java</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%88%86%E5%B8%83%E5%BC%8F%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F/1.htm">分布式文件系统</a><a class="tag" taget="_blank" href="/search/%E6%80%A7%E8%83%BD%E8%B0%83%E4%BC%98/1.htm">性能调优</a><a class="tag" taget="_blank" href="/search/HDFS/1.htm">HDFS</a><a class="tag" taget="_blank" href="/search/Impala/1.htm">Impala</a>
<div>亲爱的朋友们,热烈欢迎来到青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而我的博客正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也期待你毫无保留地分享独特见解,愿我们于此携手成长,共赴新程!一、欢迎加入【福利社群】点击快速加入:青云交灵犀技韵交响盛汇福利社群点击快速加入2:2024CSDN博客之星创作交流营(NEW)二、本博客的精华专栏:大数据新视</div>
</li>
<li><a href="/article/1897232723991392256.htm"
title="Java 大视界 -- 深入剖析 Java 大数据实时 ETL 中的数据质量保障策略(97)" target="_blank">Java 大视界 -- 深入剖析 Java 大数据实时 ETL 中的数据质量保障策略(97)</a>
<span class="text-muted">青云交</span>
<a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AE%E6%96%B0%E8%A7%86%E7%95%8C/1.htm">大数据新视界</a><a class="tag" taget="_blank" href="/search/Java/1.htm">Java</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E8%A7%86%E7%95%8C/1.htm">大视界</a><a class="tag" taget="_blank" href="/search/Java%E5%A4%A7%E6%95%B0%E6%8D%AE/1.htm">Java大数据</a><a class="tag" taget="_blank" href="/search/%E5%AE%9E%E6%97%B6ETL/1.htm">实时ETL</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E8%B4%A8%E9%87%8F%E4%BF%9D%E9%9A%9C/1.htm">数据质量保障</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E6%B8%85%E6%B4%97/1.htm">数据清洗</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E6%A0%A1%E9%AA%8C/1.htm">数据校验</a><a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E7%AE%97%E6%B3%95/1.htm">机器学习算法</a><a class="tag" taget="_blank" href="/search/%E7%BB%9F%E8%AE%A1%E6%96%B9%E6%B3%95/1.htm">统计方法</a>
<div>亲爱的朋友们,热烈欢迎来到青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而我的博客正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也期待你毫无保留地分享独特见解,愿我们于此携手成长,共赴新程!一、欢迎加入【福利社群】点击快速加入:青云交灵犀技韵交响盛汇福利社群点击快速加入2:2024CSDN博客之星创作交流营(NEW)二、本博客的精华专栏:大数据新视</div>
</li>
<li><a href="/article/1897232597579264000.htm"
title="Java 大视界 -- 绿色大数据:Java 技术在节能减排中的应用与实践(90)" target="_blank">Java 大视界 -- 绿色大数据:Java 技术在节能减排中的应用与实践(90)</a>
<span class="text-muted">青云交</span>
<a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AE%E6%96%B0%E8%A7%86%E7%95%8C/1.htm">大数据新视界</a><a class="tag" taget="_blank" href="/search/Java/1.htm">Java</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E8%A7%86%E7%95%8C/1.htm">大视界</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</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/%E7%BB%BF%E8%89%B2%E5%A4%A7%E6%95%B0%E6%8D%AE/1.htm">绿色大数据</a><a class="tag" taget="_blank" href="/search/%E8%8A%82%E8%83%BD%E5%87%8F%E6%8E%92/1.htm">节能减排</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95%E4%BC%98%E5%8C%96/1.htm">算法优化</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E5%B8%83%E5%BC%8F%E8%AE%A1%E7%AE%97/1.htm">分布式计算</a><a class="tag" taget="_blank" href="/search/%E8%B5%84%E6%BA%90%E7%AE%A1%E7%90%86/1.htm">资源管理</a>
<div>亲爱的朋友们,热烈欢迎来到青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而我的博客正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也期待你毫无保留地分享独特见解,愿我们于此携手成长,共赴新程!一、欢迎加入【福利社群】点击快速加入:青云交灵犀技韵交响盛汇福利社群点击快速加入2:2024CSDN博客之星创作交流营(NEW)二、本博客的精华专栏:大数据新视</div>
</li>
<li><a href="/article/1897232471263604736.htm"
title="Java 大视界 -- 大数据伦理与法律:Java 技术在合规中的作用与挑战(87)" target="_blank">Java 大视界 -- 大数据伦理与法律:Java 技术在合规中的作用与挑战(87)</a>
<span class="text-muted">青云交</span>
<a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AE%E6%96%B0%E8%A7%86%E7%95%8C/1.htm">大数据新视界</a><a class="tag" taget="_blank" href="/search/Java/1.htm">Java</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E8%A7%86%E7%95%8C/1.htm">大视界</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</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%A4%A7%E6%95%B0%E6%8D%AE%E4%BC%A6%E7%90%86/1.htm">大数据伦理</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AE%E6%B3%95%E5%BE%8B/1.htm">大数据法律</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%8A%A0%E5%AF%86/1.htm">数据加密</a><a class="tag" taget="_blank" href="/search/%E8%AE%BF%E9%97%AE%E6%8E%A7%E5%88%B6/1.htm">访问控制</a><a class="tag" taget="_blank" href="/search/%E5%BA%94%E5%AF%B9%E7%AD%96%E7%95%A5/1.htm">应对策略</a>
<div>亲爱的朋友们,热烈欢迎来到青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而我的博客正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也期待你毫无保留地分享独特见解,愿我们于此携手成长,共赴新程!一、欢迎加入【福利社群】点击快速加入:青云交灵犀技韵交响盛汇福利社群点击快速加入2:2024CSDN博客之星创作交流营(NEW)二、本博客的精华专栏:大数据新视</div>
</li>
<li><a href="/article/1897232469317447680.htm"
title="Java 大视界 -- 区块链赋能 Java 大数据:数据可信与价值流转(84)" target="_blank">Java 大视界 -- 区块链赋能 Java 大数据:数据可信与价值流转(84)</a>
<span class="text-muted">青云交</span>
<a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AE%E6%96%B0%E8%A7%86%E7%95%8C/1.htm">大数据新视界</a><a class="tag" taget="_blank" href="/search/Java/1.htm">Java</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E8%A7%86%E7%95%8C/1.htm">大视界</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</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/%E6%95%B0%E6%8D%AE%E5%8F%AF%E4%BF%A1/1.htm">数据可信</a><a class="tag" taget="_blank" href="/search/%E4%BB%B7%E5%80%BC%E6%B5%81%E8%BD%AC/1.htm">价值流转</a><a class="tag" taget="_blank" href="/search/%E6%99%BA%E8%83%BD%E5%90%88%E7%BA%A6/1.htm">智能合约</a><a class="tag" taget="_blank" href="/search/%E5%85%B1%E8%AF%86%E6%9C%BA%E5%88%B6/1.htm">共识机制</a><a class="tag" taget="_blank" href="/search/%E5%8C%BA%E5%9D%97%E9%93%BE/1.htm">区块链</a>
<div>亲爱的朋友们,热烈欢迎来到青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而我的博客正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也期待你毫无保留地分享独特见解,愿我们于此携手成长,共赴新程!一、欢迎加入【福利社群】点击快速加入:青云交灵犀技韵交响盛汇福利社群点击快速加入2:2024CSDN博客之星创作交流营(NEW)二、本博客的精华专栏:大数据新视</div>
</li>
<li><a href="/article/1897231334967930880.htm"
title="【高并发】Java 高并发 HTTP 接口优化:如何在 10 毫秒内调用 20+ 服务?" target="_blank">【高并发】Java 高并发 HTTP 接口优化:如何在 10 毫秒内调用 20+ 服务?</a>
<span class="text-muted">工一木子</span>
<a class="tag" taget="_blank" href="/search/%E9%AB%98%E5%B9%B6%E5%8F%91/1.htm">高并发</a><a class="tag" taget="_blank" href="/search/Java/1.htm">Java</a><a class="tag" taget="_blank" href="/search/%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1/1.htm">系统设计</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/http/1.htm">http</a><a class="tag" taget="_blank" href="/search/%E6%8E%A5%E5%8F%A3%E4%BC%98%E5%8C%96/1.htm">接口优化</a>
<div>Java高并发HTTP接口优化:如何在10毫秒内调用20+服务?在分布式系统中,一个HTTP接口调用多个外部服务是常见场景。但如果需要在10毫秒内完成20+服务调用,就面临网络延迟、线程切换、I/O阻塞等挑战。本文将深入剖析高性能HTTP接口优化策略,并提供Java并发实战代码。1.面临的挑战同步调用慢:如果串行调用20个服务,每个服务平均耗时50ms,总时长将超过1秒。网络延迟:HTTP请求通常</div>
</li>
<li><a href="/article/1897225278946603008.htm"
title="Java 大视界 -- 基于 Java 的大数据流处理容错机制与恢复策略(113)" target="_blank">Java 大视界 -- 基于 Java 的大数据流处理容错机制与恢复策略(113)</a>
<span class="text-muted">青云交</span>
<a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AE%E6%96%B0%E8%A7%86%E7%95%8C/1.htm">大数据新视界</a><a class="tag" taget="_blank" href="/search/Java/1.htm">Java</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E8%A7%86%E7%95%8C/1.htm">大视界</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</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/%E6%B5%81%E5%A4%84%E7%90%86/1.htm">流处理</a><a class="tag" taget="_blank" href="/search/%E5%AE%B9%E9%94%99%E6%9C%BA%E5%88%B6/1.htm">容错机制</a><a class="tag" taget="_blank" href="/search/Checkpoint/1.htm">Checkpoint</a><a class="tag" taget="_blank" href="/search/Exactly-Once/1.htm">Exactly-Once</a><a class="tag" taget="_blank" href="/search/%E6%95%85%E9%9A%9C%E6%81%A2%E5%A4%8D/1.htm">故障恢复</a>
<div>亲爱的朋友们,热烈欢迎来到青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而我的博客正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也期待你毫无保留地分享独特见解,愿我们于此携手成长,共赴新程!一、欢迎加入【福利社群】点击快速加入:青云交灵犀技韵交响盛汇福利社群点击快速加入2:2024CSDN博客之星创作交流营(NEW)二、本博客的精华专栏:大数据新视</div>
</li>
<li><a href="/article/1897224396259520512.htm"
title="多线程--volatile关键字" target="_blank">多线程--volatile关键字</a>
<span class="text-muted">帅的飞起来</span>
<a class="tag" taget="_blank" href="/search/%E5%A4%9A%E7%BA%BF%E7%A8%8B/1.htm">多线程</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%A4%9A%E7%BA%BF%E7%A8%8B/1.htm">多线程</a>
<div>volatile是java中的一个关键字,用于修饰变量,主要解决多线程环境下的可见性和有序性问题。一、volatile的作用可见性:保证一个线程对volatile变量的修改对其他线程立即可见有序性:禁止指令重排序,确保代码的执行顺序与编写顺序一致(关于可见性和有序性请参考多线程JMM)二、内存屏障的类型1、LoadLoadBarrier示例:Load1;LoadLoad;Load2,确保Load1</div>
</li>
<li><a href="/article/1897220349121064960.htm"
title="Es5 javascript实现继承的5种方式及对应缺点(超详细)" target="_blank">Es5 javascript实现继承的5种方式及对应缺点(超详细)</a>
<span class="text-muted">没资格抱怨</span>
<a class="tag" taget="_blank" href="/search/JS%E6%A0%B8%E5%BF%83/1.htm">JS核心</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.原型链原型链作为实现继承的主要方法,其基本思想是利用原型让一个引用类型继承另一个引用类型的属性和方法。简单理解为:将父类构造函数的实例对象作为子类构造函数的原型对象,通过修改原型的方式实现继承另一个引用类型的属性和方法。代码演示:functionParent(name){this.name=name;this.children=["a","b"];}functionChild(){}Child</div>
</li>
<li><a href="/article/1897219969268117504.htm"
title="[前端笔记——HTML介绍] 3.<head>标签里有什么?" target="_blank">[前端笔记——HTML介绍] 3.<head>标签里有什么?</a>
<span class="text-muted">弓早早o_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/%23/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/html/1.htm">html</a>
<div>[前端笔记——HTML介绍]3.head标签里有什么?1.标题2.元数据:元素3.在站点增加自定义图标4.HTML中应用CSS和JavaScript5.为文档设定主语言元素的内容不会再浏览器中显示,它的作用是保存页面的一些元数据。接下来介绍几个head中重要的常用元素:1.标题元素可以为文档添加标题。注意和的区别:元素在页面加载完毕时显示在页面中,是为body添加标题的,通常只出现一次,用来标记页</div>
</li>
<li><a href="/article/1897212901899431936.htm"
title="Java后端面试到底要如何准备?" target="_blank">Java后端面试到底要如何准备?</a>
<span class="text-muted">财高八斗者</span>
<a class="tag" taget="_blank" href="/search/Java%E7%A8%8B%E5%BA%8F%E5%91%98/1.htm">Java程序员</a><a class="tag" taget="_blank" href="/search/Java/1.htm">Java</a><a class="tag" taget="_blank" href="/search/Java%E7%BC%96%E7%A8%8B/1.htm">Java编程</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/jvm/1.htm">jvm</a>
<div>我把面试准备拆成以下几个步骤:1.写简历2.整理好自己最熟悉的项目,相对有代表性的项目。3.整理自己的技术栈4.收拾好自己的自我介绍5.被八股文6.模拟面试7.针对模拟面试表现出来的问题进行改进8.开始投投简历本人10年开发经验,做过coder、做过领导、也做过架构师,面试过500人+。现在全职做技术分享和面试辅导。针对自己多年的面试经验,以及被面试的经验,我自己整理了一份面试小抄:《面试小抄》《</div>
</li>
<li><a href="/article/1897209995917848576.htm"
title="JAVAWeb——maven、SpringBoot、HTTP、Tomcat" target="_blank">JAVAWeb——maven、SpringBoot、HTTP、Tomcat</a>
<span class="text-muted">l_tian_tian_</span>
<a class="tag" taget="_blank" href="/search/maven/1.htm">maven</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><a class="tag" taget="_blank" href="/search/http/1.htm">http</a>
<div>目录1.mavena.概述b.作用c.仓库b.坐标c.依赖管理2.SpringBoot3.HTTPa.概述b.请求协议c.响应协议d.协议解析4.Tomcata.Web服务器b.Tomcatc.SpringBoot与Tomcat关系1.mavena.概述Maven是apache旗下的一个开源项目,是一款用于管理和构建java项目的工具b.作用c.仓库用于存储资源,管理各种jar包本地仓库:自己计算</div>
</li>
<li><a href="/article/1897200354643210240.htm"
title="基于 Flink CDC YAML 的 MySQL 到 Kafka 流式数据集成" target="_blank">基于 Flink CDC YAML 的 MySQL 到 Kafka 流式数据集成</a>
<span class="text-muted"></span>
<a class="tag" taget="_blank" href="/search/flink%E5%A4%A7%E6%95%B0%E6%8D%AE%E5%AE%9E%E6%97%B6%E8%AE%A1%E7%AE%97/1.htm">flink大数据实时计算</a>
<div>这篇教程将展示如何基于FlinkCDCYAML快速构建MySQL到Kafka的流式数据集成作业,包含整库同步、表结构变更同步的演示和特色功能的介绍。本教程的演示都将在FlinkCDCCLI中进行,无需一行Java/Scala代码,也无需安装IDE。准备阶段准备FlinkStandalone集群下载Flink1.19.2,解压后得到flink-1.19.2目录。使用下面的命令跳转至Flink目录下,</div>
</li>
<li><a href="/article/1897194731763462144.htm"
title="jedis,lettuce,redisson对比" target="_blank">jedis,lettuce,redisson对比</a>
<span class="text-muted">虎哥和你一起学编程</span>
<a class="tag" taget="_blank" href="/search/redis/1.htm">redis</a>
<div>jedis是一个老牌的java的redis客户端,仅支持同步的方式连接,redis官网有一句这样的话JedisisasynchronousJavaclientforRedis.UseLettuceifyouneedamoreadvancedJavaclientthatalsosupportsasynchronousandreactiveconnections。官方也推荐如果需要异步或者响应式的支持</div>
</li>
<li><a href="/article/1897194479211835392.htm"
title="java poi居中_使用apache poi在合并单元格中水平居中图像" target="_blank">java poi居中_使用apache poi在合并单元格中水平居中图像</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/poi%E5%B1%85%E4%B8%AD/1.htm">poi居中</a>
<div>将图片放置在Excel表格中是一件棘手的事情,因为图片被锚定在两个单元格上。左上角的锚点单元加上delta-x和delta-y来确定图片左上角的位置。右下角锚点单元格加上delta-x和delta-y来确定大小。单元格是否合并对此过程并不重要。因此,为了水平居中,我们需要计算哪一个是左上角的锚点单元加上delta-x。幸运的是,右下角锚点单元格加上delta-x和delta-y,可以通过在设置左上</div>
</li>
<li><a href="/article/1897190567373238272.htm"
title="Jedis那么低性能,还在用?赶紧换上 lettuce 吧" target="_blank">Jedis那么低性能,还在用?赶紧换上 lettuce 吧</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/redis/1.htm">redis</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a>
<div>最近有很多小伙伴在面大厂,经常遇到下面的问题:3大redis客户端:Jedis、Redisson、Lettuce,如何选型?今天就来深入聊聊这个问题Redis的3大Java客户端组件Redis官方推荐的Java客户端有Jedis、lettuce和Redisson。客户端组件1:JedisJedis是老牌的Redis的Java实现客户端,提供了比较全面的Redis命令的支持、Jedis在线网址:ht</div>
</li>
<li><a href="/article/1897183883959529472.htm"
title="带你深入了解前端【HTML+JavaScript】" target="_blank">带你深入了解前端【HTML+JavaScript】</a>
<span class="text-muted">软件技术NINI</span>
<a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a>
<div>DeepSeek-R1满血版思考完成嗯,用户想要深入了解前端中的HTML和JavaScript,所以我需要整理相关的信息,参考提供的搜索结果,特别是和,因为它们直接提到了HTML和JavaScript的结合使用。首先,确定HTML和JavaScript的基本关系,然后看看各个搜索结果里的内容有什么可以整合的。比如,搜索结果详细介绍了src和href的区别,而则讲解了如何在HTML中使用sc</div>
</li>
<li><a href="/article/1897179471480418304.htm"
title="解锁 ES6 访问器属性 Getter & Setter" target="_blank">解锁 ES6 访问器属性 Getter & Setter</a>
<span class="text-muted">代码里的小猫咪</span>
<a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E8%AE%BF%E9%97%AE%E5%99%A8%E5%B1%9E%E6%80%A7/1.htm">访问器属性</a><a class="tag" taget="_blank" href="/search/Getter/1.htm">Getter</a><a class="tag" taget="_blank" href="/search/Setter/1.htm">Setter</a>
<div>在JavaScriptES6及其后续版本中,可以使用访问器属性(AccessorProperties)来定义getter和setter,从而拦截对象属性的访问和赋值。这种机制不仅提供了更灵活的属性管理方式,还能增强数据的封装性和安全性。1.访问器属性(Getters和Setters)在ES6的class语法中,可以使用get和set关键字定义访问器属性,这样可以像访问普通属性一样调用方法,而不需要</div>
</li>
<li><a href="/article/1897179343554146304.htm"
title="Java 项目问题:在 Maven 中导入了依赖,却在项目中无法引入依赖中的类" target="_blank">Java 项目问题:在 Maven 中导入了依赖,却在项目中无法引入依赖中的类</a>
<span class="text-muted">我命由我12345</span>
<a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a><a class="tag" taget="_blank" href="/search/-/1.htm">-</a><a class="tag" taget="_blank" href="/search/%E9%97%AE%E9%A2%98%E6%B8%85%E5%8D%95/1.htm">问题清单</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/maven/1.htm">maven</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/java-ee/1.htm">java-ee</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a><a class="tag" taget="_blank" href="/search/intellij-idea/1.htm">intellij-idea</a><a class="tag" taget="_blank" href="/search/intellij/1.htm">intellij</a><a class="tag" taget="_blank" href="/search/idea/1.htm">idea</a>
<div>问题与处理策略问题描述com.diogonunesJColor5.5.1Java项目中,在Maven中导入了上述依赖,却在项目中无法引入依赖中的类问题原因可能是第一次下载依赖时,网络问题或Maven仓库问题导致依赖未完整下载可能是IDEA的缓存或相关问题,导致依赖无法使用处理策略尝试此策略:注释依赖->Maven同步->放开注释->Maven同步当注释掉依赖并同步时,Maven会从项目中移除该依赖</div>
</li>
<li><a href="/article/1897177323120160768.htm"
title="深入剖析 Netty:高性能网络编程框架的奥秘" target="_blank">深入剖析 Netty:高性能网络编程框架的奥秘</a>
<span class="text-muted">艾斯比的日常</span>
<a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a>
<div>引言在当今高并发的网络应用场景下,对网络编程的性能要求越来越高。Netty作为一个基于JavaNIO构建的高性能网络编程框架,凭借其卓越的性能表现,在众多网络应用中得到了广泛的应用。本文将深入剖析Netty性能高的原因,帮助开发者更好地理解和使用Netty。一、异步非阻塞I/O模型1.1传统阻塞I/O的困境在传统的阻塞I/O模型中,当一个线程进行I/O操作时,它会被阻塞,直到操作完成。这意味着在高</div>
</li>
<li><a href="/article/1897176315447013376.htm"
title="Vue3新特性指南:探索新增指令、内置组件和改进" target="_blank">Vue3新特性指南:探索新增指令、内置组件和改进</a>
<span class="text-muted">山川湖海</span>
<a class="tag" taget="_blank" href="/search/Vue/1.htm">Vue</a><a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a>
<div>Vue.js是一款流行的JavaScript框架,用于构建现代Web应用。Vue3是Vue.js的最新版本,引入了许多新特性和改进。本文将介绍Vue3新增的指令、内置组件以及其他值得关注的改进,并提供使用组合式API的用法示例。一、新增指令v-is指令:v-is指令用于动态组件,可以根据表达式的值来渲染不同的组件。用法:示例代码:import{ref}from'vue';importCompone</div>
</li>
<li><a href="/article/1897174418333954048.htm"
title="java中JUC工具类" target="_blank">java中JUC工具类</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%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
<div>以下内容有AI回答生成内容,以及自己理解添加的内容,只用作了解记录。java的JUC(java.util.concurrent)包是java并发编程的核心工具包,提供了丰富的多线程和并发编程工具类。以下是其主要组件及典型示例:1.锁机制ReentrantLock:可重入互斥锁,替代synchronized,支持公平锁和非公平锁ReentrantReadWriteLock:读写分离锁,允许多个读线程</div>
</li>
<li><a href="/article/1897174039294701568.htm"
title="MySQL的 int , bigint字段与java的 int , long 字段反射/映射时,产生的问题" target="_blank">MySQL的 int , bigint字段与java的 int , long 字段反射/映射时,产生的问题</a>
<span class="text-muted">劲雨波</span>
<a class="tag" taget="_blank" href="/search/MySQL/1.htm">MySQL</a><a class="tag" taget="_blank" href="/search/Java/1.htm">Java</a><a class="tag" taget="_blank" href="/search/maven/1.htm">maven</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
<div>针对java连接mysql数据库映射时产生的问题java.lang.IllegalArgumentException:argumenttypemismatchatsun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)总结了一下是字段类型不匹配的问题,整理了一下表格intMySQL无符号(unsigned)Javaint原本(未选择无符号</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>