epub格式电子书剖析 .

 epub格式电子书遵循IDPF推出的OCF规范,OCF规范遵循ZIP压缩技术,即epub电子书本身就是一个ZIP文件,我们将epub格式电子书的后缀.epub修改为.zip后,可以通过解压缩软件(例如winrar、winzip)进行浏览或解压处理。一个未经加密处理的epub电子书以三个部分组成,其文件结构如下图所示:

   epub格式电子书剖析之一:文档构成

    1、文件:mimetype

    每一本epub电子书均包含一个名为mimetype的文件,且内容不变,用以说明epub的文件格式。文件内容如下:

 

 application/epub+zip  //注释,表示可以用epub工具和ZIP工具打开

 

 

    2、目录:META-INF

    依据OCF规范,META-INF用于存放容器信息,默认情况下(即加密处理),该目录包含一个文件,即container.xml,文件内容如下:

 

 

 
  <rootfile full-path="OEBPS/content.opf" media-type="application/oebps-package+xml" />
 

 

    container.xml的主要功能用于告诉阅读器,电子书的根文件(rootfile)的路径(红色部分)和打开放式,一般来讲,该container.xml文件也不需要作任何修改,除非你改变了根文件的路径和文件名称。

   除container.xml文件之外,OCF还规定了以下几个文件:

   (1)[manifest.xml],文件列表
   (2)[metadata.xml],元数据
   (3)[signatures.xml],数字签名
   (4)[encryption.xml],加密
   (5)[rights.xml],权限管理
   对于epub电子书而言,这些文件都是可选的。

 

    3、目录:OEBPS

    OEBPS目录用于存放OPS文档、OPF文档、CSS文档、NCX文档,如果是制作中文电子书,则还包括ttf文档(即字体文档),OEBPS目录也可以建立相应的子目录,例如建立chapter目录,把各章节的OPS文档放在chapter目录之中。下图一本epub电子书OEBPS文档的实例图:

epub格式电子书剖析之一:文档构成

 

     其中content.opf文件和toc.ncx文件为必需,其它文件可根据电子书的具体情况而定。

 

 

OPF文件构成:

OPF文档是epub电子书的核心文件,且是一个标准的XML文件,依据OPF规范,主要由五个部分组成:

    1、,元数据信息,由两个子元素组成:

  • ,其元素构成采用dubline core(DC)的15项核心元素,包括:
    • :题名</li> <li><creator>:责任者</li> <li><subject>:主题词或关键词</li> <li><description>:内容描述</li> <li><contributor>:贡献者或其它次要责任者</li> <li><date>:日期</li> <li><type>:类型</li> <li><format>:格式</li> <li><identifier>:标识符</li> <li><source>:来源</li> <li><language>:语种</li> <li><relation>:相关信息</li> <li><coverage>:履盖范围</li> <li><rights>:权限描述</li> </ul></li> <li><x-metadata>,即扩展元素。如果有些信息在上述元素中无法描述,则在此元素中进行扩展。</li> </ul> <p>    2、<menifest>,文件列表,由于列出OEBPS文档及相关的文档,有一个子元素构成,</p> <ul> <li><item id="" href="" media-type="">,该元素由三个属性构成:</li> <li> <ul> <li>id:表示文件的ID号</li> <li>href:文件的相对路径</li> <li>media-type:文件的媒体类型</li> <li>例如<span style="color:#ff0000;">:<item id="chap01" href="chap01.xhtml" media-type="application/xhtml+xml"/></span></li> </ul></li> </ul> <p><span style="color:#ff0000;">    <span style="color:#000000;">3、<spine toc="ncx">,脊骨,其主要功能是提供书籍的线性阅读次序。由一个子元素构成:</span></span></p> <ul> <li><span style="color:#000000;"><itemref idref="">,由一个属性构成:</span></li> <li> <ul> <li>idref:即参照menifest列出的ID</li> <li>例如<span style="color:#ff0000;">:<itemref idref="chap01"/></span></li> </ul></li> </ul> <p><span style="color:#000000;">    4、<guide>,指南,依次列出电子书的特定页面, 例如封面、目录、序言等, 属性值指向文件保存地址。一般情况下,epub电子书可以不用该元素。</span></p> <p> </p> <p>    5、<tour>,导读。可以根据不同的读者水平或者阅读目的, 按一定次序, 选择电子书中的部分页面组成导读。一般情况下,epub电子书可以不用该元素。</p> <p> </p> <p>    content.opf实例:</p> <p> </p> <table border="1"> <tbody> <tr> <td> <?xml version="1.0" encoding="utf-8"?><br> <!DOCTYPE package PUBLIC "+//ISBN 978-7-308-05831-5//DTD OEB 1.2 Package//EN" "http://openebook.org/dtds/oeb-1.2/oebpkg12.dtd"><br> <package unique-identifier="bookid" xmlns:opf="http://www.idpf.org/2007/opf" xmlns="http://www.idpf.org/2007/opf" version="2.0"><br>  <metadata><br>   <dc-metadata xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><br>    <dc:title>数字档案馆理论与技术研究</dc:title><br>    <dc:creator>金更达</dc:creator><br>    <dc:subject>数字档案馆</dc:subject><br>    <dc:subject>电子文件管理</dc:subject><br>    <dc:subject>元数据</dc:subject><br>    <dc:subject>数字化</dc:subject><br>    <dc:subject>档案化</dc:subject><br>    <dc:description>当……<dc:description><br>    <dc:publisher>机械工业出版社</dc:publisher><br>    <dc:contributor/><br>    <dc:date>2007-09</dc:date><br>    <dc:type>普通图书</dc:type><br>    <dc:format>Text/html(.html,.htm)</dc:format><br>    <dc:identifier id="bookid" opf:scheme="ISBN">isbn:978-7-111-04961-6</dc:identifier><br>    <dc:source/><br>    <dc:language>chi</dc:language><br>    <dc:relation/><br>    <dc:coverage/><br>    <dc:rights>机械工业出版社版权所有</dc:rights><br>   </dc-metadata><br>   <x-metadata/><br>  </metadata><br>  <manifest><br>   <item id="ncx" href="toc.ncx" media-type="application/x-dtbncx+xml"/><br>   <item id="style" href="style.css" media-type="text/css"/><br>   <item id="cover" href="cover.htm" media-type="text/html"/><br>   <item id="tableofc" href="toc.xhtml" media-type="application/xhtml+xml"/><br>   <item id="forword" href="forword.xhtml" media-type="application/xhtml+xml"/><br>   <item id="chap01" href="chap01.xhtml" media-type="application/xhtml+xml"/><br>   <item id="chap02" href="chap02.xhtml" media-type="application/xhtml+xml"/><br>   <item id="chap03" href="chap03.xhtml" media-type="application/xhtml+xml"/><br>   <item id="chap04" href="chap04.xhtml" media-type="application/xhtml+xml"/><br>   <item id="chap05" href="chap05.xhtml" media-type="application/xhtml+xml"/><br>   <item id="chap06" href="chap06.xhtml" media-type="application/xhtml+xml"/><br>   <item id="chap07" href="chap07.xhtml" media-type="application/xhtml+xml"/><br>   <item id="chap08" href="chap08.xhtml" media-type="application/xhtml+xml"/><br>   <item id="chap09" href="chap09.xhtml" media-type="application/xhtml+xml"/><br>   <item id="chap10" href="chap10.xhtml" media-type="application/xhtml+xml"/><br>   <item id="reference" href="reference.xhtml" media-type="application/xhtml+xml"/><br>  </manifest><br>  <spine toc="ncx"><br>   <itemref idref="cover"/><br>   <itemref idref="tableofc"/><br>   <itemref idref="forword"/><br>   <itemref idref="chap01"/><br>   <itemref idref="chap02"/><br>   <itemref idref="chap03"/><br>   <itemref idref="chap04"/><br>   <itemref idref="chap05"/><br>   <itemref idref="chap06"/><br>   <itemref idref="chap07"/><br>   <itemref idref="chap08"/><br>   <itemref idref="chap09"/><br>   <itemref idref="chap10"/><br>   <itemref idref="reference"/><br>  </spine><br>  <guide/><br> </package></td> </tr> </tbody> </table> <p> </p> <p></p> <h2><strong><span style="font-family:mceinline;">NCX文件构成:</span></strong></h2> <p></p> <p></p> <p>ncx文件是epub电子书的又一个核心文件,用于制作电子书的目录,其文件的命名通常为toc.ncx。</p> <p>ncx文件是一个XML文件,该标准由DAISY Consortium发布(参见http://www.daisy.org)。</p> <p>    下列是一个toc.ncx文件的实例,其中红色部分为必需。<navMap>元素列出了目录的名称和链接地址。其子元素<navPoint>支持嵌套。</p> <p> </p> <table border="1"> <tbody> <tr> <td> <?xml version="1.0" encoding="utf-8"?><br> <!DOCTYPE ncx PUBLIC "-//NISO//DTD ncx 2005-1//EN" "http://www.daisy.org/z3986/2005/ncx-2005-1.dtd"><br> <ncx version="2005-1" xmlns="http://www.daisy.org/z3986/2005/ncx/"><br>  <head><br>   <!-- The following four metadata items are required for all NCX documents, including those conforming to the relaxed constraints of OPS 2.0 --><br>  <span style="color:#ff0000;"> <meta name="dtb:uid" content=" "/><br>   <meta name="dtb:depth" content="-1"/><br>   <meta name="dtb:totalPageCount" content="0"/><br>   <meta name="dtb:maxPageNumber" content="0"/><br></span> </head><br>  <docTitle><br>   <text>数字档案馆理论与技术研究</text><br>  </docTitle><br>  <docAuthor><br>   <text>金更达</text><br>  </docAuthor><br>  <navMap><br>   <navPoint id="navpoint-1" playOrder="1"><br>    <navLabel><br>     <text>封面</text><br>    </navLabel><br>    <content src="cover.htm"/><br>   </navPoint><br>   <navPoint id="navpoint-2" playOrder="2"><br>    <navLabel><br>     <text>序</text><br>    </navLabel><br>    <content src="forword.xhtml"/><br>   </navPoint><br>   <navPoint id="navpoint-3" playOrder="3"><br>    <navLabel><br>     <text>目录</text><br>    </navLabel><br>    <content src="toc.xhtml"/><br>   </navPoint><br>   <navPoint id="navpoint-4" playOrder="4"><br>    <navLabel><br>     <text>第一章 绪论</text><br>    </navLabel><br>    <content src="chap01.xhtml"/><br>    <navPoint id="navpoint-5" playOrder="5"><br>     <navLabel><br>      <text>第一节 数字档案馆:新世纪档案事业的发展方向</text><br>     </navLabel><br>     <content src="chap01.xhtml#_Toc169344163"/><br>    </navPoint><br>    <navPoint id="navpoint-6" playOrder="6"><br>     <navLabel><br>      <text>第二节 数字档案馆:新世纪档案工作的严峻挑战</text><br>     </navLabel><br>     <content src="chap01.xhtml#_Toc169344164"/><br>    </navPoint><br>    <navPoint id="navpoint-7" playOrder="7"><br>     <navLabel><br>      <text>第三节 数字档案馆系统研究的理论价值与现实意义</text><br>     </navLabel><br>     <content src="chap01.xhtml#_Toc169344165"/><br>    </navPoint><br>   </navPoint><br>  </navMap><br> </ncx><br></td> </tr> </tbody> </table> <p></p> <p></p> </div> <p></p> </div> </div> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1295628509225492480"></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">你可能感兴趣的:(c#)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1947281056675721216.htm" title="9.IEnumerable可枚举接口 C#例子 WPF例子" target="_blank">9.IEnumerable可枚举接口 C#例子 WPF例子</a> <span class="text-muted">军训猫猫头</span> <a class="tag" taget="_blank" href="/search/%E5%8D%8E%E4%B8%BD%E6%96%87%E7%AB%A0/1.htm">华丽文章</a><a class="tag" taget="_blank" href="/search/windows/1.htm">windows</a><a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a><a class="tag" taget="_blank" href="/search/microsoft/1.htm">microsoft</a> <div>privateasyncvoidButton_Click(objectsender,RoutedEventArgse){//调用时可以传入List、Array、HashSet等任何实现了IEnumerable的集合ListmyList=newList{"A","B"};ProcessItems(myList);string[]myArray={"X","Y"};ProcessItems(myArr</div> </li> <li><a href="/article/1947259751599501312.htm" title="C#程序唯一性守护:用互斥锁(Mutex)实现进程级安全控制的实战指南" target="_blank">C#程序唯一性守护:用互斥锁(Mutex)实现进程级安全控制的实战指南</a> <span class="text-muted"></span> <div>为什么程序重复启动是个"毒瘤"?在软件开发中,程序重复启动可能导致以下灾难性后果:资源冲突:多个实例争夺数据库连接、文件句柄等有限资源数据污染:并发写入配置文件导致内容错乱界面混乱:多个窗口同时弹出,用户体验崩坏安全漏洞:恶意程序通过伪造实例窃取数据而互斥锁(Mutex)是Windows/Linux系统提供的原生机制,能完美解决这些问题。相比文件锁、注册表标记等传统方案,Mutex具有以下不可替代</div> </li> <li><a href="/article/1947256098440409088.htm" title="C# 委托与事件:从函数指针到事件驱动的终极指南" target="_blank">C# 委托与事件:从函数指针到事件驱动的终极指南</a> <span class="text-muted">墨夶</span> <a class="tag" taget="_blank" href="/search/C%23%E5%AD%A6%E4%B9%A0%E8%B5%84%E6%96%99/1.htm">C#学习资料</a><a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>**为什么说委托与事件是C#的“灵魂”?**在C#的世界里,委托(Delegate)与事件(Event)是两个看似简单却深藏玄机的核心概念。你是否曾想过:一个按钮点击事件背后,是如何将“点击动作”与“响应方法”无缝连接的?你是否遇到过:需要动态传递方法、实现回调或构建观察者模式时的“无从下手”?你是否渴望:掌握一套完整的“异步通信”机制,用于构建高内聚、低耦合的系统?答案来了:✅委托是“方法的容器</div> </li> <li><a href="/article/1947238693446152192.htm" title="c#:TCP服务端管理类" target="_blank">c#:TCP服务端管理类</a> <span class="text-muted">妮妮学代码</span> <a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a><a class="tag" taget="_blank" href="/search/tcp%2Fip/1.htm">tcp/ip</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>TCP客户端连接多个服务端的类1.架构图2.创建TCP客户端与服务端通信的工具类注:TcpClientAsyncTool类中是客户端连接服务端的,TcpClient实质是Server,套用服务端连接客户端的,使用过程中自行修改名称,本案例暂未修改。连接使用异步操作,其余为同步执行的。publicclassTcpClientAsyncTool{privateTcpClient_tcpClient;p</div> </li> <li><a href="/article/1947237559411208192.htm" title="C#软件开发规范:从代码到实践的全面指南" target="_blank">C#软件开发规范:从代码到实践的全面指南</a> <span class="text-muted">jie sherry</span> <div>本文还有配套的精品资源,点击获取简介:《C#经典软件开发规范》详细介绍了在企业中实行软件开发的最佳实践,包括编码、设计、文档和测试等方面。该规范着重于提升代码质量、可维护性和团队效率。关键知识点包括命名规范、注释规范、代码结构、异常处理、错误检查、代码简洁性、单元测试、版本控制、设计模式、代码审查、性能优化、并发与多线程、日志记录、安全性和持续集成/部署(CI/CD)。遵循这些规范有助于创建健壮的</div> </li> <li><a href="/article/1947195704258654208.htm" title="Unity 常见数据结构分析与实战展示 C#" target="_blank">Unity 常见数据结构分析与实战展示 C#</a> <span class="text-muted">与火星的孩子对话</span> <a class="tag" taget="_blank" href="/search/Unity%E7%90%86%E8%AE%BA%E4%B8%8E%E5%AE%9E%E6%88%98/1.htm">Unity理论与实战</a><a class="tag" taget="_blank" href="/search/unity/1.htm">unity</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a><a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a> <div>Unity常见数据结构分析与实战展示提示:内容纯个人编写,欢迎评论点赞,来指正我。文章目录Unity常见数据结构分析与实战展示1.引言2.Unity数据结构概述3.常见数据结构1.数组(Array)2.列表(List)3.字典(Dictionary)4.队列(Queue)5.栈(Stack)4.实战案例分析案例1:游戏对象管理案例2:事件系统实现案例3:AI行为树5.最佳实践与建议6.总结1.引言</div> </li> <li><a href="/article/1947088154116812800.htm" title="LeetCode第337题_打家劫舍III" target="_blank">LeetCode第337题_打家劫舍III</a> <span class="text-muted">@蓝莓果粒茶</span> <a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/leetcode/1.htm">leetcode</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E8%81%8C%E5%9C%BA%E5%92%8C%E5%8F%91%E5%B1%95/1.htm">职场和发展</a><a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a> <div>LeetCode第337题:打家劫舍III文章摘要本文详细解析LeetCode第337题"打家劫舍III",这是一道中等难度的二叉树动态规划问题。文章提供了基于深度优先搜索和动态规划的解法,包含C#、Python、C++三种语言实现,配有详细的算法分析和性能对比。适合想要提升二叉树和动态规划能力的程序员。核心知识点:二叉树、动态规划、深度优先搜索难度等级:中等推荐人群:具有基础数据结构知识,想要提</div> </li> <li><a href="/article/1947039736279396352.htm" title="AutoGen C#三步变强:比Python还野的多AI协作实战!" target="_blank">AutoGen C#三步变强:比Python还野的多AI协作实战!</a> <span class="text-muted">墨瑾轩</span> <a class="tag" taget="_blank" href="/search/%E4%B8%80%E8%B5%B7%E5%AD%A6%E5%AD%A6C%23%E3%80%90%E5%9B%9B%E3%80%91/1.htm">一起学学C#【四】</a><a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a> <div>关注墨瑾轩,带你探索编程的奥秘!超萌技术攻略,轻松晋级编程高手技术宝库已备好,就等你来挖掘订阅墨瑾轩,智趣学习不孤单即刻启航,编程之旅更有趣一、第一步:环境搭建——给AutoGen装上"AI乐高积木"目标:用C#搭建AutoGen基础环境,像组装乐高一样准备工具。步骤:克隆AutoGen项目:访问AutoGenGitHub仓库,克隆到本地:gitclonehttps://github.com/mi</div> </li> <li><a href="/article/1947039609925988352.htm" title="C#进行串口应用开发如何处理串口的异常情况" target="_blank">C#进行串口应用开发如何处理串口的异常情况</a> <span class="text-muted">openwin_top</span> <a class="tag" taget="_blank" href="/search/c%23%E4%B8%B2%E5%8F%A3%E5%BA%94%E7%94%A8%E5%BC%80%E5%8F%91%E9%97%AE%E9%A2%98%E7%B3%BB%E5%88%97/1.htm">c#串口应用开发问题系列</a><a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E4%B8%B2%E5%8F%A3/1.htm">串口</a><a class="tag" taget="_blank" href="/search/%E9%80%9A%E8%AE%AF/1.htm">通讯</a><a class="tag" taget="_blank" href="/search/%E4%B8%8A%E4%BD%8D%E6%9C%BA/1.htm">上位机</a> <div>python编程示例系列python编程示例系列二python的Web神器Streamlit如何应聘高薪职位C#视觉应用开发问题系列c#串口应用开发问题系列microPythonPython最小内核源码解析NI-motion运动控制c语言示例代码解析在C#中进行串口应用开发时,处理串口的异常情况是非常重要的。常见的串口异常包括端口不可用、数据传输错误、超时等</div> </li> <li><a href="/article/1947033808339529728.htm" title="从 C# 转 Python 第三天:文件操作、异常处理与错误日志实践" target="_blank">从 C# 转 Python 第三天:文件操作、异常处理与错误日志实践</a> <span class="text-muted">AI、少年郎</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a><a class="tag" taget="_blank" href="/search/%E6%96%87%E4%BB%B6%E6%93%8D%E4%BD%9C/1.htm">文件操作</a><a class="tag" taget="_blank" href="/search/%E5%BC%82%E5%B8%B8%E5%A4%84%E7%90%86/1.htm">异常处理</a> <div>在软件开发的广阔领域中,Python和C#作为两种备受瞩目的编程语言,各自凭借独特的特性和强大的功能,在不同的应用场景中展现出卓越的性能。对于开发者而言,深入理解并熟练掌握这两门语言的核心技能,如文件操作与异常处理,不仅是提升个人编程能力的关键,更是在复杂多变的项目开发中应对各种挑战、确保程序稳定运行的必备条件。在日常的编程工作中,文件操作是实现数据持久化存储、读取配置信息以及处理各种数据文件的基</div> </li> <li><a href="/article/1946986769937395712.htm" title="C# 线程--Thread类" target="_blank">C# 线程--Thread类</a> <span class="text-muted"></span> <div>目录什么是线程?Thread类的定义创建和启动线程使用ThreadStart委托使用ParameterizedThreadStart委托Lambda简写使用线程池(ThreadPool)使用线程池的优点使用ThreadPool的一般步骤常用方法Start()Join()Sleep(intmillisecondsTimeout)Abort()IsAliveManagedThreadIdSetApar</div> </li> <li><a href="/article/1946985005964128256.htm" title="【设计模式&C#】享元模式(用于解决多次创建对象而导致的性能问题)" target="_blank">【设计模式&C#】享元模式(用于解决多次创建对象而导致的性能问题)</a> <span class="text-muted">大飞pkz</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/C%23/1.htm">C#</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/%E4%BA%AB%E5%85%83%E6%A8%A1%E5%BC%8F/1.htm">享元模式</a><a class="tag" taget="_blank" href="/search/C%23/1.htm">C#</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>一种结构型设计模式。特点是通过共享内部状态来减少对象的数量,从而降低内存使用和提高性能。优点:大幅减少对象的数量,减少了内存的使用,提高了性能;支持更多颗粒度对象,而不会导致内存溢出;可以与对象池技术结合,进一步提高对象池的复用效率。缺点:为了实现享元模式,需要将对象的状态分为内部状态和外部状态,提高了系统的复杂性;享元对象被多个线程共享,可能会导致性能安全问题;适用场景:需要管理大量颗粒度对象;</div> </li> <li><a href="/article/1946979964255531008.htm" title="C#学习笔记" target="_blank">C#学习笔记</a> <span class="text-muted">说笑谈古松</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>这是我以前的学习笔记,使用word写的,缩进应该有问题。3.1变量usingsystem;在这里定义的变量就可以在整个程序中使用;inta;publicclassmain{在这里定义的变量就可以在整个类中使用;intb;publicvoidstaticMain(){在这里定义的变量就可以在整个方法中使用;intc;}}也可以用static实现!3.1常量静态常量:publicconstintMAX</div> </li> <li><a href="/article/1946974924040105984.htm" title="C#复习资料" target="_blank">C#复习资料</a> <span class="text-muted">洁辉</span> <a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/jvm/1.htm">jvm</a> <div>核心目标:理解原理、掌握应用、避开陷阱、应对提问。一、类型系统(TypeSystem)-面试基石&高频考点值类型(ValueTypes)vs引用类型(ReferenceTypes)本质区别:值类型(struct,enum,基本类型如int,double,bool,char,decimal,DateTime):存储:数据本身直接存储在变量位置(通常栈上,或嵌入在引用类型对象中)。赋值/传参:复制整个</div> </li> <li><a href="/article/1946934697980391424.htm" title="掌握C#文件操作与XML处理:学习资料完整指南" target="_blank">掌握C#文件操作与XML处理:学习资料完整指南</a> <span class="text-muted">竹石文化传播有限公司</span> <div>本文还有配套的精品资源,点击获取简介:C#是一种广泛应用于Windows和跨平台开发的编程语言,它在.NET框架中包含强大的文件和XML操作能力。本文深入探讨了C#中的文件读写技术,包括使用System.IO命名空间中的File类进行文本和二进制文件处理,FileStream类的流操作,以及XML文档的解析、创建和修改方法。同时,文章也介绍了文件操作的扩展功能和在进行文件操作时应考虑的异常处理。通</div> </li> <li><a href="/article/1946890824025436160.htm" title="利用Windows .NET特性和Unicode规范化漏洞攻击DNN (DotNetNuke)" target="_blank">利用Windows .NET特性和Unicode规范化漏洞攻击DNN (DotNetNuke)</a> <span class="text-muted">sechub</span> <a class="tag" taget="_blank" href="/search/windows/1.htm">windows</a><a class="tag" taget="_blank" href="/search/.net/1.htm">.net</a><a class="tag" taget="_blank" href="/search/dnn/1.htm">dnn</a> <div>概述DNN(前身为DotNetNuke)是2003年建立的最古老的开源内容管理系统之一,使用C#(.NET)编写,由活跃的爱好者社区维护。它也被企业广泛使用。漏洞背景CVE-2017-9822历史案例我们熟悉这项技术是因为CVE-2017-9822,该漏洞允许通过DNNPersonalizationcookie的不安全反序列化进行远程代码执行(RCE)。这个CVE一直是反序列化攻击的绝佳案例研究。</div> </li> <li><a href="/article/1946877211311140864.htm" title="C# 设计模式概况" target="_blank">C# 设计模式概况</a> <span class="text-muted">业余撸码人</span> <a class="tag" taget="_blank" href="/search/.net/1.htm">.net</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/c%23/1.htm">c#</a><a class="tag" taget="_blank" href="/search/.net/1.htm">.net</a> <div>什么是设计模式大家熟知的GOF23种设计模式,源自《DesignPatterns:ElementsofReusableObject-OrientedSoftware》一书,由ErichGamma、RichardHelm、RalphJohnson和JohnVlissides合著,四人组GangofFour简称GOF。总结了在面向对象语言开发过程中常见问题的解决方案。设计模式是面向对象语言开发过程中,</div> </li> <li><a href="/article/1946876077762736128.htm" title="c++ 反射与QMetaObject::invokeMethod介绍" target="_blank">c++ 反射与QMetaObject::invokeMethod介绍</a> <span class="text-muted"></span> <div>文章目录c++QMetaObject::invokeMethodC++语言标准本身并不直接支持反射机制,这与Java、C#等语言不同,它们在语言层面提供了丰富的反射API。然而,C++是一种非常灵活的语言,可以通过一些设计和编程技巧来实现类似反射的功能。在C++中实现反射通常涉及以下几种技术:动态创建对象:反射可以在运行时创建任意一个已经定义的类的对象实例,即使你在编写代码时并不知道将要创建哪个类</div> </li> <li><a href="/article/1946870658730356736.htm" title="C# 设计模式 概述" target="_blank">C# 设计模式 概述</a> <span class="text-muted">Krik_S</span> <a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</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%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>一、7种常用的面向对象设计原则1.单一职责原则(SRP):一个对象应该只包含单一的职责,并且该职责被完全封装在一个类中2.开闭原则(OCP):软件实体应当对扩展开放,对修改关闭3.里氏代换原则(LSP):所有引用基类的地方必须透明的使用其子类的对象4.依赖倒转原则(DIP):高层模块不应该依赖低层模块,他们都应该依赖抽象。抽象不应该依赖于细节,细节应该依赖于抽象5.接口隔离原则(ISP):客户端不</div> </li> <li><a href="/article/1946867506425688064.htm" title="C# 开发与 Allen-Bradley PLC 的 EtherNet/IP 通讯接口" target="_blank">C# 开发与 Allen-Bradley PLC 的 EtherNet/IP 通讯接口</a> <span class="text-muted">威哥说编程</span> <a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a><a class="tag" taget="_blank" href="/search/tcp%2Fip/1.htm">tcp/ip</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>一、背景与动机Allen-Bradley是RockwellAutomation的核心自动化品牌,其PLC(ProgrammableLogicController)广泛应用于工业自动化领域。Allen-Bradley控制器支持通过EtherNet/IP(IndustrialProtocol)进行通信,这是一种基于工业以太网的开放协议。在工业信息化过程中,越来越多的系统需要将SCADA、MES或自定义</div> </li> <li><a href="/article/1946866625131114496.htm" title="【C# in .NET】20. 探秘静态类:抽象与密封的结合体" target="_blank">【C# in .NET】20. 探秘静态类:抽象与密封的结合体</a> <span class="text-muted">阿蒙Armon</span> <a class="tag" taget="_blank" href="/search/C%23/1.htm">C#</a><a class="tag" taget="_blank" href="/search/in/1.htm">in</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/.net/1.htm">.net</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>探秘静态类:抽象与密封的结合体一、静态类的底层本质:抽象与密封的结合体静态类作为C#中特殊的类型形式,其底层实现融合了抽象类与密封类的特性,形成了不可实例化、不可继承的类型约束。1.IL层面的静态类标识定义一个简单的静态类:publicstaticclassStringUtils{publicstaticboolIsNullOrEmpty(</div> </li> <li><a href="/article/1946857174181408768.htm" title="【设计模式&C#】外观模式(用于解决客户端对系统的许多类进行频繁沟通)" target="_blank">【设计模式&C#】外观模式(用于解决客户端对系统的许多类进行频繁沟通)</a> <span class="text-muted">大飞pkz</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%A4%96%E8%A7%82%E6%A8%A1%E5%BC%8F/1.htm">外观模式</a><a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a> <div>一种结构性设计模式。特点是将复杂的子系统调用逻辑封装到一个外观类,从而使客户端更容易与系统交互。优点:简化了接口的调用;降低了客户端与子系统的耦合度;封装了子系统的逻辑。缺点:引入了额外的类,可能会增加不必要的复杂性;不适合需要频繁修改的系统。外观类承担的职责过多适合的场景:家庭影院系统;网络服务端的连接;数据库的访问。//Car类,即外观类usingSystem;publicclassCar{/</div> </li> <li><a href="/article/1946851880017653760.htm" title="使用C#打造预约日程管理系统" target="_blank">使用C#打造预约日程管理系统</a> <span class="text-muted">Ready-Player</span> <div>本文还有配套的精品资源,点击获取简介:在信息技术领域,日程管理是重要需求。本文介绍如何使用C#语言实现一个名为"AppointmentSchedule"的预约日程管理系统。首先,文章将引导读者设计一个存储日程信息的数据结构,并提供一个容器类来管理多个预约。然后,文章将讨论如何处理预约冲突并提供用户界面设计建议。同时,也会探讨数据持久化的方法,以及如何为系统添加提醒功能和网络同步功能。最后,开发者可</div> </li> <li><a href="/article/1946847593875173376.htm" title="C#使用Quartz.NET详细讲解" target="_blank">C#使用Quartz.NET详细讲解</a> <span class="text-muted">diaochejiang2761</span> <a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a> <div>C#使用Quartz.NET详细讲解Quartz.NET是一个开源的作业调度框架,是OpenSymphony的QuartzAPI的.NET移植,它用C#写成,可用于winform和asp.net应用中。它提供了巨大的灵活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的调度。它有很多特征,如:数据库支持,集群,插件,支持cron-like表达式等等。你曾经需要应用执行一个任务吗?这个</div> </li> <li><a href="/article/1946842045721145344.htm" title="python爬虫技术——基础知识、实战" target="_blank">python爬虫技术——基础知识、实战</a> <span class="text-muted">南瓜AI</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/scrapy/1.htm">scrapy</a> <div>参考文献:Python爬虫入门(一)(适合初学者)-CSDN博客一、常用爬虫工具包Scrapy语言:Python特点:高效、灵活的爬虫框架,适合大型爬虫项目。BeautifulSoup语言:Python特点:用于解析HTML和XML,简单易用。Selenium语言:Python/Java/C#特点:支持浏览器自动化,适合处理JavaScript渲染的网页。Requests语言:Python特点:简</div> </li> <li><a href="/article/1946839268328534016.htm" title="本地开发用ASP.NET Core Web API项目创建及测试" target="_blank">本地开发用ASP.NET Core Web API项目创建及测试</a> <span class="text-muted">way_hj</span> <a class="tag" taget="_blank" href="/search/web%E5%BC%80%E5%8F%91/1.htm">web开发</a><a class="tag" taget="_blank" href="/search/asp.net/1.htm">asp.net</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a> <div>1.服务端代码(C#)1.1创建ASP.NETCoreWebAPI项目打开VisualStudio2022。选择“创建新项目”。选择“ASP.NETCoreWebAPI”模板,点击“下一步”。输入项目名称(如OracleApi),选择项目位置,点击“创建”。1.2安装Oracle数据库依赖使用NuGet管理包工具在项目中安装Oracle数据库的EFCore依赖:Oracle.EntityFrame</div> </li> <li><a href="/article/1946798290968309760.htm" title="【C# + HALCON 机器视觉】构建通用视觉软件平台:跨行业应用实战" target="_blank">【C# + HALCON 机器视觉】构建通用视觉软件平台:跨行业应用实战</a> <span class="text-muted">AI_DL_CODE</span> <a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E8%A7%86%E8%A7%89%EF%BC%9AC%23/1.htm">机器视觉:C#</a><a class="tag" taget="_blank" href="/search/%2B/1.htm">+</a><a class="tag" taget="_blank" href="/search/HALCON/1.htm">HALCON</a><a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a><a class="tag" taget="_blank" href="/search/HALCON/1.htm">HALCON</a><a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E8%A7%86%E8%A7%89/1.htm">机器视觉</a><a class="tag" taget="_blank" href="/search/%E9%80%9A%E7%94%A8%E8%BD%AF%E4%BB%B6%E5%B9%B3%E5%8F%B0/1.htm">通用软件平台</a><a class="tag" taget="_blank" href="/search/%E4%BA%8C%E7%BB%B4%E7%A0%81%E8%AF%86%E5%88%AB/1.htm">二维码识别</a><a class="tag" taget="_blank" href="/search/%E6%A8%A1%E6%9D%BF%E5%8C%B9%E9%85%8D/1.htm">模板匹配</a><a class="tag" taget="_blank" href="/search/OCR/1.htm">OCR</a> <div>摘要:本文深入探讨基于C#与HALCON开发通用视觉软件平台的技术路径与实践方法,围绕二维码识别、OCR、模板匹配等核心功能,结合模块化设计理念,详细阐述相机参数设置、图像处理、通信模块等技术实现。通过与爱普生机器人配合的定位标定案例,以及印刷品缺陷检测、包装日期识别等应用场景,展示该平台在跨行业领域的应用价值,同时提供完整实操流程与代码示例,助力开发者快速搭建高效、低成本的机器视觉解决方案。文章</div> </li> <li><a href="/article/1946781014219091968.htm" title="Python+Selenium自动化" target="_blank">Python+Selenium自动化</a> <span class="text-muted"></span> <div>1,什么是seleniumselenium是一个开源的自动化测试框架,主要适用WEB测试,可以支持多种语言(Java,C#,Python,php等),既然支持多语言开发,那跨平台自然就不用多说啦,selenium有几个版本,一个是seleniumIDE(是一个安装在火狐浏览器上的一个插件,可以用来录制脚本,然后导出自动生成对应的开发语言文件),seleniumGrid(自动化辅助工具,楼主还没深入</div> </li> <li><a href="/article/1946779503120412672.htm" title="摄影测量后方交会算法C#实现" target="_blank">摄影测量后方交会算法C#实现</a> <span class="text-muted">安平桥</span> <a class="tag" taget="_blank" href="/search/C%23/1.htm">C#</a><a class="tag" taget="_blank" href="/search/%E6%91%84%E5%BD%B1%E6%B5%8B%E9%87%8F%E5%90%8E%E6%96%B9%E4%BA%A4%E4%BC%9A/1.htm">摄影测量后方交会</a> <div>界面设计控制点PID,x(mm),y(mm),X(m),Y(m),Z(m)1,-86.15,-68.99,36589.41,25273.32,2195.172,-53.4,82.21,37631.08,31324.51,728.693,-14.78,-76.63,39100.97,24934.98,2386.54,10.46,64.43,40426.54,30319.81,757.31导入数据Op</div> </li> <li><a href="/article/1946772939588300800.htm" title="【C#、C++ 和 Java】实现重力迷宫游戏" target="_blank">【C#、C++ 和 Java】实现重力迷宫游戏</a> <span class="text-muted">鱼弦</span> <a class="tag" taget="_blank" href="/search/%E6%B8%B8%E6%88%8F%E5%BC%80%E5%8F%91/1.htm">游戏开发</a><a class="tag" taget="_blank" href="/search/c%23/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/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E6%B8%B8%E6%88%8F/1.htm">游戏</a> <div>引言(Introduction)重力迷宫是一种益智游戏,玩家通过旋转整个游戏区域(迷宫),改变重力的方向,使得玩家角色和其他可动物体(如箱子、球)沿着新的重力方向下落。玩家的目标是利用重力到达迷宫的出口。实现重力迷宫需要管理复杂的网格状态(地形和物体),处理旋转输入,并实现根据当前重力方向模拟物理下落的逻辑。技术背景(TechnicalBackground)实现重力迷宫主要涉及以下核心技术概念:游</div> </li> <li><a href="/article/34.htm" title="Java 并发包之线程池和原子计数" target="_blank">Java 并发包之线程池和原子计数</a> <span class="text-muted">lijingyao8206</span> <a class="tag" taget="_blank" href="/search/Java%E8%AE%A1%E6%95%B0/1.htm">Java计数</a><a class="tag" taget="_blank" href="/search/ThreadPool/1.htm">ThreadPool</a><a class="tag" taget="_blank" href="/search/%E5%B9%B6%E5%8F%91%E5%8C%85/1.htm">并发包</a><a class="tag" taget="_blank" href="/search/java%E7%BA%BF%E7%A8%8B%E6%B1%A0/1.htm">java线程池</a> <div>对于大数据量关联的业务处理逻辑,比较直接的想法就是用JDK提供的并发包去解决多线程情况下的业务数据处理。线程池可以提供很好的管理线程的方式,并且可以提高线程利用率,并发包中的原子计数在多线程的情况下可以让我们避免去写一些同步代码。     这里就先把jdk并发包中的线程池处理器ThreadPoolExecutor 以原子计数类AomicInteger 和倒数计时锁C</div> </li> <li><a href="/article/161.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/%E6%8A%BD%E8%B1%A1%E7%B1%BB/1.htm">抽象类</a><a class="tag" taget="_blank" href="/search/%E6%8E%A5%E5%8F%A3/1.htm">接口</a> <div>接口c++对接口和内部类只有简介的支持,但在java中有队这些类的直接支持   1 ,抽象类 :  如果一个类包含一个或多个抽象方法,该类必须限定为抽象类(否者编译器报错)   抽象方法 : 在方法中仅有声明而没有方法体    package com.wj.Interface; </div> </li> <li><a href="/article/288.htm" title="[房地产与大数据]房地产数据挖掘系统" target="_blank">[房地产与大数据]房地产数据挖掘系统</a> <span class="text-muted">comsci</span> <a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E6%8C%96%E6%8E%98/1.htm">数据挖掘</a> <div>        随着一个关键核心技术的突破,我们已经是独立自主的开发某些先进模块,但是要完全实现,还需要一定的时间...        所以,除了代码工作以外,我们还需要关心一下非技术领域的事件..比如说房地产     &nb</div> </li> <li><a href="/article/415.htm" title="数组队列总结" target="_blank">数组队列总结</a> <span class="text-muted">沐刃青蛟</span> <a class="tag" taget="_blank" href="/search/%E6%95%B0%E7%BB%84%E9%98%9F%E5%88%97/1.htm">数组队列</a> <div>      数组队列是一种大小可以改变,类型没有定死的类似数组的工具。不过与数组相比,它更具有灵活性。因为它不但不用担心越界问题,而且因为泛型(类似c++中模板的东西)的存在而支持各种类型。      以下是数组队列的功能实现代码:   import List.Student; public class</div> </li> <li><a href="/article/542.htm" title="Oracle存储过程无法编译的解决方法" target="_blank">Oracle存储过程无法编译的解决方法</a> <span class="text-muted">IT独行者</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/%E5%AD%98%E5%82%A8%E8%BF%87%E7%A8%8B%E3%80%80/1.htm">存储过程 </a> <div>今天同事修改Oracle存储过程又导致2个过程无法被编译,流程规范上的东西,Dave 这里不多说,看看怎么解决问题。   1.     查看无效对象 XEZF@xezf(qs-xezf-db1)> select object_name,object_type,status from all_objects where status='IN</div> </li> <li><a href="/article/669.htm" title="重装系统之后oracle恢复" target="_blank">重装系统之后oracle恢复</a> <span class="text-muted">文强chu</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a> <div>前几天正在使用电脑,没有暂停oracle的各种服务。 突然win8.1系统奔溃,无法修复,开机时系统 提示正在搜集错误信息,然后再开机,再提示的无限循环中。 无耐我拿出系统u盘 准备重装系统,没想到竟然无法从u盘引导成功。 晚上到外面早了一家修电脑店,让人家给装了个系统,并且那哥们在我没反应过来的时候, 直接把我的c盘给格式化了 并且清理了注册表,再装系统。 然后的结果就是我的oracl</div> </li> <li><a href="/article/796.htm" title="python学习二( 一些基础语法)" target="_blank">python学习二( 一些基础语法)</a> <span class="text-muted">小桔子</span> <a class="tag" taget="_blank" href="/search/pthon/1.htm">pthon</a><a class="tag" taget="_blank" href="/search/%E5%9F%BA%E7%A1%80%E8%AF%AD%E6%B3%95/1.htm">基础语法</a> <div>紧接着把!昨天没看继续看django 官方教程,学了下python的基本语法 与c类语言还是有些小差别: 1.ptyhon的源文件以UTF-8编码格式 2. /   除 结果浮点型 //  除 结果整形 %   除 取余数 *   乘 **  乘方 eg 5**2 结果是5的2次方25 _&</div> </li> <li><a href="/article/923.htm" title="svn 常用命令" target="_blank">svn 常用命令</a> <span class="text-muted">aichenglong</span> <a class="tag" taget="_blank" href="/search/SVN/1.htm">SVN</a><a class="tag" taget="_blank" href="/search/%E7%89%88%E6%9C%AC%E5%9B%9E%E9%80%80/1.htm">版本回退</a> <div>1 svn回退版本   1)在window中选择log,根据想要回退的内容,选择revert this version或revert chanages from this version 两者的区别:   revert this version:表示回退到当前版本(该版本后的版本全部作废)   revert chanages from this versio</div> </li> <li><a href="/article/1050.htm" title="某小公司面试归来" target="_blank">某小公司面试归来</a> <span class="text-muted">alafqq</span> <a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a> <div>先填单子,还要写笔试题,我以时间为急,拒绝了它。。时间宝贵。 老拿这些对付毕业生的东东来吓唬我。。 面试官很刁难,问了几个问题,记录下; 1,包的范围。。。public,private,protect. --悲剧了 2,hashcode方法和equals方法的区别。谁覆盖谁.结果,他说我说反了。 3,最恶心的一道题,抽象类继承抽象类吗?(察,一般它都是被继承的啊) 4,stru</div> </li> <li><a href="/article/1177.htm" title="动态数组的存储速度比较 集合框架" target="_blank">动态数组的存储速度比较 集合框架</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/%E9%9B%86%E5%90%88%E6%A1%86%E6%9E%B6/1.htm">集合框架</a> <div>集合框架: 自定义数据结构(增删改查等) package 数组; /** * 创建动态数组 * @author 百合 * */ public class ArrayDemo{ //定义一个数组来存放数据 String[] src = new String[0]; /** * 增加元素加入容器 * @param s要加入容器</div> </li> <li><a href="/article/1304.htm" title="用JS实现一个JS对象,对象里有两个属性一个方法" target="_blank">用JS实现一个JS对象,对象里有两个属性一个方法</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/js%E5%AF%B9%E8%B1%A1/1.htm">js对象</a> <div><html> <head> </head> <body> 用js代码实现一个js对象,对象里有两个属性,一个方法 </body> <script> var obj={a:'1234567',b:'bbbbbbbbbb',c:function(x){ </div> </li> <li><a href="/article/1431.htm" title="探索JUnit4扩展:使用Rule" target="_blank">探索JUnit4扩展:使用Rule</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95/1.htm">单元测试</a><a class="tag" taget="_blank" href="/search/JUnit/1.htm">JUnit</a><a class="tag" taget="_blank" href="/search/Rule/1.htm">Rule</a> <div>        在上一篇文章中,讨论了使用Runner扩展JUnit4的方式,即直接修改Test Runner的实现(BlockJUnit4ClassRunner)。但这种方法显然不便于灵活地添加或删除扩展功能。下面将使用JUnit4.7才开始引入的扩展方式——Rule来实现相同的扩展功能。 1. Rule       &n</div> </li> <li><a href="/article/1558.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>当要将JSON数据串反序列化自身为非泛型的POJO时,使用Gson.fromJson(String, Class)方法。自身为非泛型的POJO的包括两种: 1. POJO对象不包含任何泛型的字段 2. POJO对象包含泛型字段,例如泛型集合或者泛型类 Data类 a.不是泛型类, b.Data中的集合List和Map都是泛型的 c.Data中不包含其它的POJO    </div> </li> <li><a href="/article/1685.htm" title="【Kakfa五】Kafka Producer和Consumer基本使用" target="_blank">【Kakfa五】Kafka Producer和Consumer基本使用</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/kafka/1.htm">kafka</a> <div>0.Kafka服务器的配置 一个Broker, 一个Topic Topic中只有一个Partition()   1. Producer: package kafka.examples.producers; import kafka.producer.KeyedMessage; import kafka.javaapi.producer.Producer; impor</div> </li> <li><a href="/article/1812.htm" title="lsyncd实时同步搭建指南——取代rsync+inotify" target="_blank">lsyncd实时同步搭建指南——取代rsync+inotify</a> <span class="text-muted">ronin47</span> <div>1. 几大实时同步工具比较 1.1 inotify + rsync 最近一直在寻求生产服务服务器上的同步替代方案,原先使用的是 inotify + rsync,但随着文件数量的增大到100W+,目录下的文件列表就达20M,在网络状况不佳或者限速的情况下,变更的文件可能10来个才几M,却因此要发送的文件列表就达20M,严重减低的带宽的使用效率以及同步效率;更为要紧的是,加入inotify</div> </li> <li><a href="/article/1939.htm" title="java-9. 判断整数序列是不是二元查找树的后序遍历结果" target="_blank">java-9. 判断整数序列是不是二元查找树的后序遍历结果</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div> public class IsBinTreePostTraverse{ static boolean isBSTPostOrder(int[] a){ if(a==null){ return false; } /*1.只有一个结点时,肯定是查找树 *2.只有两个结点时,肯定是查找树。例如{5,6}对应的BST是 6 {6,5}对应的BST是</div> </li> <li><a href="/article/2066.htm" title="MySQL的sum函数返回的类型" target="_blank">MySQL的sum函数返回的类型</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/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/jdbc/1.htm">jdbc</a> <div>今天项目切换数据库时,出错 访问数据库的代码大概是这样: String sql = "select sum(number) as sumNumberOfOneDay from tableName"; List<Map> rows = getJdbcTemplate().queryForList(sql); for (Map row : rows</div> </li> <li><a href="/article/2193.htm" title="java设计模式之单例模式" target="_blank">java设计模式之单例模式</a> <span class="text-muted">chicony</span> <a class="tag" taget="_blank" href="/search/java%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">java设计模式</a> <div> 在阎宏博士的《JAVA与模式》一书中开头是这样描述单例模式的:   作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。 单例模式的结构   单例模式的特点: 单例类只能有一个实例。 单例类必须自己创建自己的唯一实例。 单例类必须给所有其他对象提供这一实例。   饿汉式单例类   publ</div> </li> <li><a href="/article/2320.htm" title="javascript取当月最后一天" target="_blank">javascript取当月最后一天</a> <span class="text-muted">ctrain</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a> <div> <!--javascript取当月最后一天--> <script language=javascript> var current = new Date(); var year = current.getYear(); var month = current.getMonth(); showMonthLastDay(year, mont</div> </li> <li><a href="/article/2447.htm" title="linux tune2fs命令详解" target="_blank">linux tune2fs命令详解</a> <span class="text-muted">daizj</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/tune2fs/1.htm">tune2fs</a><a class="tag" taget="_blank" href="/search/%E6%9F%A5%E7%9C%8B%E7%B3%BB%E7%BB%9F%E6%96%87%E4%BB%B6%E5%9D%97%E4%BF%A1%E6%81%AF/1.htm">查看系统文件块信息</a> <div>一.简介: tune2fs是调整和查看ext2/ext3文件系统的文件系统参数,Windows下面如果出现意外断电死机情况,下次开机一般都会出现系统自检。Linux系统下面也有文件系统自检,而且是可以通过tune2fs命令,自行定义自检周期及方式。 二.用法: Usage: tune2fs [-c max_mounts_count] [-e errors_behavior] [-g grou</div> </li> <li><a href="/article/2574.htm" title="做有中国特色的程序员" target="_blank">做有中国特色的程序员</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> <div>  从出版业说起 网络作品排到靠前的,都不会太难看,一般人不爱看某部作品也是因为不喜欢这个类型,而此人也不会全不喜欢这些网络作品。究其原因,是因为网络作品都是让人先白看的,看的好了才出了头。而纸质作品就不一定了,排行榜靠前的,有好作品,也有垃圾。 许多大牛都是写了博客,后来出了书。这些书也都不次,可能有人让为不好,是因为技术书不像小说,小说在读故事,技术书是在学知识或温习知识,有</div> </li> <li><a href="/article/2701.htm" title="Android:TextView属性大全" target="_blank">Android:TextView属性大全</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/textview/1.htm">textview</a> <div>android:autoLink    设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接。可选值(none/web/email/phone/map/all)  android:autoText    如果设置,将自动执行输入值的拼写纠正。此处无效果,在显示输入法并输</div> </li> <li><a href="/article/2828.htm" title="tomcat虚拟目录安装及其配置" target="_blank">tomcat虚拟目录安装及其配置</a> <span class="text-muted">eksliang</span> <a class="tag" taget="_blank" href="/search/tomcat%E9%85%8D%E7%BD%AE%E8%AF%B4%E6%98%8E/1.htm">tomcat配置说明</a><a class="tag" taget="_blank" href="/search/tomca%E9%83%A8%E7%BD%B2web%E5%BA%94%E7%94%A8/1.htm">tomca部署web应用</a><a class="tag" taget="_blank" href="/search/tomcat%E8%99%9A%E6%8B%9F%E7%9B%AE%E5%BD%95%E5%AE%89%E8%A3%85/1.htm">tomcat虚拟目录安装</a> <div>转载请出自出处:http://eksliang.iteye.com/blog/2097184 1.-------------------------------------------tomcat  目录结构 config:存放tomcat的配置文件 temp  :存放tomcat跑起来后存放临时文件用的 work   : 当第一次访问应用中的jsp</div> </li> <li><a href="/article/2955.htm" title="浅谈:APP有哪些常被黑客利用的安全漏洞" target="_blank">浅谈:APP有哪些常被黑客利用的安全漏洞</a> <span class="text-muted">gg163</span> <a class="tag" taget="_blank" href="/search/APP/1.htm">APP</a> <div>首先,说到APP的安全漏洞,身为程序猿的大家应该不陌生;如果抛开安卓自身开源的问题的话,其主要产生的原因就是开发过程中疏忽或者代码不严谨引起的。但这些责任也不能怪在程序猿头上,有时会因为BOSS时间催得紧等很多可观原因。由国内移动应用安全检测团队爱内测(ineice.com)的CTO给我们浅谈关于Android 系统的开源设计以及生态环境。 1. 应用反编译漏洞:APK 包非常容易被反编译成可读</div> </li> <li><a href="/article/3082.htm" title="C#根据网址生成静态页面" target="_blank">C#根据网址生成静态页面</a> <span class="text-muted">hvt</span> <a class="tag" taget="_blank" href="/search/Web/1.htm">Web</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>HoverTree开源项目中HoverTreeWeb.HVTPanel的Index.aspx文件是后台管理的首页。包含生成留言板首页,以及显示用户名,退出等功能。根据网址生成页面的方法:   bool CreateHtmlFile(string url, string path) { //http://keleyi.com/a/bjae/3d10wfax.htm stri</div> </li> <li><a href="/article/3209.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 简介 SVG 是使用 XML 来描述二维图形和绘图程序的语言。 学习之前应具备的基础知识: 继续学习之前,你应该对以下内容有基本的了解: HTML XML 基础 如果希望首先学习这些内容,请在本站的首页选择相应的教程。 什么是SVG? SVG 指可伸缩矢量图形 (Scalable Vector Graphics) SVG 用来定义用于网络的基于矢量</div> </li> <li><a href="/article/3336.htm" title="一个简单的java栈" target="_blank">一个简单的java栈</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><a class="tag" taget="_blank" href="/search/%E6%A0%88/1.htm">栈</a> <div> public class MyStack { private long[] arr; private int top; public MyStack() { arr = new long[10]; top = -1; } public MyStack(int maxsize) { arr = new long[maxsize]; top </div> </li> <li><a href="/article/3463.htm" title="基础数据结构和算法八:Binary search" target="_blank">基础数据结构和算法八:Binary search</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/Binary+search/1.htm">Binary search</a> <div>Binary search needs an ordered array so that it can use array indexing to dramatically reduce the number of compares required for each search, using the classic and venerable binary search algori</div> </li> <li><a href="/article/3590.htm" title="12个C语言面试题,涉及指针、进程、运算、结构体、函数、内存,看看你能做出几个!" target="_blank">12个C语言面试题,涉及指针、进程、运算、结构体、函数、内存,看看你能做出几个!</a> <span class="text-muted">刘星宇</span> <a class="tag" taget="_blank" href="/search/c/1.htm">c</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a> <div>12个C语言面试题,涉及指针、进程、运算、结构体、函数、内存,看看你能做出几个! 1.gets()函数 问:请找出下面代码里的问题: #include<stdio.h> int main(void) {     char buff[10];     memset(buff,0,sizeof(buff)); </div> </li> <li><a href="/article/3717.htm" title="ITeye 7月技术图书有奖试读获奖名单公布" target="_blank">ITeye 7月技术图书有奖试读获奖名单公布</a> <span class="text-muted">ITeye管理员</span> <a class="tag" taget="_blank" href="/search/%E6%B4%BB%E5%8A%A8/1.htm">活动</a><a class="tag" taget="_blank" href="/search/ITeye/1.htm">ITeye</a><a class="tag" taget="_blank" href="/search/%E8%AF%95%E8%AF%BB/1.htm">试读</a> <div>ITeye携手人民邮电出版社图灵教育共同举办的7月技术图书有奖试读活动已圆满结束,非常感谢广大用户对本次活动的关注与参与。 7月试读活动回顾: http://webmaster.iteye.com/blog/2092746 本次技术图书试读活动的优秀奖获奖名单及相应作品如下(优秀文章有很多,但名额有限,没获奖并不代表不优秀): 《Java性能优化权威指南》 </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>