资源搜
资源搜
👀 联系夏柔
🔥 投稿源码
资源搜

资源搜

  • 全部
  • 123盘
  • 阿里盘
  • 百度云
  • 迅雷
  • 夸克
  • 115
  • 蓝奏云
  • 其他
已收录34127条资源,仅供学习交流,请在24h内删除资源!

《编写高质量代码:改善Java程序的151个建议》PDF

资源名称:《编写高质量代码:改善Java程序的151个建议》PDF 内容简介: 在通往“Java技术殿堂”的路上,本书将为你指点迷津!内容全部由Java编码的最佳实践组成,从语法、程序设计和架构、工具和框架、编码风格和编程思想等五大方面对Java程序员遇到的各种棘手的疑难问题给出了经验性的解决方案,为Java程序员如何编写高质量的Java代码提出了151条极为宝贵的建议。对于每一个问题,不仅以建议的方式从正反两面给出了被实践证明为十分优秀的解决方案和非常糟糕的解决方案,而且还分析了问题产生的根源,犹如醍醐灌顶,让人豁然开朗。 全书一共12章,1~3章针对Java语法本身提出了51条建议,例如覆写变长方法时应该注意哪些事项、final修饰的常量不要在运行期修改、匿名类的构造函数特殊在什么地方等;4~9章重点针对JDK API的使用提出了80条建议,例如字符串的拼接方法该如何选择、枚举使用时有哪些注意事项、出现NullPointerException该如何处理、泛型的多重界限该如何使用、多线程编程如何预防死锁,等等;10~12章针对程序性能、开源的工具和框架、编码风格和编程思想等方面提出了20条建议。 本书针对每个问题所设计应用场景都非常典型,给出的建议也都与实践紧密结合。书中的每一条建议都可能在你的下一行代码、下一个应用或下一个项目中崭露头角,建议你将此书搁置在手边,随时查阅,一定能使你的学习和开发工作事半功倍。 作者简介: 秦小波,资深软件开发工程师、系统分析师和架构师(获Sun架构师认证),从软件开发工作10余年,实践经验极其丰富。资深Java技术专家,Java语言、Spring、Struts 2、Hibernate、iBatis、jBPM等Java技术,在企业级Java应用领域积累了大量工程经验,对ESB、BPEL等整合技术也有较深入的认识。精通设计模式,对设计模式有深刻的认识和独到见解,而且创造性地提出了自己在大量实践中总结出来的新的设计模式。他撰写的《设计模式之禅》一书凭借优质的内容和良好的可读性广获读者好评,被誉为“设计模式领域的里程碑之作。此外,他还是一位优秀的DBA,具有IBM DB2 DBA资格认证,对海量数据处理有深入的研究。 资源目录: 前言 第1章 Java开发中通用的方法和准则/1 建议1: 不要在常量和变量中出现易混淆的字母/2 建议2: 莫让常量蜕变成变量/2 建议3: 三元操作符的类型务必一致/3 建议4: 避免带有变长参数的方法重载/4 建议5: 别让null值和空值威胁到变长方法/6 建议6: 覆写变长方法也循规蹈矩/7 建议7: 警惕自增的陷阱/8 建议8: 不要让旧语法困扰你/10 建议9: 少用静态导入/11 建议10: 不要在本类中覆盖静态导入的变量和方法/13 建议11: 养成良好习惯,显式声明UID/14 建议12: 避免用序列化类在构造函数中为不变量赋值/17 建议13: 避免为final变量复杂赋值/19 建议14: 使用序列化类的私有方法巧妙解决部分属性持久化问题/20 建议15: break万万不可忘/23 建议16: 易变业务使用脚本语言编写/25 建议17: 慎用动态编译/27 建议18: 避免instanceof非预期结果/29 建议19: 断言绝对不是鸡肋/31 建议20: 不要只替换一个类/33 第2章 基本类型/35 建议21: 用偶判断,不用奇判断/36 建议22: 用整数类型处理货币/37 建议23: 不要让类型默默转换/38 建议24: 边界,边界,还是边界/39 建议25: 不要让四舍五入亏了一方/41 建议26: 提防包装类型的null值/43 建议27: 谨慎包装类型的大小比较/45 建议28: 优先使用整型池/46 建议29: 优先选择基本类型/48 建议30: 不要随便设置随机种子/49 第3章 类、对象及方法/52 建议31: 在接口中不要存在实现代码/53 建议32: 静态变量一定要先声明后赋值/54 建议33: 不要覆写静态方法/55 建议34: 构造函数尽量简化/57 建议35: 避免在构造函数中初始化其他类/58 建议36: 使用构造代码块精炼程序/60 建议37: 构造代码块会想你所想/61 建议38: 使用静态内部类提高封装性/63 建议39: 使用匿名类的构造函数/65 建议40: 匿名类的构造函数很特殊/66 建议41: 让多重继承成为现实/68 建议42: 让工具类不可实例化/70 建议43: 避免对象的浅拷贝/71 建议44: 推荐使用序列化实现对象的拷贝/73 建议45: 覆写equals方法时不要识别不出自己/74 建议46: equals应该考虑null值情景/76 建议47: 在equals中使用getClass进行类型判断/77 建议48: 覆写equals方法必须覆写hashCode方法/78 建议49: 推荐覆写toString方法/80 建议50: 使用package-info类为包服务/81 建议51: 不要主动进行垃圾回收/82 第4章 字符串/83 建议52: 推荐使用String直接量赋值/84 建议53: 注意方法中传递的参数要求/85 建议54: 正确使用String、StringBuffer、StringBuilder/86 建议55: 注意字符串的位置/87 建议56: 自由选择字符串拼接方法/88 建议57: 推荐在复杂字符串操作中使用正则表达式/90 建议58: 强烈建议使用UTF编码/92 建议59: 对字符串排序持一种宽容的心态/94 第5章 数组和集合/97 建议60: 性能考虑,数组是首选/98 建议61: 若有必要,使用变长数组/99 建议62: 警惕数组的浅拷贝/100 建议63: 在明确的场景下,为集合指定初始容量/101 建议64: 多种最值算法,适时选择/104 建议65: 避开基本类型数组转换列表陷阱/105 建议66: asList方法产生的List对象不可更改/107 建议67: 不同的列表选择不同的遍历方法/108 建议68: 频繁插入和删除时使用LinkedList/112 建议69: 列表相等只需关心元素数据/115 建议70:子列表只是原列表的一个视图/117 建议71: 推荐使用subList处理局部列表/119 建议72: 生成子列表后不要再操作原列表/120 建议73: 使用Comparator进行排序/122 建议74: 不推荐使用binarySearch对列表进行检索/125 建议75: 集合中的元素必须做到compareTo和equals同步/127 建议76: 集合运算时使用更优雅的方式/129 建议77: 使用shuffle打乱列表/131 建议78: 减少HashMap中元素的数量/132 建议79: 集合中的哈希码不要重复/135 建议80: 多线程使用Vector或HashTable/139 建议81: 非稳定排序推荐使用List/141 建议82: 由点及面,一叶知秋—集合大家族/143 第6章 枚举和注解/145 建议83: 推荐使用枚举定义常量/146 建议84: 使用构造函数协助描述枚举项/149 建议85: 小心switch带来的空值异常/150 建议86: 在switch的default代码块中增加AssertionError错误/152 建议87: 使用valueOf前必须进行校验/152 建议88: 用枚举实现工厂方法模式更简洁/155 建议89: 枚举项的数量限制在64个以内/157 建议90: 小心注解继承/160 建议91: 枚举和注解结合使用威力更大/162 建议92: 注意@Override不同版本的区别/164 第7章 泛型和反射/166 建议93: Java的泛型是类型擦除的/167 建议94: 不能初始化泛型参数和数组/169 建议95: 强制声明泛型的实际类型/170 建议96: 不同的场景使用不同的泛型通配符/172 建议97: 警惕泛型是不能协变和逆变的/174 建议98: 建议采用的顺序是List、List、List/176 建议99: 严格限定泛型类型采用多重界限/177 建议100: 数组的真实类型必须是泛型类型的子类型/179 建议101: 注意Class类的特殊性/181 建议102: 适时选择getDeclared×××和get×××/181 建议103: 反射访问属性或方法时将Accessible设置为true /182 建议104: 使用forName动态加载类文件/184 建议105: 动态加载不适合数组/186 建议106: 动态代理可以使代理模式更加灵活/188 建议107: 使用反射增加装饰模式的普适性/190 建议108: 反射让模板方法模式更强大/192 建议109: 不需要太多关注反射效率/194 第8章 异常/197 建议110: 提倡异常封装/198 建议111: 采用异常链传递异常/200 建议112: 受检异常尽可能转化为非受检异常/202 建议113: 不要在finally块中处理返回值/204 建议114: 不要在构造函数中抛出异常/207 建议115: 使用Throwable获得栈信息/210 建议116: 异常只为异常服务/212 建议117: 多使用异常,把性能问题放一边/213 第9章 多线程和并发/215 建议118: 不推荐覆写start方法/216 建议119: 启动线程前stop方法是不可靠的/218 建议120: 不使用stop方法停止线程/220 建议121: 线程优先级只使用三个等级/224 建议122: 使用线程异常处理器提升系统可靠性/226 建议123: volatile不能保证数据同步/228 建议124: 异步运算考虑使用Callable接口/232 建议125: 优先选择线程池/233 建议126: 适时选择不同的线程池来实现/237 建议127: Lock与synchronized是不一样的/240 建议128: 预防线程死锁/245 建议129: 适当设置阻塞队列长度/250 建议130: 使用CountDownLatch协调子线程/252 建议131: CyclicBarrier让多线程齐步走/254 第10章 性能和效率/256 建议132: 提升Java性能的基本方法/257 建议133: 若非必要,不要克隆对象/259 建议134: 推荐使用“望闻问切”的方式诊断性能/261 建议135: 必须定义性能衡量标准/263 建议136: 枪打出头鸟—解决首要系统性能问题/264 建议137: 调整JVM参数以提升性能/266 建议138: 性能是个大“咕咚”/268 第11章 开源世界/271 建议139: 大胆采用开源工具/272 建议140: 推荐使用Guava扩展工具包/273 建议141: Apache扩展包/276 建议142: 推荐使用Joda日期时间扩展包/280 建议143: 可以选择多种Collections扩展/282 第12章 思想为源/285 建议144: 提倡良好的代码风格/286 建议145: 不要完全依靠单元测试来发现问题/287 建议146: 让注释正确、清晰、简洁/290 建议147: 让接口的职责保持单一/294 建议148: 增强类的可替换性/295 建议149: 依赖抽象而不是实现/298 建议150: 抛弃7条不良的编码习惯/299 建议151: 以技术员自律而不是工人/301 资源截图:
陌佑
百度云
百度云

《JUnit实战(第2版)》PDF

资源名称:《JUnit实战(第2版)》PDF 内容简介: 《JUnit实战(第2版)》从认识JUnit、不同的测试策略、JUnit与构建过程、JUnit扩展4个方面,由浅入深、由易到难地对JUnit展开了系统的讲解,包括探索JUnit的核心、软件测试原则、测试覆盖率与开发、使用stub进行粗粒度测试、使用mock objects进行测试、容器内测试、从Ant中运行JUnit测试、从Maven2中运行JUnit测试、持续集成工具、表示层的测试、Ajax测试、使用Cactus进行服务器端的Java测试、测试JSF应用程序、测试OSGi组件、测试数据库访问、测试基于JPA的应用程序、JUnit的其他用法等内容。 《JUnit实战(第2版)》不仅仅介绍了使用JUnit框架测试项目必须掌握的核心概念,还指导读者如何使用JUnit框架编写自己的测试用例,并针对在编写代码的过程中如何使得代码可测试给出建议。《JUnit实战(第2版)》还介绍了基础的软件开发原则,如测试驱动开发(TDD)等,以便指导用户如何使用不同的工具来测试典型Java EE应用程序的每一层。此外,《JUnit实战(第2版)》也提供了几个附录,以帮助读者快速转换到最新版本的JUnit,并且能够轻松地集成自己喜欢的IDE。 作者简介: Petar Tahchiev是一名软件工程师,担任了Apache软件基金会(Apache SoftwareFoundation)的Jakarta项目管理委员会(PMC)成员。多年来,他一直是JakartaCactus的开发主力,也参与了Apache Maven开发团队。此外,他也是JCP成员和Bulgarian JavaUser Group(BGJUG)的负责人,经常在OpenFest、ApacheCON、CommunityONE和许多其他会议上发表演讲。Petar在保加利亚出生并长大,并以优异的成绩毕业于索非亚(Sofia,保加利亚首都)大学的数学系。他曾在德国和荷兰的公司(如Unic、惠普)任职多年,现在他回到可爱的索非亚,重点发展他自己的公司Phamola,他的公司主要为客户在如何通过技术赢得优势方面提供帮助和建议。 资源目录: 第1部分 认识JUnit 第1章 JUnit起步  1.1 证实它能运行  1.2 从零开始  1.3 理解单元测试框架  1.4 JUnit的设计目标  1.5 安装JUnit  1.6 使用JUnit测试  1.7 小结  第2章 探索JUnit的核心  2.1 探索JUnit核心  2.2 运行参数化测试  2.3 JUnit的测试运行器  2.3.1 测试运行器简介  2.3.2 JUnitCore fa?ade  2.3.3 自定义测试运行器  2.4 用Suite来组合测试  2.4.1 组合一组测试类  2.4.2 组合一组测试集  2.4.3 Suite、IDE、Ant与Maven  2.5 小结  第3章 掌握JUnit  3.1 引入controller组件  3.1.1 设计接口  3.1.2 实现基类  3.2 让我们来测试它  3.2.1 测试DefaultController  3.2.2 添加一个处理器  3.2.3 请求处理  3.2.4 改进testProcessRequest  3.3 测试异常处理  3.3.1 模拟异常条件  3.3.2 测试异常  3.4 超时测试  3.5 引入Hamcrest匹配器  3.6 创建测试项目  3.7 小结  第4章 软件测试原则  4.1 单元测试的必要性  4.1.1 带来更高的测试覆盖率  4.1.2 提高团队效率  4.1.3 监测衰退和减少调试  4.1.4 自信地重构  4.1.5 改进实现  4.1.6 将预期的行为文档化  4.1.7 启用代码覆盖率以及其他指标  4.2 测试类型  4.2.1 软件测试的4种类型  4.2.2 单元测试的3种类型  4.3 黑盒测试与白盒测试  4.4 小结  第2部分 不同的测试策略 第5章 测试覆盖率与开发  5.1 测量测试覆盖率  5.1.1 测试覆盖率简介  5.1.2 Cobertura简介  5.1.3 生成测试覆盖率报告  5.1.4 结合黑盒与白盒测试  5.2 编写可测试的代码  5.2.1 公共API是协议  5.2.2 减少依赖关系  5.2.3 创建简单的构造函数  5.2.4 遵循最少知识原则  5.2.5 避免隐藏的依赖关系与全局状态  5.2.6 单态模式的优点和缺点  5.2.7 优先使用通用方法  5.2.8 组合优先于继承  5.2.9 多态优先于条件语句  5.3  测试驱动开发  5.3.1  调整开发周期  5.3.2 TDD的两个步骤  5.4  在开发周期中的测试  5.5  小结  第6章 使用stub进行粗粒度测试  6.1 stub简介  6.2 使用stub测试一个HTTP连接  6.2.1 选择使用stub的方案  6.2.2 使用Jetty作为嵌入式服务器  6.3 使用stub替换Web服务器资源  6.3.1 建立第一个stub测试  6.3.2 针对故障情况进行测试  6.3.3 回顾第一个stub测试  6.4 替换连接  6.4.1 创建自定义的URL协议处理器  6.4.2 创建一个JDK的HttpURLConnection stub  6.4.3 运行测试  6.5 小结  第7章 使用mock objects进行测试  7.1  mock objects简介  7.2 使用mock objects进行单元测试  7.3 使用mock objects来重构  7.3.1 重构示例  7.4 替换一个HTTP连接  7.4.1 定义mock objects  7.4.2 测试一个简单的方法  7.4.3 第一次尝试:简单的方法重构技巧  7.4.4 第二个尝试:使用类工厂来重构  7.5 把mocks用作特洛伊木马  7.6 介绍mock框架  7.6.1 使用EasyMock  7.6.2 使用JMock  7.7 小结  第8章 容器内测试  8.1 标准单元测试的局限性  8.2 mock objects解决方案  8.3 容器内测试  8.3.1 实现策略  8.3.2 容器内测试框架  8.4 比较stub、mock objects和容器内测试  8.4.1 stub的优点与缺点  8.4.2 mock objects的优点和缺点  8.4.3 容器内测试的优点与缺点  8.4.4 容器内测试与容器外测试  8.5 小结  第3部分 JUnit与构建过程 第9章 从Ant中运行JUnit测试  9.1 生命中的一天  9.2 从Ant中运行测试  9.3 认识并安装Ant  9.4 Ant的目标、项目、属性以及任务  9.4.1 javac任务  9.4.2 JUnit任务  9.5 让Ant来执行任务  9.6 使用Ivy进行依赖管理  9.7 创建HTML报告  9.8 批处理测试  9.9 小结  第10章 从Maven2中运行JUnit测试  10.1 Maven的功能  10.1.1 约定优于配置  10.1.2 强大的依赖管理  10.1.3 Maven的构建生命周期  10.1.4 基于插件的架构  10.1.5 Maven项目对象模型  10.2 建立一个Maven项目  10.3 Maven插件的引入  10.3.1 Maven的Compiler插件  10.3.2 Maven的Surefire插件  10.3.3 使用Maven生成HTML格式的JUnit报告  10.4 Maven的不足  10.5 小结  第11章 持续集成工具  11.1 尝试持续集成  11.1.1 持续集成测试  11.2 拯救用户的CruiseControl  11.2.1 开始使用CruiseControl  11.2.2 创建一个示例项目  11.2.3 解析CruiseControl配置文件  11.3 另一个持续集成工具--Hudson  11.3.1 Hudson简介  11.3.2 安装  11.3.3 配置Hudson  11.3.4 配置Hudson中的项目  11.4 持续集成的优势  11.5 小结  第4部分 JUnit扩展 第12章 表示层的测试  12.1 选择测试框架  12.2 HtmlUnit简介  12.2.1 一个实例  12.3 编写HtmlUnit测试  12.3.1 HTML断言  12.3.2 对特定的Web浏览器进行测试  12.3.3 测试多个Web浏览器  12.3.4 创建独立的测试  12.3.5 导航对象模型  12.3.6 通过特定的元素类型访问元素  12.3.7 通过名字与索引访问元素  12.3.8 通过引用访问元素  12.3.9 使用XPath  12.3.10 测试失败和异常  12.3.11 应用程序与网络导航  12.3.12 使用HtmlUnit测试表单  12.3.13 测试框架(frame)  12.3.14 测试Javascript  12.3.15 测试CSS  12.3.16 SSL错误  12.4 集成HtmlUnit和Cactus  12.4.1 在Cactus中编写测试  12.5 Selenium简介  12.6 生成Selenium测试  12.6.1 一个实例  12.7 运行Selenium测试  12.7.1 管理Selenium服务器  12.7.2 使用JUnit 4运行Selenium测试  12.8 编写Selenium测试  12.8.1 针对特定的Web浏览器进行测试  12.8.2 测试多个浏览器  12.8.3 应用程序和网络导航  12.8.4 通过引用访问元素  12.8.5 通过异常使测试失败  12.8.6 使用Selenium测试表单  12.8.7 测试Javascript告警  12.8.8 捕获一个JUnit 3测试失败的截屏  12.8.9 捕获一个JUnit 4测试失败的截屏  12.9 HtmlUnit与Selenium  12.10 小结  第13章 Ajax测试  13.1 Ajax应用程序难以测试的原因  13.1.1 传统的Web交互  13.1.2 Ajax交互  13.1.3 一个崭新的世界  13.1.4 测试的挑战  13.2 Ajax的测试模式  13.2.1 功能测试  13.2.2 客户端脚本单元测试  13.2.3 服务测试  13.3 功能测试  13.3.1 使用Seleniun进行功能测试  13.3.2 使用HtmlUnit进行功能测试  13.4 Javascript测试  13.4.1 使用RhinoUnit测试Javascript  13.4.2 使用JsUnit测试Javascript  13.4.3 编写JsUnit测试用例  13.4.4 编写JsUnit测试集  13.4.5 手动运行JsUnit测试用例  13.4.6 使用Ant自动运行JsUnit测试用例  13.5 RhinoUnit与JsUnit  13.6 使用JSLint检验最佳实践  13.7 使用HttpClient测试服务  13.7.1 调用XML服务  13.7.2 验证XML响应  13.7.3 验证JSON响应  13.8 测试Google Web工具箱应用程序  13.8.1 为GWT应用程序选择测试框架  13.8.2 手动创建GWTTestCase  13.8.3 使用junitCreator创建GWTTestCase  13.8.4 运行测试用例  13.8.5 安装和拆卸测试  13.8.6 创建测试集  13.8.7 运行测试集  13.9 小结  第14章 使用Cactus进行服务器端的Java测试  14.1 什么是Cactus?  14.2 使用Cactus进行测试  14.2.1 你可以使用Cactus测试的Java组件  14.2.2 一般原则  14.2.3 Cactus如何工作  14.3 测试servlet和filters  14.3.1 介绍管理应用程序  14.3.2 使用Cactus编写servlet测试  14.4 测试JSP  14.4.1 回顾管理应用程序  14.4.2 什么是JSP单元测试?  14.4.3 单独使用Cactus对JSP进行单元测试  14.4.4 利用SQL结果数据执行JSP  14.5 测试EJB  14.6 什么是Cargo?  14.7 使用Ant执行Cactus测试  14.7.1 用来准备文件的Cactus  14.8 使用Maven2x执行Cactus测试  14.8.1 Maven2 cactifywar MOJO  14.8.2 Maven2 cactifyear MOJO  14.9 从浏览器执行Cactus测试  14.10 小结  第15章 测试JSF应用程序  15.1 引入JSF  15.2 介绍示例应用程序  15.3 测试JSF应用程序时的典型问题  15.4 测试JSF应用程序的策略  15.4.1 黑盒方法  15.4.2 Mock object援救  15.5 使用JSUnit测试示例应用程序  15.5.1 从浏览器执行一个JSFUnit测试  15.5.2 使用JSFUnit测试Ajax  15.6 使用HtmlUnit与JSFUnit  15.7 JSF应用程序的性能测试  15.8 小结  第16章 测试OSGi组件  16.1 OSGi简介  16.2 第一个OSGi服务  16.2.1 示例应用程序  16.3 测试OSGi服务  16.3.1 Mock objects  16.4 引入JUnit4OSGi  16.5 小结  第17章 测试数据库访问  17.1 数据库单元测试的阻抗不匹配  17.1.1 单元测试必须执行隔离的代码  17.1.2 单元测试必须易于编写和运行  17.1.3 单元测试必须运行快速  17.2 DbUnit介绍  17.2.1 示例应用程序  17.2.2 设置DbUnit并运行示例应用程序  17.3 使用数据集来填充数据库  17.3.1 剖析DatabaseOperation  17.4 用数据集断言数据库状态  17.4.1 过滤数据集  17.4.2 忽略数据列  17.5 使用ReplacementDataSet转换数据  17.5.1 使用ReplacementDataSet处理不同的ID问题  17.5.2 处理NULL值  17.6 从已有的数据库数据中创建数据集  17.7 高级技术  17.7.1 DbUnit与模板设计模式  17.7.2 通过自定义注释提高重用  17.7.3 在数据集中使用表达式语言  17.8 数据库访问测试的最佳做法  17.8.1 每个开发者使用一个数据库  17.8.2 确保目标数据库被测试  17.8.3 为加载和存储数据创建互补测试  17.8.4 编写加载测试用例时,应涵盖所有基本场景  17.8.5 计划数据集的使用  17.8.6 测试清理  17.9 小结  第18章 测试基于JPA的应用程序  18.1 测试多层应用程序  18.1.1 示例应用程序  18.1.2 多层、多种测试策略  18.2 JPA测试的方方面面  18.3 准备基础设施  18.4 测试JPA实体映射  18.4.1 使用JPA ID生成器集成测试用例  18.5 测试基于JPA的DAO  18.6 测试外键名字  18.7 小结  第19章 JUnit的其他用法  19.1 介绍  19.1.1 工具概述  19.1.2 运行示例  19.2 透明地使用mock  19.2.1 Unitils的EasyMock支持  19.2.2 FEST-Mocks  19.2.3 Mycila  19.3 DbUnit集成  19.4 使断言更简单  19.4.1 JUnit-addons断言包  19.4.2 Unitlis的ReflectionAssert  19.4.3 FEST流畅断言模块  19.4.4 Mylica继承断言  19.5 使用反射绕过封装  19.5.1 内部替代物  19.5.2 JUnit-addons  19.5.3 FEST-Reflect  19.6 小结  附录A JUnit 3和JUnit 4之间的不同  A.1 全球的需求变化  A.1.1 JDK的要求  A.1.2 向后/向前兼容  A.2 API中的变化  A.2.1 包结构  A.2.2 构造函数  A.2.3 扩展TestCase  A.2.4 测试方法名称  A.3 注释与新增的静态导入  A.3.1 @Before与@After注释  A.3.2 @BeforeClass和@AfterClass注释  A.3.3 忽略测试的差异  A.3.4 静态导入  A.3.5 异常测试  A.3.6 超时测试  A.4 新的JUnit runners  A.4.1 测试运行器(Test runner)  A.4.2 测试集  A.4.3 参数化测试  A.5 新的断言和假设  A.5.1 Hamcrest断言  A.5.2 假设  A.5.3 新断言  A.5.4 断言错误  附录B 使用自定义的运行器和匹配器扩展JUnitAPI  B.1 介绍拦截器模式  B.2 实现自定义运行器  B.3 实现自定义匹配器  附录C 本书源代码  C.1 获取源代码  C.2 源代码概览  C.3 外部库  C.4 JAR版本  C.5 目录结构约定  附录D JUnit IDE集成  D.1 JUnit与Eclipse的集成  D.1.1 安装Eclipse  D.1.2 从源代码创建Eclipse项目  D.1.3 从Eclipse运行JUnit测试  D.1.4 从Eclipse运行Ant脚本  D.2 引入JUnitMAX Eclipse插件  D.2.1 集成在你的开发周期中  D.2.2 执行顺序  D.2.3 恢复到上一个稳定版本  D.3 JUnit与NetBeans集成  D.3.1 安装NetBeans  D.3.2 从源代码中创建NetBeans项目  D.3.3 从NetBeans运行JUnit测试  D.3.4 从NetBeans运行Ant脚本  附录E 安装软件  E.1 安装HtmlUnit  E.1.1 标准配置  E.1.2 Eclipse的配置  E.2 使用HtmlUnit配置Cactus  E.3 安装Selenium  E.4 安装RhinoUnit  E.5 安装JsUnit  资源截图:
陌佑
百度云
百度云

《学通Java的24堂课》PDF

资源名称:《学通Java的24堂课》PDF 内容简介: 《学通Java的24堂课》以24堂课的形式,从初中级用户的角度进行科学合理的设计,全面讲述了使用java语言进行程序开发的必备知识和技能,突出学、练、用结合。主要内容包括java概述、使用ide集成开发工具、java语言基础知识、流程控制语句、数组应用、面向对象编程、字符串处理、类的继承与多态特性、其他类特性与异常处理、swing编程基础、多线程编程、事件处理的应用、常用工具类、常用集合类、数据库编程应用、输入输出流与文件、网络程序设计、表格控件的应用、树控件的应用、其他高级控件、图形绘制技术、进销存管理系统、企业内部通讯管理系统、图书馆管理系统。 《学通Java的24堂课》适合有志于从事软件开发的初学者、高校计算机相关专业的学生和毕业生,也适合作为软件开发人员的参考手册或者高校的教学参考书。 《学通Java的24堂课》通过教学视频、实例训练、综合应用、项目实践、自我测试、行动指南逐步深入和强化训练等方式,并辅之以心理励志,来持续激发读者主动学习、自发学习。 《学通Java的24堂课》给出了377个小型实例,206个综合应用,6个项目案例(部分在光盘中),各类技巧、试验200余个,测试题目210个,以方便读者训练、测试和快速提升。 《学通Java的24堂课》dvd光盘给出了120集(358段)多媒体教学视频讲解,每个实例都给出了相应的源程序,可直接复制源码学习或应用。 资源目录: 第1部分 基础篇  第1堂课 java概述   第2堂课 使用ide集成开发工具   第3堂课 java语言基础知识   第4堂课 流程控制语句   第5堂课 数组应用   第6堂课 面向对象编程   第7堂课 字符串处理   第2部分 提高篇  第8堂课 类的继承与多态特性   第9堂课 其他类特性与异常处理   第10堂课 swing编程基础   第11堂课 多线程编程   第12堂课 事件处理的应用   第13堂课 常用工具类   第14堂课 常用集合类  第3部分 高级篇  第15堂课 数据库编程应用    第16堂课 输入输出流与文件   第17堂课 网络程序设计   第18堂课 表格控件的应用   第19堂课 树控件的应用   第21堂课 图形绘制技术  第4部分 实战篇  第22堂课 进销存管理系统   第23堂课 企业内部通讯管理系统   第24堂课 图书馆管理系统  资源截图:
陌佑
百度云
百度云

《Java编程规范(第三版)》PDF

资源名称:《Java编程规范(第三版)》PDF 内容简介: 本书由Java技术的发明者编写,是Java编程语言的权威性技术指南。如果你想知识语言之构造的精确含义,本书是最好的资源。本书全面、准确而详细地论及了Java编程语言。它提供了对于自前一版以来添加的所有新特性的完整描述,包括泛型、注释、断言、自动装臬、枚举、for-each循环、可变元数方法和静态导入子句。 本书试图详细说明Java语言的语法和语义规范。编者试图在每一种语言结构的行为,以便让所有实现都接受同一个程序。除了时间相关性或无法确定因素之外,如果有足够的时间和足够的内存空间,用Java编程语言所写的程序应该可以在所有机器和所有实现中计算出相同的结果。 资源目录: 前言 第二版 前言 第三版 前言 第1章 简介 1.1 示例程序 1.2 符号 1.3 预定义类和接口的关系 1.4 参考文献 第2章 语法 2.1 与环境无关的语法 2.2 词法语法 2.3 语义语法 2.4 .语法符号 第3章 词法结构 3.1 Unicode 3.2 词法转换 3.3 Unicode转义符 3.4 行终止符 3.5 输入元素和标记 3.6 空白 3.7 注释 3.8 标识符 3.9 关键字 3.10 字面值 3.11 分隔符 3.12 运算符 第4章 类型、值和变量 4.1 各种类型和值 4.2 基本类型和值 4.3 引用类型和值 4.4 类型变量 4.5 参数化类型 4.6 类型擦除 4.7 可具体化的类型 4.8 原生类型 4.9 交集类型 4.10 子类型化 4.11 在何处使用类型 4.12 变量 第5章 转换和提升 5.1 转换的种类 5.2 赋值转换 5.3 方法调用转换 5.4 字符串转换 5.5 强制转换 5.6 数值提升 第6章 名称 6.1 声明 6.2 名称和标识符 6.3 声明的作用域 6.4 成员和继承 6.5 确定名称的含义 6.6 访问控制 6.7 完全限定的名称和规范名称 6.8 命名约定 第7章 包 7.1 包成员 7.2 包的主机支持 7.3 编译单元 7.4 包声明 7.5 导入声明 7.6 顶级类型声明 7.7 惟一的包名称 第8章 类 8.1 类声明 8.2 类成员 8.3 字段声明 8.4 方法声明 8.5 成员类型声明 8.6 实例初始化语句 8.7 静态初始化语句 8.8 构造函数声明 8.9 枚举 第9章 接口 9.1 接口声明 9.2 接口成员 9.3 字段(常量)声明 9.4 抽象方法声明 9.5 成员类型声明 9.6 注释类型 9.7 注释 第10章 数组 10.1 数组类型 10.2 数组变量 10.3 数组创建 10.4 数组访问 10.5 数组:一个简单的示例 10.6 数组初始化语句 10.7 数组成员 10.8 数组的Class对象 10.9 字符的数组不是一个String 10.10 数组存储异常 第11章 异常 11.1 异常的起因 11.2 异常的编译时检查 11.3 异常处理 11.4 异常的示例 11.5 异常层次结构 第12章 执行 12.1 虚拟机启动 12.2 加载类和接口 12.3 链接类和接口 12.4 初始化类和接口 12.5 创建新的类实例 12.6 类实例的终结 12.7 卸载类和接口 12.8 程序退出 第13章 二进制兼容性 13.1 二进制的形式 13.2 二进制兼容性是什么,不是什么 13.3 包的演变 13.4 类的演变 13.5 接口的演变 第14章 块和语句 14.1 语句的正常结束和突然结束 14.2 块 14.3 本地类声明 14.4 局部变量声明语句 14.5 语句 14.6 空语句 14.7 标签语句 14.8 表达式语句 14.9 if语句 14.10 assert语句 14.11 SWitch语句 14.12 while语句 14.13 do语句 14.14 for语句 14.15 break语句 14.16 continue语句 14.17 return语句 14.18 throw语句 14.19 synchronized语句 14.20 try语句 14.21 不可到达语句 第15章 表达式 15.1 计算、表示和结果 15.2 变量作为值 15.3 表达式的类型 15.4 精确浮点数表达式 15.5 表达式和运行时检查 15.6 计算的正常和突然结束 15.7 求值顺序 15.8 主表达式 15.9 类实例创建表达式 15.10 数组创建表达式 15.11 字段访问表达式 15.12 内存调用表达式 15.13 数组访问表达式 15.14 后缀表达式 15.15 一元运算符 15.16 强制转换表达式 15.17 乘法运算符 15.18 加运算符 15.19 移位运算符 15.20 关系运算符 15.21 相等运算符 15.22 位和逻辑运算符 15.23 条件与运算符&& 15.24 条件或运算符2 15.25 条件运算符? 15.26 赋值运算符 15.27 表达式 15.28 常量表达式 第16章 明确赋值 16.1 明确赋值和表达式 16.2 语明确赋值和语句 16.3 明确赋值和参数 16.4 明确赋值和数组初始化方法 16.5 明确赋值和枚举常量 16.6 明确赋值和匿名类 16.7 明确赋值和成员类型 16.8 明确赋值和静态初始化方法 16.9 明确赋值、构造函数和实例初始化方法 第17章 线程和锁 17.1 锁 17.2 示例中的符号 17.3 不正确同步的程序出现意外行为 17.4 内存模型 17.5 Final字段语义 17.6 字分开 17.7 double和long的非原子处理 17.8 等待集合和通知 17.9 休眠和转交 第18章 语法 18.1 Java编程语言的语法 资源截图:
陌佑
百度云
百度云

Java并发编程之美 PDF

资源名称:Java并发编程之美 PDF 内容简介: 并发编程相比 Java 中其他知识点的学习门槛较高,从而导致很多人望而却步。但无论是职场面试,还是高并发/ 高流量系统的实现,却都离不开并发编程,于是能够真正掌握并发编程的人成为了市场迫切需求的人才。 《Java并发编程之美》通过图文结合、通俗易懂的讲解方式帮助大家完成多线程并发编程从入门到实践的飞跃!《Java并发编程之美》分为三部分,第一部分为Java 并发编程基础篇,主要讲解Java 并发编程的基础知识、线程有关的知识和并发编程中的其他相关概念,这些知识在高级篇都会有所使用,掌握了本篇的内容,就为学习高级篇奠定了基础;第二部分为Java 并发编程高级篇,讲解了Java 并发包中核心组件的实现原理,让读者知其然,也知其所以然,熟练掌握本篇内容,对我们在日常开发高并发、高流量的系统时会大有裨益;第三部分为Java 并发编程实践篇,主要讲解并发组件的使用方法,以及在使用过程中容易遇到的问题和解决方法。 《Java并发编程之美》适合Java 初级、中高级研发工程师,对Java 并发编程感兴趣,以及希望探究JUC 包源码原理的人员阅读。 作者简介: 翟陆续,花名加多,四川大学计算机学院研究生毕业。目前任淘宝技术高级开发工程师,热衷于Java并发编程,对JUC包源码有深入的研究,熟悉常用开源框架实现原理。 薛宾田,四川大学计算机学院研究生毕业,阿里巴巴原研发工程师,目前在河南牧业经济学院信息工程学院担任Java课程老师。 资源目录: 第一部分 Java 并发编程基础篇  第1 章 并发编程线程基础 2  1.1 什么是线程 2  1.2 线程创建与运行 3  1.3 线程通知与等待 6  1.4 等待线程执行终止的join 方法 16  1.5 让线程睡眠的sleep 方法 19  1.6 让出CPU 执行权的yield 方法 23  1.7 线程中断 24  1.8 理解线程上下文切换 30  1.9 线程死锁 30  1.9.1 什么是线程死锁 30  1.9.2 如何避免线程死锁 33  1.10 守护线程与用户线程 35  1.11 ThreadLocal 39  1.11.1 ThreadLocal 使用示例 40  1.11.2 ThreadLocal 的实现原理 42  1.11.3 ThreadLocal 不支持继承性 45  1.11.4 InheritableThreadLocal 类 46 第2 章 并发编程的其他基础知识 50  2.1 什么是多线程并发编程 50  2.2 为什么要进行多线程并发编程 51  2.3 Java 中的线程安全问题 51  2.4 Java 中共享变量的内存可见性问题 52  2.5 Java 中的synchronized 关键字 54  2.5.1 synchronized 关键字介绍 54  2.5.2 synchronized 的内存语义 55  2.6 Java 中的volatile 关键字 55  2.7 Java 中的原子性操作 57  2.8 Java 中的CAS 操作 59  2.9 Unsafe 类 59  2.9.1 Unsafe 类中的重要方法 59  2.9.2 如何使用Unsafe 类 61  2.10 Java 指令重排序 65  2.11 伪共享 67  2.11.1 什么是伪共享 67  2.11.2 为何会出现伪共享 68  2.11.3 如何避免伪共享 70  2.11.4 小结 72  2.12 锁的概述 72  2.12.1 乐观锁与悲观锁 72  2.12.2 公平锁与非公平锁 75  2.12.3 独占锁与共享锁 75  2.12.4 什么是可重入锁 76  2.12.5 自旋锁 77  2.13 总结 77 第二部分 Java 并发编程高级篇  第3 章 Java 并发包中ThreadLocalRandom 类原理剖析 80  3.1 Random 类及其局限性 80  3.2 ThreadLocalRandom 82  3.3 源码分析 84  3.4 总结 87 第4 章 Java 并发包中原子操作类原理剖析 88  4.1 原子变量操作类 88  4.2 JDK 8 新增的原子操作类LongAdder 93  4.2.1 LongAdder 简单介绍 93  4.2.2 LongAdder 代码分析 95  4.2.3 小结 101  4.3 LongAccumulator 类原理探究 102  4.4 总结 104 第5 章 Java 并发包中并发List 源码剖析 105  5.1 介绍 105  5.2 主要方法源码解析 106  5.2.1 初始化 106  5.2.2 添加元素 106  5.2.3 获取指定位置元素 108  5.2.4 修改指定元素 109  5.2.5 删除元素 110  5.2.6 弱一致性的迭代器 111  5.3 总结 114 第6 章 Java 并发包中锁原理剖析 115  6.1 LockSupport 工具类 115  6.2 抽象同步队列AQS 概述 122  6.2.1 AQS——锁的底层支持 122  6.2.2 AQS——条件变量的支持 128  6.2.3 基于AQS 实现自定义同步器 131  6.3 独占锁ReentrantLock 的原理 136  6.3.1 类图结构 136  6.3.2 获取锁 137  6.3.3 释放锁 142  6.3.4 案例介绍 143  6.3.5 小结 145  6.4 读写锁ReentrantReadWriteLock 的原理 145  6.4.1 类图结构 145  6.4.2 写锁的获取与释放 147  6.4.3 读锁的获取与释放 151  6.4.4 案例介绍 156  6.4.5 小结 158  6.5 JDK 8 中新增的StampedLock 锁探究 158  6.5.1 概述 158  6.5.2 案例介绍 160  6.5.3 小结 164 第7 章 Java 并发包中并发队列原理剖析 165  7.1 ConcurrentLinkedQueue 原理探究 165  7.1.1 类图结构 165  7.1.2 ConcurrentLinkedQueue 原理介绍 166  7.1.3 小结 181  7.2 LinkedBlockingQueue 原理探究 182  7.2.1 类图结构 182  7.2.2 LinkedBlockingQueue 原理介绍 185  7.2.3 小结 194  7.3 ArrayBlockingQueue 原理探究 195  7.3.1 类图结构 195  7.3.2 ArrayBlockingQueue 原理介绍 197  7.3.3 小结 202  7.4 PriorityBlockingQueue 原理探究 203  7.4.1 介绍 203  7.4.2 PriorityBlockingQueue 类图结构 203  7.4.3 原理介绍 205  7.4.4 案例介绍 214  7.4.5 小结 216  7.5 DelayQueue 原理探究 217  7.5.1 DelayQueue 类图结构 217  7.5.2 主要函数原理讲解 219  7.5.3 案例介绍 222  7.5.4 小结 224 第8 章 Java 并发包中线程池ThreadPoolExecutor 原理探究 225  8.1 介绍 225  8.2 类图介绍 225  8.3 源码分析 230  8.3.1 public void execute(Runnable command) 230  8.3.2 工作线程Worker 的执行 235  8.3.3 shutdown 操作 238  8.3.4 shutdownNow 操作 240  8.3.5 awaitTermination 操作 241  8.4 总结 242 第9 章 Java 并发包中ScheduledThreadPoolExecutor 原理探究 243  9.1 介绍 243  9.2 类图介绍 243  9.3 原理剖析 245  9.3.1 schedule(Runnable command, long delay,TimeUnit unit) 方法 246  9.3.2 scheduleWithFixedDelay(Runnable command,long initialDelay, long delay,TimeUnit unit) 方法 252  9.3.3 scheduleAtFixedRate(Runnable command,long initialDelay,long period,TimeUnit unit) 方法 254  9.4 总结 255 第10 章 Java 并发包中线程同步器原理剖析 256  10.1 CountDownLatch 原理剖析 256  10.1.1 案例介绍 256  10.1.2 实现原理探究 259  10.1.3 小结 263  10.2 回环屏障CyclicBarrier 原理探究 264  10.2.1 案例介绍 264  10.2.2 实现原理探究 268  10.2.3 小结 272  10.3 信号量Semaphore 原理探究 272  10.3.1 案例介绍 272  10.3.2 实现原理探究 276  10.3.3 小结 281  10.4 总结 281 第三部分 Java 并发编程实践篇  第11 章 并发编程实践 284  11.1 ArrayBlockingQueue 的使用 284  11.1.1 异步日志打印模型概述 284  11.1.2 异步日志与具体实现 285  11.1.3 小结 293  11.2 Tomcat 的NioEndPoint 中ConcurrentLinkedQueue 的使用 293  11.2.1 生产者——Acceptor 线程 294  11.2.2 消费者——Poller 线程 298  11.2.3 小结 300  11.3 并发组件ConcurrentHashMap 使用注意事项 300  11.4 SimpleDateFormat 是线程不安全的 304  11.4.1 问题复现 304  11.4.2 问题分析 305  11.4.3 小结 309  11.5 使用Timer 时需要注意的事情 309  11.5.1 问题的产生 309  11.5.2 Timer 实现原理分析 310  11.5.3 小结 313  11.6 对需要复用但是会被下游修改的参数要进行深复制 314  11.6.1 问题的产生 314  11.6.2 问题分析 316  11.6.3 小结 318  11.7 创建线程和线程池时要指定与业务相关的名称 319  11.7.1 创建线程需要有线程名 319  11.7.2 创建线程池时也需要指定线程池的名称 321  11.7.3 小结 325  11.8 使用线程池的情况下当程序结束时记得调用shutdown 关闭线程池 325  11.8.1 问题复现 325  11.8.2 问题分析 327  11.8.3 小结 329  11.9 线程池使用FutureTask 时需要注意的事情 329  11.9.1 问题复现 329  11.9.2 问题分析 332  11.9.3 小结 335  11.10 使用ThreadLocal 不当可能会导致内存泄漏 336  11.10.1 为何会出现内存泄漏 336  11.10.2 在线程池中使用ThreadLocal 导致的内存泄漏 339  11.10.3 在Tomcat 的Servlet 中使用ThreadLocal 导致内存泄漏 341  11.10.4 小结 344  11.11 总结 344 资源截图:
陌佑
百度云
百度云

《Java设计模式(第2版)》PDF

资源名称:《Java设计模式(第2版)》PDF  内容简介: 《Java设计模式(第2版)》通过一个完整的Java项目对经典著作Design Patterns一书介绍的23种设计模式进行了深入分析与讲解,实践性强,却又不失对模式本质的探讨。《Java设计模式(第2版)》创造性地将这些模式分为5大类别,以充分展现各个模式的重要特征,并结合UML类图与对应的Java程序,便于读者更好地理解。全书给出了大量的练习,作为对读者的挑战,以启发思考,督促读者通过实践练习的方式来掌握设计模式。同时,作者又给出了这些练习的参考答案,使读者可以印证比较,找出自己的不足,提高设计技能。 作者简介: Steven John Metsker是Dominion Digital公司的管理顾问,该公司负责信息技术与商业过程的重新设计。Steven擅长运用面向对象技术构建结构清晰、功能强大的软件系统。他还是Building Parsers with JavaTM、Design Pattern JavaTM Workbook与Design Patterns in C#(皆由Addison-Wesley出版)等著作的作者。 William C. Waker(www.xp123.com)是一名独立软件咨询师、教练和培训讲师,他拥有超过20年的软件开发经验。Bill先后任职于Capital One Financial,DMR Trecom与VTLS。他是Refactoring Workbook与Extreme Programming Explored(皆由Addison-Wesley出版)等著作的作者。 资源目录: 序 xv 第1章 绪论 1 为何需要模式 1 为何需要设计模式 2 为何选择Java 3 UML 3 挑战 4 本书的组织 4 欢迎来到Oozinoz公司 6 小结 6 第1部分 接口型模式 第2章 接口型模式介绍 8 接口与抽象类 8 接口与职责 10 小结 11 超越普通接口 12 第3章 适配器(Adapter)模式 13 接口适配 13 类与对象适配器 17 JTable对数据的适配 20 识别适配器 24 小结 25 第4章 外观(Facade)模式 27 外观类、工具类和示例类 27 重构到外观模式 29 小结 38 第5章 合成(Composite)模式 39 常规组合 39 合成模式中的递归行为 40 组合、树与环 42 含有环的合成模式 47 环的影响 50 小结 51 第6章 桥接(Bridge)模式 52 常规抽象:桥接模式的一种方法 52 从抽象到桥接模式 54 使用桥接模式的驱动器 57 数据库驱动 57 小结 59 第2部分 职责型模式 第7章 职责型模式介绍 62 常规的职责型模式 62 根据可见性控制职责 64 小结 65 超越普通职责 65 第8章 单例(Singleton)模式 67 单例模式机制 67 单例和线程 68 识别单例 70 小结 71 第9章 观察者(Observer)模式 72 经典范例:GUI中的观察者模式 72 模型/视图/控制器 76 维护Observable对象 82 小结 84 第10章 调停者(Mediator)模式 85 经典范例:GUI调停者(Mediator) 85 关系一致性中的调停者模式 89 小结 96 第11章 代理(Proxy)模式 97 经典范例:图像代理 97 重新思考图片代理 102 远程代理 104 动态代理 109 小结 114 第12章 职责链(Chain of Responsibility)模式 115 现实中的职责链模式 115 重构为职责链模式 117 固定职责链 119 没有组合结构的职责链模式 121 小结 121 第13章 享元(Flyweight)模式 122 不变性 122 抽取享元中不可变的部分 123 共享享元 125 小结 128 第3部分 构造型模式 第14章 构造型模式介绍 130 构造函数的挑战 130 小结 132 超出常规的构造函数 132 第15章 构建者(Builder)模式 134 常规的构建者 134 在约束条件下构建对象 137 可容错的构建者 139 小结 140 第16章 工厂方法(Factory Method)模式 141 经典范例:迭代器 141 识别工厂方法 142 控制要实例化的类 143 并行层次结构中的工厂方法模式 145 小结 147 第17章 抽象工厂(Abstract Factory)模式 148 经典范例:图形用户界面工具箱 148 抽象工厂和工厂方法 153 包和抽象工厂 157 小结 157 第18章 原型(Prototype)模式 158 作为工厂的原型 158 利用克隆进行原型化 159 小结 162 第19章 备忘录(Memento)模式 163 经典范例:使用备忘录模式执行撤销操作 163 备忘录的持久性 170 跨会话的持久性备忘录 170 小结 174 第4部分 操作型模式 第20章 操作型模式介绍 176 操作和方法 176 签名 177 异常 178 算法和多态 179 小结 180 超越常规的操作 181 第21章 模板方法(Template Method)模式 182 经典范例:排序 182 完成一个算法 186 模板方法钩子 188 重构为模板方法模式 189 小结 191 第22章 状态(State)模式 193 对状态进行建模 193 重构为状态模式 197 使状态成为常量 201 小结 203 第23章 策略(Strategy)模式 204 策略建模 204 重构到策略模式 207 比较策略模式与状态模式 211 比较策略模式和模板方法模式 211 小结 212 第24章 命令(Command)模式 213 经典范例:菜单命令 213 使用命令模式来提供服务 216 命令钩子 217 命令模式与其他模式的关系 219 小结 220 第25章 解释器(Interpreter)模式 221 一个解释器示例 221 解释器、语言和解析器 233 小结 234 第5部分 扩展型模式 第26章 扩展型模式介绍 236 面向对象设计的原则 236 Liskov替换原则 237 迪米特法则 238 消除代码的坏味道 239 超越常规的扩展 240 小结 241 第27章 装饰器(Decorator)模式 242 经典范例:流和输出器 242 函数包装器 250 装饰器模式和其他设计模式的关系 257 小结 258 第28章 迭代器(Iterator)模式 259 普通的迭代 259 线程安全的迭代 261 基于合成结构的迭代 267 小结 277 第29章 访问者(Visitor)模式 278 访问者模式机制 278 常规的访问者模式 280 Visitor环 286 访问者模式的危机 290 小结 292 附录A 指南 293 附录B 答案 297 附录C Oozinoz源代码 366 附录D UML概览 369 参考文献 375 资源截图:
陌佑
百度云
百度云

Java课程设计案例精编(第二版) PDF

资源名称:Java课程设计案例精编(第二版) PDF 资源目录: 第1章 Java概述 第2章 Java程序设计基础 第3章 类和对象 第4章 网页浏览器开发 第5章 蜘蛛纸牌 第6章 吃豆子游戏 第7章 基于多线程的端口扫描器 第8章 Java聊天室 第9章 中国象棋对弈系统 第10章 资产管理系统 第11章 人事管理系统 资源截图:
陌佑
百度云
百度云

《你必须知道的261个Java语言问题》PDF

资源名称:《你必须知道的261个Java语言问题》PDF  内容简介: 《你必须知道的261个Java语言问题》以问答的形式组织内容,讨论了学习或使用Java语言的过程中经常遇到的一些问题。这些问题均是在经过充分调研的基础上,从实际应用中总结出来的,是作者和众多Java开发者的经验总结。书中精选了Java开发人员经常遇到的261个典型问题,涵盖了基本概念、环境配置、基本语法、异常处理、流操作、图形用户界面编程、网络编程、线程、序列化、数据库操作、Java Web程序设计等各方面的主题,并分别给出了详细的解答,而且结合代码示例阐明了技术要点。 《你必须知道的261个Java语言问题》结构清晰、讲解透彻、实用性强,是各高校相关专业Java语言课程很好的教学参考书,也是各层次Java程序员的优秀实践指南。 资源目录: 第1章 Java基本概念及环境配置 FAQl.O1 什么是面向对象程序设计? FAQl.02 面向对象程序设计的基本特征有哪些? FAQl.03 Java语言是如何产生和发展的? FAQl.04 Android与Java语言有什么关系? FAQl.05 Java SE、Java EE和Java ME有什么区别? FAQl.06 Java语言的运行机制如何? FAQl.07 什么是JVM?有什么作用?工作机制如何? FAQl.08 什么是JRE(或J2RE)? FAQl.09 什么是JDK? FAQl.10 JDK、JRE和JVM之间有什么区别? FAQl.11 什么是GC?GC的工作原理如何? FAQl.12 如何安装Java基本开发环境JDK? FAQl.13 为何在JDK安装路径下存在两个JRE? FAQl.14 JDK安装时设置PATH和CLASSPATH环境变量有何作用? FAQl.15 如何编译、运行Java应用程序? FAQl.16 如何将程序中的文档注释提取出来生成说明文档? FAQl.17 怎样制作鼠标双击就可以运行的Jar文件? FAQl.18 怎样给main(String args)方法的args指定参数值? 第2章 Java编程基础 FAQ2.01 Java中的标识符如何命名?可以用中文吗? FAQ2.02 Java中有哪些关键字? FAQ2.03 用public、protected和private修饰方法有什么区别? FAQ2.04 this关键字有什么含义?在哪些情况下应用? FAQ2.05 super关键字有什么含义?在哪些情况下应用? FAQ2.06 static关键字有什么含义?具体如何应用?能修饰构造方法吗? FAQ2.07 final关键字有什么含义?具体如何应用? FAQ2.08 instanceof关键字有什么含义?如何应用? FAQ2.09 Java中有哪些数据类型? FAQ2.10 如何解决double和float精度不准的问题? FAQ2.11 im和Integer都可以作为整数类型,那么它们有什么区别? FAQ2.12 floatf=3.4语句是否正确? FAQ2.13 成员变量和局部变量有什么区别? FAQ2.14 变量之间传值时可分为值传递和引用传递,那么它们有何区别? FAQ2.15 Java中有哪些运算符?优先级如何? FAQ2.16 在实现x和Y相加时,x+=y和x--x+y两种实现方式有区别吗? FAQ2.17 在执行与运算时,运算符&和&&有什么区别? FAQ2.18 在实现x递增加1操作时,x++和++x有什么区别? FAQ2.19 x?y:z格式的语句表示什么意思? FAQ2.20 “+”操作符在Java内部是如何实现字符串连接的? FAQ2.21 ==和equals()都可用于比较两个操作数是否相等,它们有什么区别吗? FAQ2.22 创建Strin9对象时,使用String s=11ew String(“abc”)和String s=“abc”语句有什么区别? FAQ2.23 break和continue语句有什么区别? FAQ2.24 数组如何定义和初始化? FAQ2.25 如何实现一维和二维数组的遍历? FAQ2.26 如何实现数组的复制? FAQ2.27 数组的排序算法有哪些?如何实现? FAQ2.28 如何解决ArraylndexOutOfBounds Exception异常? 第3章 Java与面向对象 FAQ3.01 什么是类、对象、属性和方法? FAQ3.02 什么是包?有什么好处? FAQ3.03 什么是抽象类?有什么好处? FAQ3.04 什么是接口?有什么好处? FAQ3.05 什么是多态?有什么好处? FAQ3.06 什么是内部类?有什么好处? FAQ3.07 什么是匿名内部类?如何使用? FAQ3.08 什么是封装类?有什么作用? FAQ3.09 什么是继承?有什么好处? FAQ3.10 使用new关键字创建对象时,为什么有时候提示找不到无参的构造方法? …… 第4章 Java流和文件操作 第5章 Java GUI编程 第6章 Java线程和序列化 第7章 Java网络编程 第8章 Java常用功能 第9章 Java数据库操作 第10章 Java Web程序设计 资源截图:
陌佑
百度云
百度云

Java常用算法手册 第三版 PDF

资源名称:Java常用算法手册 第三版 PDF 资源目录: 第1章 算法和实现算法的Java语法 第2章 数据结构 第3章 基本算法思想 第4章 排序算法 第5章 查找算法 第6章 基本数学问题 第7章 数据结构问题 第8章 数论问题 第9章 算法经典趣题 第10章 游戏中的算法 第11章 简单Java上机面试题 第12章 逻辑推理类面试题 第13章 数学能力测试 第14章 算法面试题 资源截图:
陌佑
百度云
百度云

推荐系统 技术、评估及高效算法 PDF

资源名称:推荐系统 技术、评估及高效算法 PDF 作者简介: 弗朗西斯科·里奇(Francesco Ricci),意大利博尔扎诺自由大学计算机科学副教授。目前他的研究兴趣包括推荐系统、智能接口、移动系统、机器学习、案例推理、信息和通信技术在旅游中的应用。他是《Journal of Information Technology and Tourism》杂志的编委,还是ACM和IEEE会员。他还是ACM会议推荐系统分会的指导委员会成员。 利奥·罗卡奇(Lior Rokach),以色列本-古里安大学信息系统工程系助理教授。他是智能信息系统方面公认的专家,在这一领域处于世界领先地位。他的主要研究领域包括数据挖掘、模式识别和推荐系统。他的70篇论文被主流期刊、会议和书籍等引用。 布拉哈·夏皮拉(Bracha Shapira),以色列本-古里安大学信息系统工程系助理教授。目前她的研究兴趣包括推荐系统、信息检索、个性化、用户建模和社交网络。她是本-古里安大学德国电信实验室研究项目负责人,并且还是ACM和IEEE会员。 保罗 B. 坎特(Paul Kantor),罗格斯大学通信与信息学院情报学教授,兼任计算机科学系和RUTCOR中心运筹学教授。目前他的研究兴趣包括协作信息发现、文本分类、文本或图像索引和检索。他是美国科学促进会会士,ACM、IEEE和ASIST会员。他的研究得到了美国NSF和国土安全部等机构的支持。 资源目录: 推荐序一 推荐序二 译者序 前言 第1章 概述 1 1.1 简介 1 1.2 推荐系统的功能 3 1.3 数据和知识资源 5 1.4 推荐技术 7 1.5 应用与评价 10 1.6 推荐系统与人机交互 12 1.6.1 信任、解释和说服力 13 1.6.2 会话系统 13 1.6.3 可视化 14 1.7 推荐系统是个交叉学科领域 15 1.8 出现的问题和挑战 16 1.8.1 本书对出现的问题的讨论 16 1.8.2 挑战 18 参考文献 20 第一部分 基础技术 第2章 推荐系统中的数据挖掘方法 28 2.1 简介 28 2.2 数据预处理 29 2.2.1 相似度度量方法 29 2.2.2 抽样 30 2.2.3 降维 31 2.2.4 去噪 33 2.3 分类 34 2.3.1 最近邻 34 2.3.2 决策树 35 2.3.3 基于规则的分类 36 2.3.4 贝叶斯分类器 36 2.3.5 人工神经网络 38 2.3.6 支持向量机 39 2.3.7 分类器的集成 40 2.3.8 评估分类器 41 2.4 聚类分析 42 2.4.1 k-means 43 2.4.2 改进的k-means 44 2.5 关联规则挖掘 44 2.6 总结 46 致谢 47 参考文献 47 第3章 基于内容的推荐系统:前沿和趋势 51 3.1 简介 51 3.2 基于内容的推荐系统的基础 52 3.2.1 基于内容的推荐系统的高层次结构 52 3.2.2 基于内容过滤的优缺点 54 3.3 基于内容的推荐系统的现状 55 3.3.1 物品表示 56 3.3.2 学习用户特征的方法 62 3.4 趋势和未来研究 65 3.4.1 推荐过程中用户产生内容的作用 65 3.4.2 超越特化:惊喜度 66 3.5 总结 68 参考文献 68 第4章 基于近邻推荐方法综述 74 4.1 简介 74 4.1.1 问题公式化定义 75 4.1.2 推荐方法概要 76 4.1.3 基于近邻方法的优势 77 4.1.4 目标和概要 78 4.2 基于近邻推荐 78 4.2.1 基于用户评分 79 4.2.2 基于用户分类 80 4.2.3 回归与分类 80 4.2.4 基于物品推荐 81 4.2.5 基于用户和基于物品推荐的对比 81 4.3 近邻方法的要素 83 4.3.1 评分标准化 83 4.3.2 相似度权重计算 85 4.3.3 近邻的选择 89 4.4 高级进阶技术 90 4.4.1 降维方法 90 4.4.2 基于图方法 92 4.5 总结 95 参考文献 96 第5章 协同过滤算法的高级课题100 5. 1 简介 100 5.2 预备知识 101 5.2.1 基准预测 102 5.2.2 Netflix数据 103 5.2.3 隐式反馈 103 5.3 因子分解模型 104 5.3.1 SVD 104 5.3.2 SVD++ 105 5.3.3 时间敏感的因子模型 106 5.3.4 比较 111 5.3.5 总结 112 5.4 基于邻域的模型 112 5.4.1 相似度度量 113 5.4.2 基于相似度的插值 113 5.4.3 联合派生插值权重 115 5.4.4 总结 117 5.5 增强的基于邻域的模型 117 5.5.1 全局化的邻域模型 118 5.5.2 因式分解的邻域模型 122 5.5.3 基于邻域的模型的动态时序 126 5.5.4 总结 127 5.6 基于邻域的模型和因子分解模型的比较 127 参考文献 129 第6章 开发基于约束的推荐系统 131 6.1 简介 131 6.2 推荐知识库的开发 133 6.3 推荐过程中的用户导向 137 6.4 计算推荐结果 142 6.5 项目和案例研究的经验 143 6.6 未来的研究方法 144 6.7 总结 147 参考文献 147 第7章 情境感知推荐系统 151 7.1 简介 151 7.2 推荐系统中的情境 152 7.2.1 什么是情境 152 7.2.2 在推荐系统实现情境信息的建模 155 7.2.3 获取情境信息 158 7.3 结合情境的推荐系统形式 159 7.3.1 情境预过滤 161 7.3.2 情境后过滤 163 7.3.3 情境建模 164 7.4 多种方法结合 167 7.4.1 组合预过滤器案例研究:算法 168 7.4.2 组合预过滤器案例研究:实验结果 168 7.5 情境感知推荐系统的其他问题 170 7.6 总结 171 致谢 171 参考文献 172 第二部分 推荐系统的应用与评估 第8章 推荐系统评估 176 8.1 简介 176 8.2 实验设置 177 8.2.1 离线实验 178 8.2.2 用户调查 180 8.2.3 在线评估 182 8.2.4 得出可靠结论 182 8.3 推荐系统属性 185 8.3.1 用户偏好 185 8.3.2 预测准确度 186 8.3.3 覆盖率 191 8.3.4 置信度 192 8.3.5 信任度 193 8.3.6 新颖度 194 8.3.7 惊喜度 195 8.3.8 多样性 195 8.3.9 效用 196 8.3.10 风险 197 8.3.11 健壮性 197 8.3.12 隐私 198 8.3.13 适应性 198 8.3.14 可扩展性 199 8.4 总结 199 参考文献 199 第9章 IPTV服务提供商推荐系统:一个大规模真实产品环境的应用203 9.1 简介 203 9.2 IPTV架构 204 9.3 推荐系统架构 206 9.3.1 数据搜集 206 9.3.2 批处理和实时阶段 207 9.4 推荐算法 208 9.4.1 推荐算法概述 209 9.4.2 基于内容隐语义分析算法 210 9.4.3 基于物品的协同过滤算法 213 9.4.4 基于降维的协同过滤算法 214 9.5 推荐服务 215 9.6 系统评价 216 9.6.1 离线分析 218 9.6.2 在线分析 220 9.7 总结 223 参考文献 223 第10章 走出实验室的推荐系统 225 10.1 简介 225 10.2 设计现实环境中的推荐系统 225 10.3 理解推荐系统的环境 226 10.3.1 应用模型 226 10.3.2 用户建模 230 10.3.3 数据模型 233 10.3.4 一个使用环境模型的方法 235 10.4 在迭代设计过程中理解推荐验证步骤 236 10.4.1 算法的验证 236 10.4.2 推荐结果的验证 237 10.5 应用实例:一个语义新闻推荐系统 240 10.5.1 背景:MESH工程 240 10.5.2 MESH的环境模型 240 10.5.3 实践:模型的迭代实例化 243 10.6 总结 244 参考文献 244 第11章 匹配推荐系统的技术与领域 247 11.1 简介 247 11.2 相关工作 247 11.3 知识源 248 11.4 领域 250 11.4.1 异构性 250 11.4.2 风险性 251 11.4.3 变动性 251 11.4.4 交互风格 251 11.4.5 偏好稳定性 251 11.4.6 可理解性 252 11.5 知识源 252 11.5.1 社群知识 252 11.5.2 个人知识 253 11.5.3 基于内容的知识 253 11.6 从领域到技术 254 11.6.1 算法 255 11.6.2 抽样推荐领域 256 11.7 总结 257 致谢 257 参考文献 257 第12章 用于技术强化学习的推荐系统 261 12.1 简介 261 12.2 背景 262 12.2.1 TEL作为上下文 262 12.2.2 TEL推荐的目标 263 12.3 相关工作 264 12.3.1 自适应教育超媒体 264 12.3.2 学习网络 265 12.3.3 相同点与不同点 267 12.4 TEL推荐系统调查 268 12.5 TEL推荐系统的评估 271 12.5.1 对组件的评估 272 12.5.2 评估TEL推荐系统时需要考虑的问题 273 12.6 总结与展望 274 致谢 274 参考文献 275 第三部分 推荐系统的影响 第13章 基于评价推荐系统的进展 282 13.1 简介 282 13.2 早期:评价系统/已得益处 282 13.3 评价系统的表述与检索挑战 283 13.3.1 评价表述的方式 283 13.3.2 基于评价的推荐系统中的检索挑战 289 13.4 评价平台中的交互研究 293 13.4.1 扩展到其他评价平台 294 13.4.2 用户直接操作与限制用户控制的比较 295 13.4.3 支持性解释、置信和信任 296 13.4.4 可视化、自适应性和分区动态性 297 13.4.5 关于多文化的适用性的差异 298 13.5 评价的评估:资源、方法和标准 298 13.5.1 资源和方法 298 13.5.2 评估标准 299 13.6 总结与展望 300 参考文献 301 第14章 构建更值得信任和具有说服力的推荐系统:特性对评估推荐系统的影响 305 14.1 简介 305 14.2 推荐系统作为社交角色 306 14.3 来源可信度 306 14.3.1 可信度 306 14.3.2 专业能力 307 14.3.3 对来源可信度的影响 307 14.4 人际交互中信息特性的研究 307 14.4.1 相似度 307 14.4.2 喜好度 308 14.4.3 权威的象征 308 14.4.4 演讲的风格 308 14.4.5 外在吸引力 308 14.4.6 幽默 309 14.5 人机交互中的特性 309 14.6 用户与推荐系统交互的特性 309 14.6.1 推荐系统类型 310 14.6.2 输入特性 310 14.6.3 过程特性 311 14.6.4 输出特性 311 14.6.5 内嵌的智能体特性 312 14.7 讨论 312 14.8 影响 313 14.9 未来研究方向 314 参考文献 314 第15章 设计和评估推荐系统的解释 321 15.1 简介 321 15.2 指引 322 15.3 专家系统的说明 322 15.4 定义的目标 322 15.4.1 系统如何工作:透明性 324 15.4.2 允许用户告诉系统它是错误的:被理解 324 15.4.3 增加用户对系统上的信任:信任度 325 15.4.4 说服用户尝试或购买:说服力 326 15.4.5 帮助用户充分地决策:有效性 327 15.4.6 帮助用户快速制定决策:效率 328 15.4.7 使系统的应用愉悦:满意度 328 15.5 评估解释在推荐系统的作用 329 15.5.1 精准度 329 15.5.2 学习效率 329 15.5.3 覆盖度 330 15.5.4 接受度 330 15.6 用推荐设计展示与互动 330 15.6.1 展示推荐 330 15.6.2 与推荐系统交互 331 15.7 解释风格 332 15.7.1 基于协同风格 333 15.7.2 基于内容风格 334 15.7.3 基于案例风格 334 15.7.4 基于知识/自然语言风格 335 15.7.5 基于人口统计风格 335 15.8 总结与展望 336 参考文献 337 第16章 基于实例评价研究的产品推荐系统的可用性准则 340 16.1 简介 340 16.2 预备知识 341 16.2.1 交互模型 341 16.2.2 基于效用的推荐系统 342 16.2.3 准确率、信任度和代价的框架 344 16.2.4 本章结构 344 16.3 相关工作 345 16.3.1 推荐系统分类 345 16.3.2 基于评分的推荐系统 345 16.3.3 基于案例的推荐系统 345 16.3.4 基于效用的推荐系统 345 16.3.5 基于评价的推荐系统 346 16.3.6 其他设计指导准则 346 16.4 初始偏好提取 347 16.5 通过实例激励用户表示偏好 349 16.5.1 需要多少实例 350 16.5.2 需要哪些实例 350 16.6 偏好修正 352 16.6.1 偏好冲突和部分满足 352 16.6.2 权衡辅助 353 16.7 展示策略 354 16.7.1 一次推荐一项物品 354 16.7.2 推荐k项最匹配的物品 355 16.7.3 解释界面 355 16.8 准则验证模型 357 16.9 总结 359 参考文献 359 第17章 基于示意图的产品目录可视化 363 17.1 简介 363 17.2 基于图的可视化方法 364 17.2.1 自组织映射 364 17.2.2 树图 365 17.2.3 多维缩放 366 17.2.4 非线性主成分分析 367 17.3 产品目录图 367 17.3.1 多维缩放 368 17.3.2 非线性主成分分析 369 17.4 通过点击流分析决定属性权重 370 17.4.1 泊松回归模型 370 17.4.2 处理缺失值 371 17.4.3 使用泊松回归选择权值 371 17.4.4 阶梯式泊松回归模型 371 17.5 图像购物界面 372 17.6 电子商务应用 373 17.6.1 使用属性权值的基于MDS的产品目录图 373 17.6.2 基于NL-PCA的产品目录图 375 17.6.3 图像购物界面 377 17.7 总结与展望 379 致谢 380 参考文献 380 第四部分 推荐系统与群体 第18章 个性化Web搜索中的群体、协作与推荐系统 384 18.1 简介 384 18.2 网络搜索历史简介 385 18.3 网络搜索的未来 387 18.3.1 个性化网络搜索 387 18.3.2 协同信息检索 390 18.3.3 向社交搜索前进 392 18.4 案例研究1:基于群体的网络搜索 392 18.4.1 搜索群体中的重复性和规律性 392 18.4.2 协同网络搜索系统 393 18.4.3 评估 395 18.4.4 讨论 396 18.5 案例研究2:网络搜索共享 396 18.5.1 HeyStaks系统 397 18.5.2 HeyStaks推荐引擎 399 18.5.3 评估 400 18.5.4 讨论 402 18.6 总结 402 致谢 403 参考文献 403 第19章 社会化标签推荐系统 409 19.1 简介 409 19.2 社会化标签推荐系统 410 19.2.1 大众分类法 410 19.2.2 传统推荐系统范式 411 19.2.3 多模式推荐 412 19.3 现实社会化标签推荐系统 413 19.3.1 有哪些挑战 413 19.3.2 案例BibSonomy 413 19.3.3 标签获取 415 19.4 社会化标签系统的推荐算法 416 19.4.1 协同过滤 416 19.4.2 基于排序的推荐 418 19.4.3 基于内容的社会化标签推荐系统 421 19.4.4 评估方案和评估度量 423 19.5 算法比较 424 19.6 总结与展望 426 参考文献 427 第20章 信任和推荐 430 20.1 简介 430 20.2 信任的表示与计算 431 20.2.1 信任表示 431 20.2.2 信任计算 433 20.3 信任增强推荐系统 436 20.3.1 动机 436 20.3.2 进展 437 20.3.3 实验比较 441 20.4 进展和开放性挑战 445 20.5 总结 446 参考文献 446 第21章 组推荐系统 449 21.1 简介 449 21.2 应用场景和群组推荐系统分类 450 21.2.1 交互式电视 450 21.2.2 环绕智能 450 21.2.3 基于场景的推荐系统 451 21.2.4 基于分类的群组推荐 451 21.3 合并策略 452 21.3.1 合并策略概览 452 21.3.2 合并策略在相关工作中的应用 453 21.3.3 哪种策略效果最好 454 21.4 序列顺序的影响 455 21.5 对情感状态建模 456 21.5.1 对个人的满意度进行建模 457 21.5.2 个人满意度对群组的影响 458 21.6 情感状态在合并策略中的使用 459 21.7 对单个用户进行组推荐 460 21.7.1 多准则 460 21.7.2 冷启动问题 461 21.7.3 虚拟组成员 462 21.8 总结与挑战 462 21.8.1 提出的主要问题 463 21.8.2 警告:组建模 463 21.8.3 面临的挑战 464 致谢 464 参考文献 465 第五部分 高级算法 第22章 推荐系统中的偏好聚合468 22.1 简介 468 22.2 推荐系统中的聚合类型 468 22.2.1 协同过滤中的偏好聚合 470 22.2.2 CB与UB推荐中的特性聚合 470 22.2.3 CB与UB的配置文件构建 470 22.2.4 物品和用户相似度以及邻居的形成 471 22.2.5 基于实例推理的连接词在推荐系统中的应用 472 22.2.6 加权混合系统 472 22.3 聚合函数概论 472 22.3.1 定义和属性 472 22.3.2 聚合成员 475 22.4 聚合函数的构建 479 22.4.1 数据收集和处理 479 22.4.2 期望属性、语义、解释 480 22.4.3 函数表现的复杂度及其理解 481 22.4.4 权重和参数的确定 482 22.5 推荐系统中的复杂聚合过程:为特定应用定制 482 22.6 总结 485 22.7 进阶阅读 485 致谢 486 参考文献 486 第23章 推荐系统中的主动学习 488 23.1 简介 488 23.1.1 推荐系统中主动学习的目标 489 23.1.2 例证 490 23.1.3 主动学习的类型 490 23.2 数据集的属性 491 23.3 主动学习在推荐系统中的应用 492 23.4 主动学习公式 493 23.5 基于不确定性的主动学习 495 23.5.1 输出不确定性 495 23.5.2 决策边界不确定性 496 23.5.3 模型不确定性 497 23.6 基于误差的主动学习 498 23.6.1 基于实例的方法 498 23.6.2 基于模型的方法 500 23.7 基于组合的主动学习 501 23.7.1 基于模型的方法 501 23.7.2 基于候选的方法 502 23.8 基于会话的主动学习 504 23.8.1 基于实例的评论 504 23.8.2 基于多样性的方法 504 23.8.3 基于查询编辑的方法 505 23.9 计算因素考虑 505 23.10 总结 505 致谢 506 参考文献 506 第24章 多准则推荐系统 510 24.1 简介 510 24.2 推荐作为多准则决策问题 511 24.2.1 决策目标 512 24.2.2 准则簇 512 24.2.3 全局偏好模型 513 24.2.4 决策支持流程 513 24.3 推荐系统的MCDM框架:经验教训 515 24.4 多准则评分推荐 517 24.4.1 传统的单值评分推荐问题 517 24.4.2 引入多准则评分来扩展传统推荐系统 518 24.5 多准则评分推荐算法综述 519 24.5.1 预测中使用多准则评分 519 24.5.2 推荐中使用多准则评分 524 24.6 讨论及未来工作 526 24.7 总结 527 致谢 528 参考文献 528 第25章 具有健壮性的协同推荐 533 25.1 简介 533 25.2 问题定义 534 25.3 攻击分类 536 25.3.1 基础攻击 536 25.3.2 非充分信息攻击 537 25.3.3 打压攻击模型 537 25.3.4 知情攻击模型 538 25.4 检测系统健壮性 539 25.4.1 评估矩阵 539 25.4.2 推举攻击 540 25.4.3 打压攻击 541 25.4.4 知情攻击 542 25.4.5 攻击效果 543 25.5 攻击检测 543 25.5.1 评估矩阵 544 25.5.2 单用户检测 544 25.5.3 用户组检测 545 25.5.4 检测结果 548 25.6 健壮的推荐算法 548 25.6.1 基于模型的推荐 548 25.6.2 健壮的矩阵分解算法 549 25.6.3 其他具有健壮性的推荐算法 549 25.6.4 影响力限制器和基于信誉的推荐 550 25.7 总结 550 致谢 551 参考文献 551 本书贡献者名单 554 翻译团队名单560 资源截图:
陌佑
百度云
百度云
⬅️ 1...16451646164716481649...2920

添加微信,反馈问题

微信及时反馈问题,方便沟通,请备注 ❤️

搜索榜单

1

骚老板资源网整站源码 打包数据高达2GB

2113

2

绿色风格网络公司源码 php网络建站公司源码

1274

3

雷速问卷调查系统(疫情上报系统) v7.08

1270

4

(自适应手机版)响应式餐饮美食企业网站源码 餐饮品牌连锁机构织梦模板

1212

5

Zblog仿918回忆模特写真网带整站数据图库系统源码

1144

6

一款笑话类网站源码 简约清爽的织梦笑话网站模板

1078

最新资源

1

网狐电玩系列/乐游电玩城/免微信免短信登陆

2

湖南地方玩法好玩互娱纯源码

3

最新更新网狐旗舰大联盟+UI工程

4

傲玩系列客户端通用加解密工具

5

优米H5电玩城组件/多语言/带84个游戏/后台带控+搭建视频教程

6

网狐系列猫娱乐新UI蜡笔小新金币组件

友情链接:
免费APISSL在线检测在线pingAPI版本项目seo教程免费下载狗凯源码网 查看更多
网站地图 法律声明
本站所存储的源码数据均为转载,不提供在线播放和下载服务。本站为非盈利性,不收取费用,所有内容不用于商业行为,仅供学习交流使用。如有侵权,请联系15001904@qq.com
  • 联系微信,反馈问题

  • 点此立刻反馈