- 浏览: 861917 次
-
文章分类
- 全部博客 (365)
- java (124)
- spring mvc (21)
- spring (22)
- struts2 (6)
- jquery (27)
- javascript (24)
- mybatis/ibatis (8)
- hibernate (7)
- compass (11)
- lucene (26)
- flex (0)
- actionscript (0)
- webservice (8)
- rabbitMQ/Socket (15)
- jsp/freemaker (5)
- 数据库 (27)
- 应用服务器 (21)
- Hadoop (1)
- PowerDesigner (3)
- EJB (0)
- JPA (0)
- PHP (2)
- C# (0)
- .NET (0)
- html (2)
- xml (5)
- android (7)
- flume (1)
- zookeeper (0)
- 证书加密 (2)
- maven (1)
- redis (2)
- cas (11)
最新评论
-
zuxianghuang:
通过pom上传报错 Artifact upload faile ...
nexus上传了jar包.通过maven引用当前jar,不能取得jar的依赖 -
流年末年:
百度网盘的挂了吧???
SSO单点登录系列3:cas-server端配置认证方式实践(数据源+自定义java类认证) -
953434367:
UfgovDBUtil 是什么类
Java发HTTP POST请求(内容为xml格式) -
smilease:
帮大忙了,非常感谢
freemaker自动生成源代码 -
syd505:
十分感谢作者无私的分享,仔细阅读后很多地方得以解惑。
Nginx 反向代理、负载均衡、页面缓存、URL重写及读写分离详解
分页类
- package com.cee.com;
- import java.util.List;
- //分页类
- public class PageBean {
- private List list; // 要返回的某一页的记录列表
- private int allRow; // 总记录数
- private int totalPage; // 总页数
- private int currentPage; // 当前页
- private int pageSize; // 每页记录数
- private int offset;
- public int getOffset() {
- return offset;
- }
- public void setOffset(int offset) {
- this.offset = offset;
- }
- private boolean isFirstPage; // 是否为第一页
- private boolean isLastPage; // 是否为最后一页
- private boolean hasPreviousPage; // 是否有前一页
- private boolean hasNextPage; // 是否有下一页
- public List getList() {
- return list;
- }
- public void setList(List list) {
- this.list = list;
- }
- public int getAllRow() {
- return allRow;
- }
- public void setAllRow(int allRow) {
- this.allRow = allRow;
- }
- public int getTotalPage() {
- int totalPage = allRow % pageSize == 0 ? allRow / pageSize : allRow
- / pageSize + 1;
- return totalPage;
- }
- public void setTotalPage(int totalPage) {
- this.totalPage = totalPage;
- }
- public int getCurrentPage() {
- return currentPage;
- }
- public void setCurrentPage(int currentPage) {
- this.currentPage = currentPage;
- }
- public int getPageSize() {
- return pageSize;
- }
- public void setPageSize(int pageSize) {
- this.pageSize = pageSize;
- }
- /** */
- /**
- * 初始化分页信息
- */
- public void init() {
- this.isFirstPage = isFirstPage();
- this.isLastPage = isLastPage();
- this.hasPreviousPage = isHasPreviousPage();
- this.hasNextPage = isHasNextPage();
- }
- /** */
- /**
- * 以下判断页的信息,只需getter方法(is方法)即可
- *
- * @return
- */
- public boolean isFirstPage() {
- return currentPage == 1; // 如是当前页是第1页
- }
- public boolean isLastPage() {
- return currentPage == totalPage; // 如果当前页是最后一页
- }
- public boolean isHasPreviousPage() {
- return currentPage != 1; // 只要当前页不是第1页
- }
- public boolean isHasNextPage() {
- if(totalPage==0){
- return false;
- }else{
- return currentPage != totalPage; // 只要当前页不是最后1页
- }
-
- } /** */
- /**
- * 计算总页数,静态方法,供外部直接通过类名调用
- *
- * @param pageSize
- * 每页记录数
- * @param allRow
- * 总记录数
- * @return 总页数
- */
- public static int countTotalPage(final int pageSize, final int allRow) {
- int totalPage = allRow % pageSize == 0 ? allRow / pageSize : allRow
- / pageSize + 1;
- return totalPage;
- }
- /** */
- /**
- * 计算当前页开始记录
- *
- * @param pageSize
- * 每页记录数
- * @param currentPage
- * 当前第几页
- * @return 当前页开始记录号
- */
- public static int countOffset(final int pageSize, final int currentPage) {
- final int offset = pageSize * (currentPage - 1);
- return offset;
- }
- /** */
- /**
- * 计算当前页,若为0或者请求的URL中没有"?page=",则用1代替
- *
- * @param page
- * 传入的参数(可能为空,即0,则返回1)
- * @return 当前页
- */
- public static int countCurrentPage(int page) {
- final int curPage = (page == 0 ? 1 : page);
- return curPage;
- }
- public static int lastSqlIdx(int rowStartIdx, int pageSize) {
- return rowStartIdx + pageSize;
- }
- }
package com.cee.com; import java.util.List; //分页类 public class PageBean { private List list; // 要返回的某一页的记录列表 private int allRow; // 总记录数 private int totalPage; // 总页数 private int currentPage; // 当前页 private int pageSize; // 每页记录数 private int offset; public int getOffset() { return offset; } public void setOffset(int offset) { this.offset = offset; } private boolean isFirstPage; // 是否为第一页 private boolean isLastPage; // 是否为最后一页 private boolean hasPreviousPage; // 是否有前一页 private boolean hasNextPage; // 是否有下一页 public List getList() { return list; } public void setList(List list) { this.list = list; } public int getAllRow() { return allRow; } public void setAllRow(int allRow) { this.allRow = allRow; } public int getTotalPage() { int totalPage = allRow % pageSize == 0 ? allRow / pageSize : allRow / pageSize + 1; return totalPage; } public void setTotalPage(int totalPage) { this.totalPage = totalPage; } public int getCurrentPage() { return currentPage; } public void setCurrentPage(int currentPage) { this.currentPage = currentPage; } public int getPageSize() { return pageSize; } public void setPageSize(int pageSize) { this.pageSize = pageSize; } /** */ /** * 初始化分页信息 */ public void init() { this.isFirstPage = isFirstPage(); this.isLastPage = isLastPage(); this.hasPreviousPage = isHasPreviousPage(); this.hasNextPage = isHasNextPage(); } /** */ /** * 以下判断页的信息,只需getter方法(is方法)即可 * * @return */ public boolean isFirstPage() { return currentPage == 1; // 如是当前页是第1页 } public boolean isLastPage() { return currentPage == totalPage; // 如果当前页是最后一页 } public boolean isHasPreviousPage() { return currentPage != 1; // 只要当前页不是第1页 } public boolean isHasNextPage() { if(totalPage==0){ return false; }else{ return currentPage != totalPage; // 只要当前页不是最后1页 } } /** */ /** * 计算总页数,静态方法,供外部直接通过类名调用 * * @param pageSize * 每页记录数 * @param allRow * 总记录数 * @return 总页数 */ public static int countTotalPage(final int pageSize, final int allRow) { int totalPage = allRow % pageSize == 0 ? allRow / pageSize : allRow / pageSize + 1; return totalPage; } /** */ /** * 计算当前页开始记录 * * @param pageSize * 每页记录数 * @param currentPage * 当前第几页 * @return 当前页开始记录号 */ public static int countOffset(final int pageSize, final int currentPage) { final int offset = pageSize * (currentPage - 1); return offset; } /** */ /** * 计算当前页,若为0或者请求的URL中没有"?page=",则用1代替 * * @param page * 传入的参数(可能为空,即0,则返回1) * @return 当前页 */ public static int countCurrentPage(int page) { final int curPage = (page == 0 ? 1 : page); return curPage; } public static int lastSqlIdx(int rowStartIdx, int pageSize) { return rowStartIdx + pageSize; } }
分页代码与高亮代码
注意 indexDir 目录下存放的是 lucene 的索引, 直接运行代码会发生错误,请看上篇文章生成索引
- package com.cee.test;
- import java.io.File;
- import java.io.IOException;
- import java.io.StringReader;
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.List;
- import org.apache.lucene.analysis.Analyzer;
- import org.apache.lucene.analysis.TokenStream;
- import org.apache.lucene.analysis.standard.StandardAnalyzer;
- import org.apache.lucene.document.Document;
- import org.apache.lucene.index.CorruptIndexException;
- import org.apache.lucene.queryParser.MultiFieldQueryParser;
- import org.apache.lucene.queryParser.ParseException;
- import org.apache.lucene.search.IndexSearcher;
- import org.apache.lucene.search.Query;
- import org.apache.lucene.search.ScoreDoc;
- import org.apache.lucene.search.Searcher;
- import org.apache.lucene.search.TopScoreDocCollector;
- import org.apache.lucene.search.highlight.Highlighter;
- import org.apache.lucene.search.highlight.InvalidTokenOffsetsException;
- import org.apache.lucene.search.highlight.QueryScorer;
- import org.apache.lucene.search.highlight.SimpleHTMLFormatter;
- import org.apache.lucene.store.FSDirectory;
- import org.apache.lucene.util.Version;
- import com.cee.com.PageBean;
- /**
- * 分页与高亮显示
- *
- * @author qcy
- *
- */
- public class PageSearcher {
- /**
- *
- * @param pageNo
- * @param pageSize
- * @param q
- * 表示查询条件
- * @return
- */
- public final static String indexDir = "d:\\TestLucene\\indexDB";
- @SuppressWarnings({ "unchecked", "unchecked", "deprecation", "deprecation" })
- public static PageBean getPageQuery(int pageNo, int pageSize, String[] q)
- throws CorruptIndexException, IOException, ParseException, InvalidTokenOffsetsException {
- List result = new ArrayList();
- Searcher searcher = new IndexSearcher(FSDirectory.open(new File(
- indexDir)), true);
- Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_CURRENT);
- String[] fields = { "cbs", "zz" };
- Query query = MultiFieldQueryParser.parse(Version.LUCENE_CURRENT, q,
- fields, analyzer);
- TopScoreDocCollector topCollector = TopScoreDocCollector.create(
- searcher.maxDoc(), false);
- searcher.search(query, topCollector);
- // 高亮设置
- SimpleHTMLFormatter simpleHtmlFormatter = new SimpleHTMLFormatter(
- "<B>", "</B>");//
- Highlighter highlighter = new Highlighter(simpleHtmlFormatter,
- new QueryScorer(query));
- // 查询当页的记录
- ScoreDoc[] docs = topCollector.topDocs((pageNo - 1) * pageSize,
- pageSize).scoreDocs;
- for (ScoreDoc scdoc : docs) {
- Document document = searcher.doc(scdoc.doc);
- TokenStream tokenStream = analyzer.tokenStream("text",
- new StringReader(document.get("cbs")));
- String str = highlighter.getBestFragment(tokenStream, document.get("cbs"));
- result.add("id=" + document.get("id") + "|cbs="
- + document.get("cbs") + "|zz=" + document.get("zz")+"|red"+str);
- }
- PageBean pb = new PageBean();
- pb.setCurrentPage(pageNo);// 当前页
- pb.setPageSize(pageSize);
- pb.setAllRow(topCollector.getTotalHits());// hit中的记录数目
- pb.setList(result);
- return pb;
- }
- public static void main(String[] args) throws CorruptIndexException,
- IOException, ParseException, InvalidTokenOffsetsException {
- String[] q = { "中国", "外国" };
- long start = new Date().getTime();
- PageBean pb = getPageQuery(1, 4, q);
- System.out.println("页面内容-------开始---");
- List pgResult = pb.getList();
- for (int i = 0; i < pgResult.size(); i++) {
- System.out.println(pgResult.get(i).toString());
- }
- System.out.println("页面内容-------结束---");
- System.out.println("当前页号 " + pb.getCurrentPage());
- System.out.println("是否是第一个页? " + pb.isFirstPage());
- System.out.println("是否是最后页? " + pb.isLastPage());
- System.out.println("存在上一页? " + pb.isHasPreviousPage());
- System.out.println("存在下一页? " + pb.isHasNextPage());
- System.out.println("每页的记录数 " + pb.getPageSize());
- System.out.println("总页数 " + pb.getTotalPage());
- System.out.println("总记录数 " + pb.getAllRow());
- long end = new Date().getTime();
- System.out.println("花费时间:" + (double) (end - start) / 1000 + "秒");
- }
- }
package com.cee.test; import java.io.File; import java.io.IOException; import java.io.StringReader; import java.util.ArrayList; import java.util.Date; import java.util.List; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.TokenStream; import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.apache.lucene.document.Document; import org.apache.lucene.index.CorruptIndexException; import org.apache.lucene.queryParser.MultiFieldQueryParser; import org.apache.lucene.queryParser.ParseException; import org.apache.lucene.search.IndexSearcher; import org.apache.lucene.search.Query; import org.apache.lucene.search.ScoreDoc; import org.apache.lucene.search.Searcher; import org.apache.lucene.search.TopScoreDocCollector; import org.apache.lucene.search.highlight.Highlighter; import org.apache.lucene.search.highlight.InvalidTokenOffsetsException; import org.apache.lucene.search.highlight.QueryScorer; import org.apache.lucene.search.highlight.SimpleHTMLFormatter; import org.apache.lucene.store.FSDirectory; import org.apache.lucene.util.Version; import com.cee.com.PageBean; /** * 分页与高亮显示 * * @author qcy * */ public class PageSearcher { /** * * @param pageNo * @param pageSize * @param q * 表示查询条件 * @return */ public final static String indexDir = "d:\\TestLucene\\indexDB"; @SuppressWarnings({ "unchecked", "unchecked", "deprecation", "deprecation" }) public static PageBean getPageQuery(int pageNo, int pageSize, String[] q) throws CorruptIndexException, IOException, ParseException, InvalidTokenOffsetsException { List result = new ArrayList(); Searcher searcher = new IndexSearcher(FSDirectory.open(new File( indexDir)), true); Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_CURRENT); String[] fields = { "cbs", "zz" }; Query query = MultiFieldQueryParser.parse(Version.LUCENE_CURRENT, q, fields, analyzer); TopScoreDocCollector topCollector = TopScoreDocCollector.create( searcher.maxDoc(), false); searcher.search(query, topCollector); // 高亮设置 SimpleHTMLFormatter simpleHtmlFormatter = new SimpleHTMLFormatter( "<B>", "</B>");// Highlighter highlighter = new Highlighter(simpleHtmlFormatter, new QueryScorer(query)); // 查询当页的记录 ScoreDoc[] docs = topCollector.topDocs((pageNo - 1) * pageSize, pageSize).scoreDocs; for (ScoreDoc scdoc : docs) { Document document = searcher.doc(scdoc.doc); TokenStream tokenStream = analyzer.tokenStream("text", new StringReader(document.get("cbs"))); String str = highlighter.getBestFragment(tokenStream, document.get("cbs")); result.add("id=" + document.get("id") + "|cbs=" + document.get("cbs") + "|zz=" + document.get("zz")+"|red"+str); } PageBean pb = new PageBean(); pb.setCurrentPage(pageNo);// 当前页 pb.setPageSize(pageSize); pb.setAllRow(topCollector.getTotalHits());// hit中的记录数目 pb.setList(result); return pb; } public static void main(String[] args) throws CorruptIndexException, IOException, ParseException, InvalidTokenOffsetsException { String[] q = { "中国", "外国" }; long start = new Date().getTime(); PageBean pb = getPageQuery(1, 4, q); System.out.println("页面内容-------开始---"); List pgResult = pb.getList(); for (int i = 0; i < pgResult.size(); i++) { System.out.println(pgResult.get(i).toString()); } System.out.println("页面内容-------结束---"); System.out.println("当前页号 " + pb.getCurrentPage()); System.out.println("是否是第一个页? " + pb.isFirstPage()); System.out.println("是否是最后页? " + pb.isLastPage()); System.out.println("存在上一页? " + pb.isHasPreviousPage()); System.out.println("存在下一页? " + pb.isHasNextPage()); System.out.println("每页的记录数 " + pb.getPageSize()); System.out.println("总页数 " + pb.getTotalPage()); System.out.println("总记录数 " + pb.getAllRow()); long end = new Date().getTime(); System.out.println("花费时间:" + (double) (end - start) / 1000 + "秒"); } }
分页类有个小bug
分页的前台scrip
- function changepage(pid){
- var url="";
- if(pid=='1'){
- window.location=url+"&page=1";
- }
- if(pid=='2'){
- window.location=url+"&page=${dataList.currentPage-1}";
- }
- if(pid=='3'){
- window.location=url+"&page=${dataList.currentPage+1}";
- }
- if(pid=='4'){
- window.location=url+"&page=${dataList.totalPage}";
- }
- }
function changepage(pid){ var url=""; if(pid=='1'){ window.location=url+"&page=1"; } if(pid=='2'){ window.location=url+"&page=${dataList.currentPage-1}"; } if(pid=='3'){ window.location=url+"&page=${dataList.currentPage+1}"; } if(pid=='4'){ window.location=url+"&page=${dataList.totalPage}"; } }
前台分页java
- <table>
- <tr>
- <td>
- <table>
- <c:forEach items="${dataList.list}" var="m"> ${m}</c:forEach>
- </table>
- </td>
- </tr>
- <tr>
- <td>
- <table width="100%" border="0" cellspacing="2" cellpadding="0">
- <tr>
- <td height="25" align="center">
- <div id="page" class="txt_p">
- 共${dataList.totalPage}页
- <c:choose>
- <c:when test="${dataList.hasPreviousPage}">
- <a href="javascript:changepage('1')">首页</a>
- <a href="javascript:changepage('2')"> <img
- src="${skinPath}images/hygl/left_h.gif" align="absmiddle"
- border="0" /> </a>
- <a href="javascript:changepage('2')">上一页</a>
- </c:when>
- <c:otherwise>
- 首页
- <img src="${skinPath}images/hygl/left_b.gif" align="absmiddle" />上一页
- </c:otherwise>
- </c:choose>
- 第${dataList.currentPage}页
- <c:choose>
- <c:when test="${dataList.hasNextPage}">
- <a href="javascript:changepage('3')">下一页</a>
- <a href="javascript:changepage('3')"> <img
- src="${skinPath}images/hygl/right_h.gif" align="absmiddle"
- border="0" /> </a>
- <a href="javascript:changepage('4')">尾页</a>
- </c:when>
- <c:otherwise>
- 下一页<img
- src="${skinPath}images/hygl/right_b.gif" align="absmiddle" />尾页
- </c:otherwise>
- </c:choose>
- </div>
- </td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
<table> <tr> <td> <table> <c:forEach items="${dataList.list}" var="m"> ${m}</c:forEach> </table> </td> </tr> <tr> <td> <table width="100%" border="0" cellspacing="2" cellpadding="0"> <tr> <td height="25" align="center"> <div id="page" class="txt_p"> 共${dataList.totalPage}页 <c:choose> <c:when test="${dataList.hasPreviousPage}"> <a href="javascript:changepage('1')">首页</a> <a href="javascript:changepage('2')"> <img src="${skinPath}images/hygl/left_h.gif" align="absmiddle" border="0" /> </a> <a href="javascript:changepage('2')">上一页</a> </c:when> <c:otherwise> 首页 <img src="${skinPath}images/hygl/left_b.gif" align="absmiddle" />上一页 </c:otherwise> </c:choose> 第${dataList.currentPage}页 <c:choose> <c:when test="${dataList.hasNextPage}"> <a href="javascript:changepage('3')">下一页</a> <a href="javascript:changepage('3')"> <img src="${skinPath}images/hygl/right_h.gif" align="absmiddle" border="0" /> </a> <a href="javascript:changepage('4')">尾页</a> </c:when> <c:otherwise> 下一页<img src="${skinPath}images/hygl/right_b.gif" align="absmiddle" />尾页 </c:otherwise> </c:choose> </div> </td> </tr> </table> </td> </tr> </table>
发表评论
-
eclispe 实用插件大全
2016-03-31 10:17 856在一个项目的完整的生命周期中,其维护费用,往往是其开发费用的 ... -
单点登录 SSO Session
2016-03-14 16:56 4062单点登录在现在的 ... -
通用权限管理设计 之 数据库结构设计
2016-01-26 13:22 2966通用权限管理设计 之 ... -
分享一个基于ligerui的系统应用案例ligerRM V2(权限管理系统)(提供下载)
2016-01-26 13:22 1512分享一个基于ligerui的系统应用案例ligerRM V2 ... -
通用权限管理设计 之 数据权限
2016-01-26 13:20 752通用权限管理设计 之 数据权限 阅读目录 前 ... -
使用RSA进行信息加密解密的WebService示例
2015-12-28 10:30 890按:以下文字涉及RS ... -
防止网站恶意刷新
2015-10-22 10:55 723import java.io.IOExcept ... -
单点登录
2015-10-19 14:24 785Cas自定义登录页面Ajax实现 博客分类: ... -
session如何在http和https之间同步
2015-09-14 09:25 2271首先说下 http>https>http ... -
基于 Quartz 开发企业级任务调度应用
2015-08-17 11:17 851Quartz 是 OpenSy ... -
Java加密技术(十二)——*.PFX(*.p12)&个人信息交换文件
2015-08-17 11:17 889今天来点实际工 ... -
Java加密技术(十)——单向认证
2015-08-13 10:13 690在Java 加密技术(九)中,我们使 ... -
Java加密技术(九)——初探SSL
2015-08-13 10:12 910在Java加密技术(八)中,我们模拟 ... -
Java加密技术(八)——数字证书
2015-08-13 10:12 903本篇的主要内容为Java证书体系的实 ... -
Java加密技术(七)——非对称加密算法最高级ECC
2015-08-13 10:12 989ECC ECC-Elliptic Curv ... -
Java加密技术(六)——数字签名算法DSA
2015-08-13 10:11 1086接下来我们介绍DSA数字签名,非对称 ... -
Java加密技术(五)——非对称加密算法的由来DH
2015-08-12 16:13 882接下来我们 ... -
Java加密技术(四)——非对称加密算法RSA
2015-08-12 16:11 1108接下来我们介绍典型的非对称加密算法—— ... -
Java加密技术(三)——PBE算法
2015-08-12 16:10 980除了DES,我们还知道有DESede( ... -
Java加密技术(二)——对称加密算法DES&AES
2015-08-12 16:09 736接下来我们介绍对称加密算法,最常用的莫 ...
相关推荐
除了搜索,Lucene还提供了一些其他功能,如文档的增删改查、多字段搜索、排序、分页、高亮显示搜索结果等。此外,它还可以与其他Apache项目如Solr和Elasticsearch集成,以构建更复杂的搜索引擎解决方案。 总之,...
5. 结果展示:处理搜索结果,包括排序、分页和高亮显示匹配的关键词。 三、部署到Tomcat等服务器 为了在Web环境中使用Lucene搜索器,我们需要将其部署到像Tomcat这样的Servlet容器中。首先,确保服务器环境中已经...
- **高级特性探索**:深入探讨 Lucene 的一些高级特性,如高亮显示、近似匹配等。 #### 知识点四:Lucene 内部原理与定制化 除了基本的使用指南之外,《Lucene in Action》还深入剖析了 Lucene 的内部工作原理,为...
嵌入式八股文面试题库资料知识宝典-华为的面试试题.zip
训练导控系统设计.pdf
嵌入式八股文面试题库资料知识宝典-网络编程.zip
人脸转正GAN模型的高效压缩.pdf
少儿编程scratch项目源代码文件案例素材-几何冲刺 转瞬即逝.zip
少儿编程scratch项目源代码文件案例素材-鸡蛋.zip
嵌入式系统_USB设备枚举与HID通信_CH559单片机USB主机键盘鼠标复合设备控制_基于CH559单片机的USB主机模式设备枚举与键盘鼠标数据收发系统支持复合设备识别与HID
嵌入式八股文面试题库资料知识宝典-linux常见面试题.zip
面向智慧工地的压力机在线数据的预警应用开发.pdf
基于Unity3D的鱼类运动行为可视化研究.pdf
少儿编程scratch项目源代码文件案例素材-霍格沃茨魔法学校.zip
少儿编程scratch项目源代码文件案例素材-金币冲刺.zip
内容概要:本文深入探讨了HarmonyOS编译构建子系统的作用及其技术细节。作为鸿蒙操作系统背后的关键技术之一,编译构建子系统通过GN和Ninja工具实现了高效的源代码到机器代码的转换,确保了系统的稳定性和性能优化。该系统不仅支持多系统版本构建、芯片厂商定制,还具备强大的调试与维护能力。其高效编译速度、灵活性和可扩展性使其在华为设备和其他智能终端中发挥了重要作用。文章还比较了HarmonyOS编译构建子系统与安卓和iOS编译系统的异同,并展望了其未来的发展趋势和技术演进方向。; 适合人群:对操作系统底层技术感兴趣的开发者、工程师和技术爱好者。; 使用场景及目标:①了解HarmonyOS编译构建子系统的基本概念和工作原理;②掌握其在不同设备上的应用和优化策略;③对比HarmonyOS与安卓、iOS编译系统的差异;④探索其未来发展方向和技术演进路径。; 其他说明:本文详细介绍了HarmonyOS编译构建子系统的架构设计、核心功能和实际应用案例,强调了其在万物互联时代的重要性和潜力。阅读时建议重点关注编译构建子系统的独特优势及其对鸿蒙生态系统的深远影响。
嵌入式八股文面试题库资料知识宝典-奇虎360 2015校园招聘C++研发工程师笔试题.zip
嵌入式八股文面试题库资料知识宝典-腾讯2014校园招聘C语言笔试题(附答案).zip
双种群变异策略改进RWCE算法优化换热网络.pdf
内容概要:本文详细介绍了基于瞬时无功功率理论的三电平有源电力滤波器(APF)仿真研究。主要内容涵盖并联型APF的工作原理、三相三电平NPC结构、谐波检测方法(ipiq)、双闭环控制策略(电压外环+电流内环PI控制)以及SVPWM矢量调制技术。仿真结果显示,在APF投入前后,电网电流THD从21.9%降至3.77%,显著提高了电能质量。 适用人群:从事电力系统研究、电力电子技术开发的专业人士,尤其是对有源电力滤波器及其仿真感兴趣的工程师和技术人员。 使用场景及目标:适用于需要解决电力系统中谐波污染和无功补偿问题的研究项目。目标是通过仿真验证APF的有效性和可行性,优化电力系统的电能质量。 其他说明:文中提到的仿真模型涉及多个关键模块,如三相交流电压模块、非线性负载、信号采集模块、LC滤波器模块等,这些模块的设计和协同工作对于实现良好的谐波抑制和无功补偿至关重要。