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

资源搜

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

java从入门到精通(第4版)

资源名称:java从入门到精通(第4版) 内容简介: 编辑推荐: “软件开发视频大讲堂”丛书系清华社“视频大讲堂”重点大系之一。该大系包括多个子系列,每个子系列的图书在其同品种的图书中销售名列前茅,其中: 4个品种荣获“全行业优秀畅销品种” 1个品种荣获2012年清华大学出版社“专业畅销书”一等奖 绝大多数品种在“全国计算机零售图书排行榜”同品种排行中名列前茅 截至目前该大系累计销售超过130万册 该大系已成为近年来清华社计算机专业基础类零售图书*畅销的品牌之一 内容简介: 本书从初学者角度出发,通过通俗易懂的语言、丰富多彩的实例,详细介绍了使用Java语言进行程序开发需要掌握的知识。书中所有知识都结合具体实例进行介绍,涉及的程序代码给出了详细的注释,可以使读者轻松领会Java程序开发的精髓,快速提高开发技能。 作者简介: 明日科技是一家专业从事软件开发、教育培训以及软件开发教育资源整合的高科技公司,其编写的教材既注重选取软件开发中的必需、常用内容,又注重内容的易学、方便以及相关知识的拓展,深受读者喜爱。其编写的图书主要有“软件开发视频大讲堂”“软件开发实战1200例”“软件工程师开发大系”等系列。多次荣获“全行业优秀畅销品种”“中国大学出版社优秀畅销书”等奖项,多个品种长期位居同类图书销售排行榜的前列。
陌佑
百度云
百度云

Java高并发编程详解 PDF

资源名称:Java高并发编程详解 PDF  内容简介: 本书共分为四个部分:部分详细地介绍了Java多线程的基本用法和各个API的使用,并且着重介绍了线程与Java虚拟机内存之间的关系。第二部分由线程上下文类加载器方法引入,介绍为什么在线程中要有上下文类加载器的方法函数,从而掌握类在JVM的加载和初始化的整个过程。第三部分主要围绕着volatile关键字展开,在该部分中我们将会了解到现代CPU的架构以及Java的内存模型(JMM)。后一部分,主要站在架构设计的高度看待如何巧妙地开发出真正具备并发能力的系统。 作者简介: 汪文君,汇丰软件(广东)研发中心数据服务中心技术经理、技术专家,目前专注于实时数据data pipeline平台的构建与架构,在加入汇丰软件以前,曾有7年多的移动通信工作经验,以及移动互联网、云计算和B2C电子商务平台的开发架构经验,热衷于技术分享、技术细节锤炼。目前已录制10余套技术视频,在互联网上广泛传播。 资源目录: 推荐序一 推荐序二 推荐序三 推荐序四 前言 第一部分 多线程基础 第1章 快速认识线程 3 1.1 线程的介绍 3 1.2 快速创建并启动一个线程 3 1.2.1 尝试并行运行 4 1.2.2 并发运行交替输出 5 1.2.3 使用Jconsole观察线程 6 1.3 线程的生命周期详解 7 1.3.1 线程的NEW状态 8 1.3.2 线程的RUNNABLE状态 8 1.3.3 线程的 RUNNING状态 8 1.3.4 线程的BLOCKED状态 8 1.3.5 线程的TERMINATED状态 9 1.4 线程的start方法剖析:模板设计模式在Thread中的应用 9 1.4.1 Thread start方法源码分析以及注意事项 9 1.4.2 模板设计模式在Thread中的应用 11 1.4.3 Thread模拟营业大厅叫号机程序 13 1.5 Runnable接口的引入以及策略模式在Thread中的使用 16 1.5.1 Runnable的职责 16 1.5.2 策略模式在Thread中的应用 16 1.5.3 模拟营业大厅叫号机程序 18 1.6 本章总结 19 第2章 深入理解Thread构造函数 20 2.1 线程的命名 20 2.1.1 线程的默认命名 21 2.1.2 命名线程 21 2.1.3 修改线程的名字 22 2.2 线程的父子关系 22 2.3 Thread与ThreadGroup 23 2.4 Thread与Runnable 24 2.5 Thread与JVM虚拟机栈 25 2.5.1 Thread与Stacksize 25 2.5.2 JVM内存结构 27 2.5.3 Thread与虚拟机栈 30 2.6 守护线程 33 2.6.1 什么是守护线程 33 2.6.2 守护线程的作用 34 2.7 本章总结 34 第3章 Thread API的详细介绍 35 3.1 线程sleep 35 3.1.1 sleep方法介绍 35 3.1.2 使用TimeUnit替代Thread.sleep 36 3.2 线程yield 37 3.2.1 yield方法介绍 37 3.2.2 yield和sleep 37 3.3 设置线程的优先级 38 3.3.1 线程优先级介绍 38 3.3.2 线程优先级源码分析 39 3.3.3 关于优先级的一些总结 40 3.4 获取线程ID 40 3.5 获取当前线程 41 3.6 设置线程上下文类加载器 41 3.7 线程interrupt 42 3.7.1 interrupt 42 3.7.2 isInterrupted 43 3.7.3 interrupted 45 3.7.4 interrupt注意事项 46 3.8 线程join 47 3.8.1 线程join方法详解 48 3.8.2 join方法结合实战 50 3.9 如何关闭一个线程 53 3.9.1 正常关闭 54 3.9.2 异常退出 56 3.9.3 进程假死 56 3.10 本章总结 58 第4章 线程安全与数据同步 59 4.1 数据同步 59 4.1.1 数据不一致问题的引入 59 4.1.2 数据不一致问题原因分析 61 4.2 初识 synchronized关键字 62 4.2.1 什么是synchronized 63 4.2.2 synchronized关键字的用法 63 4.3 深入synchronized关键字 65 4.3.1 线程堆栈分析 65 4.3.2 JVM指令分析 67 4.3.3 使用synchronized需要注意的问题 70 4.4 This Monitor和Class Monitor的详细介绍 72 4.4.1 this monitor 72 4.4.2 class monitor 74 4.5 程序死锁的原因以及如何诊断 77 4.5.1 程序死锁 77 4.5.2 程序死锁举例 77 4.5.3 死锁诊断 80 4.6 本章总结 81 第5章 线程间通信 82 5.1 同步阻塞与异步非阻塞 82 5.1.1 同步阻塞消息处理 82 5.1.2 异步非阻塞消息处理 83 5.2 单线程间通信 84 5.2.1 初识wait和notify 84 5.2.2 wait和notify方法详解 87 5.2.3 关于wait和notify的注意事项 89 5.2.4 wait和sleep 90 5.3 多线程间通信 90 5.3.1 生产者消费者 90 5.3.2 线程休息室wait set 93 5.4 自定义显式锁BooleanLock 94 5.4.1 synchronized关键字的缺陷 94 5.4.2 显式锁BooleanLock 95 5.5 本章总结 104 第6章 ThreadGroup详细讲解 105 6.1 ThreadGroup与Thread 105 6.2 创建ThreadGroup 105 6.3 复制Thread数组和ThreadGroup数组 106 6.3.1 复制Thread数组 106 6.3.2 复制ThreadGroup数组 109 6.4 ThreadGroup操作 109 6.4.1 ThreadGroup的基本操作 110 6.4.2 ThreadGroup的interrupt 113 6.4.3 ThreadGroup的destroy 114 6.4.4 守护ThreadGroup 115 6.5 本章总结 116 第7章 Hook线程以及捕获线程执行异常 117 7.1 获取线程运行时异常 117 7.1.1 UncaughtExceptionHandler的介绍 117 7.1.2 UncaughtExceptionHandler实例 118 7.1.3 UncaughtExceptionHandler源码分析 119 7.2 注入钩子线程 121 7.2.1 Hook线程介绍 121 7.2.2 Hook线程实战 122 7.2.3 Hook线程应用场景以及注意事项 124 7.3 本章总结 124 第8章 线程池原理以及自定义线程池 125 8.1 线程池原理 125 8.2 线程池实现 126 8.2.1 线程池接口定义 127 8.2.2 线程池详细实现 131 8.3 线程池的应用 139 8.4 本章总结 142 第二部分 Java ClassLoader 第9章 类的加载过程 144 9.1 类的加载过程简介 144 9.2 类的主动使用和被动使用 145 9.3 类的加载过程详解 148 9.3.1 类的加载阶段 148 9.3.2 类的连接阶段 149 9.3.3 类的初始化阶段 154 9.4 本章总结 156 第10章 JVM类加载器 158 10.1 JVM内置三大类加载器 158 10.1.1 根类加载器介绍 159 10.1.2 扩展类加载器介绍 159 10.1.3 系统类加载器介绍 160 10.2 自定义类加载器 161 10.2.1 自定义类加载器,问候世界 161 10.2.2 双亲委托机制详细介绍 165 10.2.3 破坏双亲委托机制 167 10.2.4 类加载器命名空间、运行时包、类的卸载等 170 10.3 本章总结 175 第11章 线程上下文类加载器 177 11.1 为什么需要线程上下文类加载器 177 11.2 数据库驱动的初始化源码分析 178 11.3 本章总结 180 第三部分 深入理解volatile关键字 第12章 volatile关键字的介绍 182 12.1 初识volatile关键字 182 12.2 机器硬件CPU 184 12.2.1 CPU Cache模型 184 12.2.2 CPU缓存一致性问题 186 12.3 Java内存模型 187 12.4 本章总结 188 第13章 深入volatile关键字 189 13.1 并发编程的三个重要特性 189 13.1.1 原子性 189 13.1.2 可见性 190 13.1.3 有序性 190 13.2 JMM如何保证三大特性 191 13.2.1 JMM与原子性 192 13.2.2 JMM与可见性 193 13.2.3 JMM与有序性 194 13.3 volatile关键字深入解析 195 13.3.1 volatile关键字的语义 195 13.3.2 volatile的原理和实现机制 197 13.3.3 volatile的使用场景 198 13.3.4 volatile和synchronized 199 13.4 本章总结 200 第14章 7种单例设计模式的设计 201 14.1 饿汉式 201 14.2 懒汉式 202 14.3 懒汉式+同步方法 203 14.4 Double-Check 204 14.5 Volatile+Double-Check 206 14.6 Holder方式 206 14.7 枚举方式 207 14.8 本章总结 208 第四部分 多线程设计架构模式 第15章 监控任务的生命周期 212 15.1 场景描述 212 15.2 当观察者模式遇到Thread 212 15.2.1 接口定义 212 15.2.2 ObservableThread实现 215 15.3 本章总结 217 15.3.1 测试运行 217 15.3.2 关键点总结 219 第16章 Single Thread Execution设计模式 220 16.1 机场过安检 220 16.1.1 非线程安全 221 16.1.2 问题分析 223 16.1.3 线程安全 225 16.2 吃面问题 225 16.2.1 吃面引起的死锁 226 16.2.2 解决吃面引起的死锁问题 228 16.2.3 哲学家吃面 229 16.3 本章总结 230 第17章 读写锁分离设计模式 231 17.1 场景描述 231 17.2 读写分离程序设计 232 17.2.1 接口定义 232 17.2.2 程序实现 234 17.3 读写锁的使用 239 17.4 本章总结 242 第18章 不可变对象设计模式 244 18.1 线程安全性 244 18.2 不可变对象的设计 244 18.2.1 非线程安全的累加器 245 18.2.2 方法同步增加线程安全性 247 18.2.3 不可变的累加器对象设计 248 18.3 本章总结 249 第19章 Future设计模式 251 19.1 先给你一张凭据 251 19.2 Future设计模式实现 251 19.2.1 接口定义 252 19.2.2 程序实现 253 19.3 Future的使用以及技巧总结 256 19.4 增强FutureService使其支持回调 257 19.5 本章总结 258 第20章 Guarded Suspension设计模式 259 20.1 什么是Guarded Suspension设计模式 259 20.2 Guarded Suspension的示例 259 20.3 本章总结 261 第21章 线程上下文设计模式 262 21.1 什么是上下文 262 21.2 线程上下文设计 263 21.3 ThreadLocal详解 264 21.3.1 ThreadLocal的使用场景及注意事项 265 21.3.2 ThreadLocal的方法详解及源码分析 265 21.3.3 ThreadLocal的内存泄漏问题分析 270 21.4 使用ThreadLocal设计线程上下文 274 21.5 本章总结 276 第22章 Balking设计模式 277 22.1 什么是Balking设计 277 22.2 Balking模式之文档编辑 278 22.2.1 Document 278 22.2.2 AutoSaveThread 280 22.2.3 DocumentEditThread 281 22.3 本章总结 283 第23章 Latch设计模式 284 23.1 什么是Latch 284 23.2 CountDownLatch程序实现 285 23.2.1 无限等待的Latch 285 23.2.2 有超时设置的Latch 289 23.3 本章总结 291 第24章 Thread-Per-Message设计模式 293 24.1 什么是Thread-Per-Message模式 293 24.2 每个任务一个线程 293 24.3 多用户的网络聊天 296 24.3.1 服务端程序 296 24.3.2 响应客户端连接的Handler 297 24.3.3 聊天程序测试 299 24.4 本章总结 300 第25章 Two Phase Termination设计模式 301 25.1 什么是Two Phase Termination模式 301 25.2 Two Phase Termination的示例 302 25.2.1 线程停止的Two Phase Termination 302 25.2.2 进程关闭的Two Phase Termination 303 25.3 知识扩展 304 25.3.1 Strong Reference及LRUCache 304 25.3.2 Soft Reference及SoftLRUCache 308 25.3.3 Weak Reference 311 25.3.4 Phantom Reference 312 25.4 本章总结 314 第26章 Worker-Thread设计模式 315 26.1 什么是Worker-Thread模式 315 26.2 Worker-Thread模式实现 315 资源截图:
陌佑
百度云
百度云

数据结构与抽象 Java语言描述 第4版 PDF

资源名称:数据结构与抽象 Java语言描述 第4版 PDF  资源目录: 引言 序言 第1章 包 第2章 使用数组实现包 第3章 使用链式数据实现包 第4章 算法的效率 第5章 栈 第6章 栈的实现 第7章 递归 第8章 排序简介 第9章 更快的排序方法 第10章 队列、双端队列和优先队列 第11章 队列、双端队列和优先队列的实现 第12章 线性表 第13章 使用数组实现线性表 第14章 使用链式数据实现线性表 第15章 ADT线性表的迭代器 第16章 有序表 第17章 继承和线性表 第18章 查找 第19章 字典 第20章 字典的实现 第21章 散列简介 第22章 使用散列实现字典 第23章 树 第24章 树的实现 第25章 二叉查找树的实现 第26章 堆的实现 第27章 平衡查找树 第28章 图 第29章 图的实现 资源截图:
陌佑
百度云
百度云

Java 8编程入门官方教程- 第6版

资源名称:Java 8编程入门官方教程- 第6版  作者简介: Herbert Schildt是Java语言的权威,他撰写的程序设计图书大约有30多本,在全世界销售了数百万册,并被翻译成了多种语言。虽然他对计算机的方方面面都很感兴趣,但是主要关注点是计算机语言,包括编译器、解释器和机器人控制语言。他的畅销书有Java: The Complete Reference、Herb Schildt’s Java Programming Cookbook和Swing: A Beginner’s Guide 。 资源目录: 第1章 Java基础 1 1.1 Java的起源 2 1.1.1 Java与C和C++的关系 3 1.1.2 Java与C#的关系 3 1.2 Java对Internet的贡献 4 1.2.1 Java applet 4 1.2.2 安全性 4 1.2.3 可移植性 5 1.3 Java的魔法:字节码 5 1.4 Java的主要术语 6 1.5 面向对象程序设计 7 1.5.1 封装 8 1.5.2 多态性 8 1.5.3 继承 9 1.6 获得Java开发工具包 9 1.7 第一个简单的程序 10 1.7.1 输入程序 10 1.7.2 编译程序 11 1.7.3 逐行分析第一个程序 11 1.8 处理语法错误 13 1.9 第二个简单程序 14 1.10 另一种数据类型 16 1.11 两条控制语句 18 1.11.1 if语句 18 1.11.2 for循环语句 20 1.12 创建代码块 21 1.13 分号和定位 22 1.14 缩进原则 23 1.15 Java关键字 25 1.16 Java标识符 25 1.17 Java类库 26 第2章 数据类型与运算符 29 2.1 数据类型为什么重要 30 2.2 Java的基本类型 30 2.2.1 整数类型 31 2.2.2 浮点型 32 2.2.3 字符型 33 2.2.4 布尔类型 34 2.3 字面值 36 2.3.1 十六进制、八进制和二进制字面值 36 2.3.2 字符转义序列 37 2.3.3 字符串字面值 37 2.4 变量详解 38 2.4.1 初始化变量 39 2.4.2 动态初始化 39 2.5 变量的作用域和生命期 39 2.6 运算符 42 2.7 算术运算符 42 2.8 关系运算符和逻辑运算符 44 2.9 短路逻辑运算符 46 2.10 赋值运算符 47 2.11 速记赋值 47 2.12 赋值中的类型转换 48 2.13 不兼容类型的强制转换 50 2.14 运算符优先级 51 2.15 表达式 53 2.15.1 表达式中的类型转换 53 2.15.2 间距和圆括号 55 第3章 程序控制语句 57 3.1 从键盘输入字符 58 3.2 if语句 59 3.2.1 嵌套if语句 60 3.2.2 if-else-if阶梯状结构 61 3.3 switch语句 62 3.4 for循环 68 3.4.1 for循环的一些变体 69 3.4.2 缺失部分要素的for循环 70 3.4.3 无限循环 71 3.4.4 没有循环体的循环 72 3.4.5 在for循环内部声明循环控制变量 72 3.4.6 增强型for循环 73 3.5 while循环 73 3.6 do-while循环 75 3.7 使用break语句退出循环 79 3.8 将break语句作为一种goto语句使用 81 3.9 使用continue语句 85 3.10 嵌套循环 89 第4章 类、对象和方法 93 4.1 类的基础知识 94 4.1.1 类的基本形式 94 4.1.2 定义类 95 4.2 如何创建对象 98 4.3 引用变量和赋值 98 4.4 方法 99 4.5 从方法返回值 101 4.6 返回值 102 4.7 使用形参 104 4.8 构造函数 112 4.9 带形参的构造函数 113 4.10 深入介绍new运算符 115 4.11 垃圾回收 115 4.12 this关键字 119 第5章 其他数据类型与运算符 123 5.1 数组 124 5.2 多维数组 129 5.3 不规则数组 130 5.3.1 三维或更多维的数组 131 5.3.2 初始化多维数组 131 5.4 另一种声明数组的语法 132 5.5 数组引用赋值 133 5.6 使用length成员 134 5.7 for-each形式的循环 139 5.7.1 迭代多维数组 142 5.7.2 应用增强型for循环 143 5.8 字符串 144 5.8.1 构造字符串 144 5.8.2 操作字符串 145 5.8.3 字符串数组 147 5.8.4 字符串是不可变的 148 5.8.5 使用String控制switch语句 149 5.9 使用命令行实参 150 5.10 位运算符 151 5.10.1 位运算符的与、或、异 或和非 151 5.10.2 移位运算符 155 5.10.3 位运算符的赋值速记符 157 5.11 ?运算符 160 第6章 方法和类详解 163 6.1 控制对类成员的访问 164 6.2 向方法传递对象 169 6.3 返回对象 173 6.4 方法重载 174 6.5 重载构造函数 179 6.6 递归 184 6.7 理解static关键字 186 6.8 嵌套类和内部类 192 6.9 varargs(可变长度实参) 195 6.9.1 varargs基础 195 6.9.2 重载varargs方法 198 6.9.3 varargs和歧义 199 第7章 继承 203 7.1 继承的基础知识 204 7.2 成员访问与继承 207 7.3 构造函数和继承 209 7.4 使用super调用超类构造函数 211 7.5 使用super访问超类成员 215 7.6 创建多级层次结构 218 7.7 何时调用构造函数 221 7.8 超类引用和子类对象 222 7.9 方法重写 227 7.10 重写的方法支持多态性 229 7.11 为何使用重写方法 231 7.12 使用抽象类 235 7.13 使用final 239 7.13.1 使用final防止重写 239 7.13.2 使用final防止继承 239 7.13.3 对数据成员使用final 240 7.14 Object类 241 第8章 包和接口 243 8.1 包 244 8.1.1 定义包 244 8.1.2 寻找包和CLASSPATH 245 8.1.3 一个简短的包示例 245 8.2 包和成员访问 247 8.3 理解被保护的成员 249 8.4 导入包 251 8.5 Java的类库位于包中 252 8.6 接口 253 8.7 实现接口 254 8.8 使用接口引用 257 8.9 接口中的变量 264 8.10 接口能够被扩展 265 8.11 默认接口方法 266 8.11.1 默认方法的基础知识 266 8.11.2 默认方法的实际应用 268 8.11.3 多继承问题 269 8.12 在接口中使用静态方法 270 8.13 有关包和接口的最后思考 271 第9章 异常处理 273 9.1 异常的层次结构 274 9.2 异常处理基础 274 9.2.1 使用关键字try和catch 275 9.2.2 一个简单的异常示例 276 9.3 未捕获异常的结果 277 9.4 使用多个catch语句 280 9.5 捕获子类异常 281 9.6 try代码块可以嵌套 282 9.7 抛出异常 283 9.8 Throwable详解 285 9.9 使用finally 286 9.10 使用throws语句 288 9.11 新增的3种异常功能 289 9.12 Java的内置异常 291 9.13 创建异常子类 293 第10章 使用I/O 299 10.1 Java的I/O基于流 300 10.2 字节流和字符流 300 10.3 字节流类 301 10.4 字符流类 301 10.5 预定义流 302 10.6 使用字节流 302 10.6.1 读取控制台输入 303 10.6.2 写入控制台输出 304 10.7 使用字节流读写文件 305 10.7.1 从文件输入 305 10.7.2 写入文件 309 10.8 自动关闭文件 311 10.9 读写二进制数据 313 10.10 随机访问文件 317 10.11 使用Java字符流 319 10.11.1 使用字符流的控制台输入 320 10.11.2 使用字符流的控制台输出 323 10.12 使用字符流的文件I/O 324 10.12.1 使用FileWriter 324 10.12.2 使用FileReader 325 10.13 使用Java的类型封装器转换数值字符串 326 第11章 多线程程序设计 337 11.1 多线程的基础知识 338 11.2 Thread类和Runnable接口 339 11.3 创建一个线程 339 11.4 创建多个线程 346 11.5 确定线程何时结束 348 11.6 线程的优先级 351 11.7 同步 354 11.8 使用同步方法 354 11.9 同步语句 357 11.10 使用notify( )、wait( )和notifyAll( )的线程通信 360 11.11 线程的挂起、继续执行和停止 365 第12章 枚举、自动装箱、静态导入和注释 371 12.1 枚举 372 12.2 Java语言中的枚举是类类型 374 12.3 values( )和valueOf( )方法 374 12.4 构造函数、方法、实例变量和枚举 376 12.5 枚举继承enum 378 12.6 自动装箱 384 12.7 类型封装器 385 12.8 自动装箱的基础知识 386 12.9 自动装箱和方法 387 12.10 发生在表达式中的自动装箱/自动拆箱 388 12.11 静态导入 390 12.12 注解(元数据) 393 第13章 泛型 397 13.1 泛型的基础知识 398 13.2 一个简单的泛型示例 399 13.2.1 泛型只能用于引用类型 402 13.2.2 泛型类型是否相同基于其类型实参 402 13.2.3 带有两个类型形参的泛型类 402 13.2.4 泛型类的一般形式 404 13.3 约束类型 404 13.4 使用通配符实参 407 13.5 约束通配符 410 13.6 泛型方法 413 13.7 泛型构造函数 415 13.8 泛型接口 416 13.9 原类型和遗留代码 422 13.10 使用菱形运算符进行类型推断 425 13.11 擦除特性 426 13.12 歧义错误 426 13.13 一些泛型限制 427 13.13.1 类型形参不能实例化 427 13.13.2 对静态成员的限制 428 13.13.3 泛型数组限制 428 13.13.4 泛型异常限制 429 13.14 继续学习泛型 429 第14章 lambda表达式和方法引用 431 14.1 lambda表达式简介 432 14.1.1 lambda表达式的基础知识 432 14.1.2 函数式接口 433 14.1.3 几个lambda表达式示例 435 14.2 块lambda表达式 440 14.3 泛型函数式接口 441 14.4 lambda表达式和变量捕获 447 14.5 从 lambda表达式中抛出异常 448 14.6 方法引用 449 14.6.1 静态方法的方法引用 449 14.6.2 实例方法的方法引用 451 14.7 构造函数引用 455 14.8 预定义的函数式接口 457 第15章 applet、事件和其他主题 461 15.1 applet的基础知识 462 15.2 applet的组织和基本构件 465 15.3 applet架构 465 15.4 完整的applet框架 465 15.5 applet的初始化与终止 467 15.6 请求重绘 467 15.7 使用状态窗口 472 15.8 向applet传递形参 473 15.9 Applet类 474 15.10 事件处理 476 15.11 委派事件模型 476 15.12 事件 476 15.12.1 事件源 476 15.12.2 事件侦听器 477 15.12.3 事件类 477 15.12.4 事件侦听器接口 478 15.13 使用委派事件模型 479 15.13.1 处理鼠标事件和鼠标移动事件 479 15.13.2 一个简单的鼠标事件applet 480 15.14 其他Java关键字 482 15.14.1 transient和volatile修饰符 483 15.14.2 instanceof 483 15.14.3 strictfp 483 15.14.4 assert 483 15.14.5 native方法 484 第16章 Swing介绍 487 16.1 Swing的起源和设计原则 488 16.2 组件和容器 490 16.2.1 组件 490 16.2.2 容器 491 16.2.3 顶级容器窗格 491 16.3 布局管理器 491 16.4 第一个简单的Swing程序 492 16.5 使用JButton 497 16.6 使用JTextField 500 16.7 使用JCheckBox 504 16.8 使用JList 507 15.9 使用匿名内部类或lambda表达式来处理事件 515 16.10 创建Swing applet 517 第17章 JavaFX简介 521 17.1 JavaFX的基本概念 522 17.1.1 JavaFX包 522 17.1.2 Stage和Scene类 523 17.1.3 节点和场景图 523 17.1.4 布局 523 17.1.5 Application类和生命周期方法 523 17.1.6 启动JavaFX应用程序 524 17.2 JavaFX应用程序的骨架 524 17.3 编译和运行JavaFX程序 527 17.4 应用程序线程 527 17.5 使用简单的JavaFX控件Label 528 17.6 使用按钮和事件 530 17.6.1 事件基础 530 17.6.2 按钮控件简介 531 17.6.3 演示事件处理和按钮 531 17.7 其他3个JavaFX控件 534 17.7.1 CheckBox 534 17.7.2 ListView 538 17.7.3 TextField 543 17.8 效果和变换简介 546 17.8.1 效果 546 17.8.2 变换 548 17.8.3 演示效果和变换 549 17.9 进一步学习 552 附录A 自测题答案 555 附录B 使用Java的文档注释 599 资源截图:
陌佑
百度云
百度云

大话JAVA性能优化 PDF

资源名称:大话JAVA性能优化 PDF 内容简介: 《大话Java性能优化》主要提供Java性能调优方面的参考建议及经验交流。作者力求做到知识的综合传播,而不是仅仅只针对Java虚拟机调优进行讲解,另外力求每一章节都有实际的案例支撑。具体包括:性能优化策略、程序编写及硬件服务器的基础知识、Java API优化建议、算法类程序的优化建议、并行计算优化建议、Java程序性能监控及检测、JVM原理知识、其他相关优化知识等。 通读《大话Java性能优化》后,读者可以深入了解Java性能调优的许多主题及相关的综合性知识。读者也可以把《大话Java性能优化》作为参考,对于感兴趣的主题,直接跳到相应章节寻找答案。 总的来说,性能调优在很大程度上是一门艺术,解决的Java性能问题越多,技艺才会越精湛。我们不仅要关心JVM的持续演进,也要积极地去了解底层的硬件平台和操作系统的进步。 作者简介: 周明耀:12年投资银行项目、分布式计算项目工作经验,IBM开发者论坛专家作者;一名IT技术狂热爱好者,一名顽强到底的工程师;推崇技术创新、思维创新,对于新技术非常的热爱,致力于技术研发、研究,通过发布文章、书籍、互动活动的形式积极推广软件技术。 资源目录: 第1章 性能调优策略概述 1 1.1 为什么需要调优 1 1.2 性能优化的参考因素 5 1.2.1 传统计算机体系的分歧 5 1.2.2 导致系统瓶颈的计算资源 7 1.2.3 程序性能衡量指标 8 1.2.4 性能优化目标 9 1.2.5 性能优化策略 10 1.3 性能调优分类方法 11 1.3.1 业务方面 12 1.3.2 基础技术方面 12 1.3.3 组件方面 17 1.3.4 架构方面 19 1.3.5 层次方面 20 1.4 本章小结 21 第2章 优化前的准备知识 22 2.1 服务器知识 23 2.1.1 内存 23 2.1.2 GPU/CPU 44 2.1.3 硬盘 49 2.1.4 网络架构 51 2.2 新兴技术 53 第3章 Java API调用优化建议 54 3.1 面向对象及基础类型 55 3.1.1 采用Clone()方式创建对象 55 3.1.2 避免对boolean判断 55 3.1.3 多用条件操作符 56 3.1.4 静态方法代替实例方法 56 3.1.5 有条件地使用final关键字 58 3.1.6 避免不需要的instanceof操作 58 3.1.7 避免子类中存在父类转换 59 3.1.8 建议多使用局部变量 60 3.1.9 运算效率最高的方式——位运算 60 3.1.10 用一维数组代替二维数组 62 3.1.11 布尔运算代替位运算 64 3.1.12 提取表达式优化 65 3.1.13 不要总是使用取反操作符(!) 66 3.1.14 不要重复初始化变量 66 3.1.15 变量初始化过程思考 66 3.1.16 对象的创建、访问过程 69 3.1.17 在switch语句中使用字符串 70 3.1.18 数值字面量的改进 73 3.1.19 优化变长参数的方法调用 74 3.1.20 针对基本数据类型的优化 75 3.1.21 空变量 76 3.2 集合类概念 77 3.2.1 快速删除List里面的数据 78 3.2.2 集合内部避免返回null 80 3.2.3 ArrayList、LinkedList比较 82 3.2.4 Vector、HashTable比较 85 3.2.5 HashMap使用经验 87 3.2.6 EnumSet、EnumMap 91 3.2.7 HashSet使用经验 92 3.2.8 LinkedHashMap、TreeMap比较 96 3.2.9 集合处理优化新方案 99 3.2.10 优先考虑并行计算 107 3.3 字符串概念 108 3.3.1 String对象 108 3.3.2 善用String对象的SubString方法 111 3.3.3 用charat()代替startswith() 113 3.3.4 在字符串相加的时候,使用' '代替" " 114 3.3.5 字符串切割 114 3.3.6 字符串重编码 117 3.3.7 合并字符串 118 3.3.8 正则表达式不是万能的 122 3.4 引用类型概念 123 3.4.1 强引用(Strong Reference) 126 3.4.2 软引用(Soft Reference) 131 3.4.3 弱引用(Weak Reference) 135 3.4.4 引用队列 141 3.4.5 虚引用(Phantom Reference) 142 3.5 其他相关概念 146 3.5.1 JNI技术提升 146 3.5.2 异常捕获机制 150 3.5.3 ExceptionUtils类 154 3.5.4 循环技巧 155 3.5.5 替换switch 157 3.5.6 优化循环 158 3.5.7 使用arrayCopy() 159 3.5.8 使用Buffer进行I/O操作 161 3.5.9 使用clone()代替new 164 3.5.10 I/O速度 166 3.5.11 Finally方法里面释放或者关闭资源占用 167 3.5.12 资源管理机制 167 3.5.13 牺牲CPU时间 169 3.5.14 对象操作 172 3.5.15 正则表达式 172 3.5.16 压缩文件处理 174 3.6 本章小结 175 第4章 程序设计优化建议 176 4.1 算法优化概述 176 4.1.1 常用算法逻辑描述 177 4.1.2 多核算法优化原理 186 4.1.3 Java算法优化实践 188 4.2 设计模式 196 4.2.1 设计模式的六大准则 196 4.2.2 单一对象控制 200 4.2.3 并行程序设计模式 202 4.2.4 接口适配 205 4.2.5 访问方式隔离 219 4.3 I/O及网络相关优化 225 4.3.1 I/O操作优化 225 4.3.2 Socket编程 231 4.3.3 NIO2.0文件系统 235 4.4 数据应用优化 236 4.4.1 关系型数据库优化 236 4.4.2 向HBase插入大量数据 240 4.4.3 解决海量数据缓存 251 4.5 其他优化 256 4.5.1 Web系统性能优化建议 256 4.5.2 死锁情况解决方案 259 4.5.3 JavaBeans组件 268 4.6 本章小结 269 第5章 Java并行程序优化建议 270 5.1 并行程序优化概述 270 5.1.1 资源限制带来的挑战 271 5.1.2 进程、线程、协程 272 5.1.3 使用多线程的原因 281 5.1.4 线程不安全范例 282 5.1.5 重排序机制 284 5.1.6 实例变量的数据共享 286 5.1.7 生产者与消费者模式 288 5.1.8 线程池的使用 290 5.2 锁机制对比 296 5.2.1 锁机制概述 296 5.2.2 Synchronized使用技巧 298 5.2.3 Volatile的使用技巧 303 5.2.4 队列同步器 304 5.2.5 可重入锁 307 5.2.6 读写锁 308 5.2.7 偏向锁和轻量级锁 309 5.3 增加程序并行性 310 5.3.1 并发计数器 311 5.3.2 减少上下文切换次数 312 5.3.3 针对Thread类的更新 314 5.3.4 Fork/Join框架 314 5.3.5 Executor框架 318 5.4 JDK类库使用 319 5.4.1 原子值 320 5.4.2 并行容器 324 5.4.3 非阻塞队列 332 5.4.4 阻塞队列 338 5.4.5 并发工具类 365 5.5 本章小结 376 第6章 JVM性能测试及监控 377 6.1 监控计算机设备层 378 6.1.1 监控CPU 380 6.1.2 监控内存 405 6.1.3 监控磁盘 417 6.1.4 监控网络 423 6.2 监控JVM活动 428 6.2.1 监控垃圾收集目的 429 6.2.2 GC垃圾回收报告分析 430 6.2.3 图形化工具 431 6.2.4 GC跟踪示例 437 6.3 本章小结 438 第7章 JVM性能调优建议 439 7.1 JVM相关概念 439 7.1.1 内存使用相关概念 440 7.1.2 字节码相关知识 443 7.1.3 自动内存管理 448 7.2 JVM系统架构 451 7.2.1 JVM的基本架构 451 7.2.2 JVM初始化过程 453 7.2.3 JVM架构模型与执行引擎 456 7.2.4 解释器与JIT编译器 456 7.2.5 类加载机制 457 7.2.6 虚拟机 458 7.3 垃圾回收机制相关 459 7.3.1 GC相关概念 459 7.3.2 垃圾回收算法 468 7.3.3 垃圾收集器 476 7.4 实用JVM实验 490 7.4.1 将新对象预留在年轻代 490 7.4.2 大对象进入年老代 494 7.4.3 设置对象进入年老代的年龄 495 7.4.4 稳定与震荡的堆大小 497 7.4.5 吞吐量优先案例 498 7.4.6 使用大页案例 499 7.4.7 降低停顿案例 499 7.4.8 设置最大堆内存 499 7.4.9 设置最小堆内存 500 7.4.10 设置年轻代 503 7.4.11 设置持久代 504 7.4.12 设置线程栈 504 7.4.13 堆的比例分配 505 7.4.14 堆分配参数总结 508 7.4.15 垃圾回收器相关参数总结 509 7.4.16 查询GC命令 515 7.5 本章小结 515 第8章 其他优化建议 516 8.1 Java现有机制及未来发展 516 8.1.1 Java体系结构变化历史 516 8.1.2 Java语言面临的挑战 520 8.1.3 Java8的新特性 522 8.1.4 Java语言前景 523 8.1.5 物联网:Java和你是一对 524 8.1.6 Java模块化发展 525 8.1.7 OpenJDK的发展 527 8.2 系统架构优化建议 528 8.2.1 系统架构调优 528 8.2.2 Java项目优化方式分享 530 8.2.3 面向服务架构 534 8.2.4 程序隔离技术 538 8.2.5 团队并行开发准则 544 8.3 与编程无关 546 8.3.1 工程师品格 546 8.3.2 如何成为技术大牛 547 8.3.3 编程方法分享 548 8.4 本章小结 资源截图:
陌佑
百度云
百度云

《零基础学Java(第3版)》PDF

资源名称:《零基础学Java(第3版)》PDF 内容简介: 《零基础学Java(第3版)》内容简介:Java 7.0是Sun公司与Oracle公司合并后推出的关于Java语言的第一个版本,同时也是最新版本。《零基础学Java(第3版)》站在零基础学习的角度,使初学者能尽快掌握Java 7.0语言程序设计的精髓而少走弯路。《零基础学Java(第3版)》一共分为4篇,共27章,循序渐进地讲述了Java语言的语法规则,Eclipse和MyEclipse开发环境的使用,从基本概念到具体实践,从入门知识到高阶主题,从语法语义到数据结构和算法都进行了详细的阐述,主要包括运算符、表达式、分支语句、循环语句、函数、数组、字符串、类、对象、包、继承、多态、封装、枚举、反射,标注、泛型,类加载器、动态代理、多线程、文件的操作和访问、数据的操作,数据的存储,Java数据结构、XML文件的创建和解析、数据库的链接,网络编程和界面的设计等知识点。 资源目录: 前言 第一篇 Java语言语法基础—面向过程知识  第1章 Java技术概览   1.1 Java技术   1.1.1 Java编程语言   1.1.2 Java语言平台   1.1.3 Java语言的功能   1.1.4 Java语言的优点   1.2 Windows下的“HelloWorld”应用程序   1.2.1 创建应用程序的软件环境   1.2.2 创建“HelloWorld”应用程序的步骤   1.3 深入探讨“HelloWorld”应用程序   1.3.1 注释源代码   1.3.2 实现类定义   1.3.3 详解main方法   1.4 常见疑难问题解答   1.4.1 环境变量设置错误   1.4.2 语法错误   1.4.3 语义错误   1.4.4 运行时错误   1.5 小结   1.6 实践题  第2章 Java开发工具及环境设置   2.1 Java开发工具简介   2.1.1 下载并安装JDK   2.1.2 设定环境变量   2.1.3 验证JDK环境是否配置成功   2.2 JDK内置工具   2.2.1 JDK常用工具   2.2.2 JDK常用工具实例   2.2.3 应用程序发布工具   2.3 一个简单的Java应用程序   2.4 一个简单的Java Applet应用程序   2.4.1 编写一个Applet   2.4.2 编写承载Applet Java程序的HTML文件   2.4.3 Applet的运行过程   2.5 注释及内嵌式文档   2.6 常见疑难问题解答   2.6.1 JDK和J2SDK的区别   2.6.2 Java文件扩展名是否区分大小写   2.7 小结   2.8 实践题  第3章 Java语言中的数据与运算符   3.1 数制   3.1.1 基本概念   3.1.2 Java语言中的数制表现形式   3.2 数据类型   3.2.1 整型   3.2.2 字符型   3.2.3 浮点型   3.2.4 布尔型   3.3 变量   3.3.1 变量的声明   3.3.2 变量的含义   3.3.3 变量的分类   3.4 变量如何初始化   3.5 常量   3.6 运算符   3.6.1 算术运算符   3.6.2 关系运算符   3.6.3 逻辑运算符   3.6.4 位运算符   3.6.5 移位运算符   3.6.6 赋值运算符   3.6.7 三元运算符   3.6.8 逗号运算符   3.6.9 转型运算符   3.6.10 运算符的优先级别   3.7 常见疑难解答   3.7.1 如何将十进制转换成二进制   3.7.2 转型运算符会引起精度问题,为什么还要使用它   3.8 小结   3.9 实践题  第4章 程序设计中的流程控制   4.1 编程风格   4.2 条件语句   4.2.1 条件语句的种类   4.2.2 如何使用好条件语句   4.3 循环语句   4.3.1 for循环语句   4.3.2 while循环   4.3.3 do...while语句   4.4 中断与继续语句   4.4.1 中断控制语句   4.4.2 继续语句   4.5 分支语句   4.6 返回语句   4.7 常见疑难解答   4.7.1 普通循环是使用for语句还是while语句   4.7.2 一般的程序可否用分支语句来代替条件语句   4.8 小结   4.9 实践题  第5章 数组   5.1 数组概念的引入   5.1.1 实例的引入   5.1.2 数组的概念   5.1.3 用实例说明数组的用处   5.2 基本数据类型的数组   5.2.1 基本类型数组的声明   5.2.2 基本类型数组的初始化   5.3 由实例引出不同数组种类及其使用   5.3.1 由实例引出一维数组及其使用   5.3.2 由实例引出二维数组及其使用   5.4 数组的综合实例   5.5 常见疑难解答   5.5.1 声明数组需要注意什么   5.5.2 数组在平时的程序代码中使用是否频繁   5.6 小结   5.7 实践题  第6章 字符串的处理   6.1 字符串的基本概念   6.2 字符串处理的类库种类   6.2.1 字符串的赋值   6.2.2 字符串的处理类—String   6.2.3 字符串处理的方法   6.2.4 缓冲字符串处理类—StringBuffer   6.2.5 缓冲字符串StringBuffer类的构造器   6.2.6 缓冲字符串处理的方法   6.2.7 缓冲字符串类的特点   6.3 用实例演示如何处理字符串   6.4 如何格式化输出   6.5 常见疑难解答   6.5.1 “equals”和“==”的区别   6.5.2 String类为何被定义成final约束   6.5.3 char类型如何转换成int类型,int类型如何转换成字符串   6.6 小结   6.7 实践题 第二篇 Java语言语法进阶—面向对象知识  第7章 类   7.1 JDK相关版本特性   7.1.1 什么是JDK   7.1.2 JDK 5的特点   7.1.3 JDK 6的特点   7.1.4 JDK 7的特点   7.1.5 各种JDK版本的比较   7.2 用比较法阐述类的概念   7.3 Java中已有的类   7.3.1 Java的数学运算处理类Math   7.3.2 测试时间和日期的类Date   7.3.3 测试日历的类GregorianCalendar   7.3.4 日历处理的实例解析   7.4 用实例分析设计一个类的流程   7.4.1 如何在现实程序设计中提取一个类   7.4.2 设置器和访问器   7.4.3 总结   7.5 常见疑难解答   7.5.1 类在程序语言中起到了什么作用   7.5.2 设置器和访问器的作用   7.6 小结   7.7 实践题  第8章 对象和包   8.1 对象   8.1.1 什么是对象   8.1.2 操作对象   8.1.3 初始化对象   8.2 对象家族中的成员   8.2.1 对象的成员方法   8.2.2 对象的成员变量   8.3 对象中访问控制符的重要性   8.3.1 什么是访问控制符   8.3.2 如何使用访问控制符及其重要性   8.4 重载   8.4.1 什么是重载   8.4.2 用实例来说明重载的意义   8.5 包   8.5.1 什么是Java中的包   8.5.2 如何实现包   8.5.3 什么是类路径和默认包   8.5.4 包的作用域   8.5.5 静态导入   8.6 注释及嵌入文档   8.6.1 如何添加注释   8.6.2 类、方法、字段等注释的方法   8.7 常见疑难解答   8.7.1 包在实际编程中究竟有什么作用   8.7.2 访问控制符在实际开发有什么作用   8.7.3 一个文件中定义了两个class类是否生成一个.class文件   8.8 小结   8.9 实践题  第9章 继承   9.1 什么是继承   9.1.1 继承的引出   9.1.2 继承的概念   9.2 如何实现继承   9.3 构造函数的使用   9.3.1 什么是构造函数   9.3.2 继承中构造函数的初始化   9.3.3 替代父类和本身的方式   9.3.4 Java中的单继承性   9.4 继承中的覆盖现象   9.5 类之间的关系   9.5.1 依赖   9.5.2 聚合   9.5.3 继承   9.6 继承层次图   9.7 如何设计好继承   9.8 常见疑难解答   9.8.1 Java不支持多继承,如何处理一个类继承多个父类的情况   9.8.2 如果出现了带参数的构造函数,可否不在代码中写出来   9.9 小结   9.10 实践题  第10章 多态   10.1 多态的产生   10.2 多态的概念   10.2.1 使用多态编写程序   10.2.2 覆盖的应用   10.2.3 重载与覆盖的实例对比   10.2.4 覆盖的多态性   10.2.5 传值引用和传址引用   10.3 通过实例熟悉多态用法   10.4 绑定   10.4.1 静态绑定   10.4.2 动态绑定   10.5 超类   10.5.1 什么是超类   10.5.2 equals方法的使用   10.5.3 通用编程   10.6 常见疑难解答   10.6.1 动态和静态编译是什么   10.6.2 绑定与多态的联系是什么   10.6.3 多态与重载的区别是什么   10.7 小结   10.8 实践题  第11章 接口与内部类   11.1 接口   11.1.1 接口概念的引入   11.1.2 接口的概念   11.1.3 接口的声明   11.1.4 接口的实现   11.1.5 接口的多重实现   11.1.6 接口的属性   11.1.7 接口的继承   11.1.8 接口意义   11.2 内部类   11.2.1 使用内部类来访问对象   11.2.2 局部内部类   11.2.3 静态内部类   11.2.4 匿名内部类   11.3 常见疑难解答   11.3.1 匿名类如何在程序中使用   11.3.2 接口与继承有什么区别   11.4 小结   11.5 实践题  第12章 抽象   12.1 抽象的概念   12.1.1 什么是抽象   12.1.2 抽象的综合实例   12.2 抽象类   12.2.1 什么是抽象类   12.2.2 抽象类的实例   12.3 抽象与接口的区别   12.4 枚举   12.4.1 关于枚举的实现原理   12.4.2 枚举的简单应用   12.4.3 关于枚举的高级特性   12.5 反射(Reflection)   12.5.1 关于反射的基石—Class类   12.5.2 关于反射的基本应用   12.5.3 关于反射的高级应用   12.6 标注   12.6.1 标注的简单使用   12.6.2 关于JDK的内置标注   12.7 泛型   12.7.1 为什么要使用泛型   12.7.2 关于泛型的一些特性   12.7.3 关于泛型的通配符   12.8 类加载器   12.8.1 什么是类加载器   12.8.2 什么是类加载器的委派模型   12.9 动态代理   12.9.1 什么是代理   12.9.2 关于动态代理基础类   12.9.3 关于InvocationHandler接口   12.9.4 动态代理类的设计模式   12.10 常见疑难解答   12.10.1 抽象类和接口在概念上有什么区别   12.10.2 如何从设计理念上看待抽象类和接口   12.11 小结   12.12 实践题 第三篇 Java语言编程主题  第13章 线程   13.1 线程的基本概念   13.1.1 进程及其使用环境   13.1.2 线程及其使用环境   13.2 线程创建   13.2.1 如何创建线程   13.2.2 通过实例熟悉如何创建线程   13.3 线程的使用   13.3.1 线程的优先级   13.3.2 线程的休眠与唤醒   13.3.3 线程让步   13.3.4 线程同步   13.3.5 同步块   13.3.6 同步化方法   13.4 实例分析   13.4.1 生产者与消费者的程序设计及分析   13.4.2 多消费者的程序设计及分析   13.4.3 多生产者的程序设计及分析   13.5 常见疑难解答   13.5.1 Java中线程与线程之间怎么通信   13.5.2 什么是进程的死锁和饥饿   13.5.3 什么时候会涉及线程程序   13.6 小结   13.7 实践题  第14章 封装   14.1 封装的介绍   14.2 在程序设计中为什么要使用封装   14.3 结合实例讲述如何设计封装   14.4 在程序设计中设计封装的注意点   14.5 常见疑难解答   14.5.1 封装在现实开发中给程序员带来什么启发   14.5.2 封装在实际开发中的应用有哪些   14.6 小结   14.7 实践题  第15章 Java输入与输出(I/O)   15.1 输入与输出的重要性   15.2 Java重要的输入输出类   15.3 文件或目录信息的处理   15.3.1 File常用的操作方法   15.3.2 文件处理方法的应用   15.3.3 文件和目录的完全处理   15.4 读取数据的媒介之一—流(Stream)   15.4.1 什么是流   15.4.2 什么是输入流和输出流   15.4.3 字节输入流及输出流   15.4.4 使用文件字节输入流读取文件   15.4.5 使用文件字节输出流输出文件   15.5 多字节数据读取类—Filter类   15.5.1 Filter流的概念   15.5.2 处理字节类型以外的文件输入   15.5.3 处理字节类型以外的文件输出   15.5.4 增强的多字节输出流DataOutput   15.5.5 增强的多字节输入流DataInput   15.6 读取数据的媒介之二—字符流   15.6.1 字符流的概念   15.6.2 抽象字符输入流Reader类的使用   15.6.3 抽象字符输出流Writer类的使用   15.6.4 读取带缓存的BufferedReader字符流   15.6.5 带缓存的字符输出流BufferedWriter类   15.6.6 字符输入流FileReader类和FileWriter类的使用   15.6.7 如何用标准输入流System.in来获取数据   15.6.8 打印输入流PrintWriter类与PrintStream类的区别   15.6.9 随机文件访问RandomAccessFile类   15.7 利用对象序列化控制输入输出   15.7.1 什么是对象序列化   15.7.2 基本数据和对象数据读写ObjectInput接口与ObjectOutput接口   15.7.3 对象序列化处理ObjectOutputStream类   15.7.4 对象序列化处理ObjectInputStream类   15.8 常见疑难解答   15.8.1 字节流与字符流主要的区别   15.8.2 输入流与输出流如何区分,各有什么作用   15.8.3 什么是管道流   15.9 小结   15.10 实践题  第16章 异常与处理及内存管理   16.1 异常的概念   16.1.1 异常的分类   16.1.2 异常的声明   16.1.3 异常的抛出   16.2 异常的捕获   16.2.1 捕获多个异常   16.2.2 自定义异常   16.3 内存的管理和回收   16.4 常见疑难解答   16.4.1 为什么要声明方法抛出异常   16.4.2 为什么抛出的异常一定是检查异常   16.5 小结   16.6 实践题  第17章 Java中对数据的处理   17.1 如何将基本数据类型转换为对象   17.1.1 为什么要将基本数据转换为对象   17.1.2 Wrapper类的构造函数   17.1.3 包装类的常用函数   17.1.4 基本数据的拆装箱操作(autoboxing和unboxing)   17.2 如何处理随机性的数据   17.2.1 Random类的基础知识   17.2.2 通过实例熟悉Random类的常用方法   17.3 如何对数据进行排列、整理   17.3.1 Arrays类的常用方法   17.3.2 实例分析   17.4 常见疑难解答   17.4.1 Random类函数在现实生活中有什么用处   17.4.2 数组的排列和整理数据在实际应用中有什么用处   17.5 小结   17.6 实践题  第18章 数据结构   18.1 数据结构接口及实现   18.1.1 数据结构接口的实质   18.1.2 用实例来熟悉数据结构接口的实现   18.2 Collection集合接口与Iterator迭代器接口   18.2.1 熟悉Collection集合接口   18.2.2 List链表接口和Set接口   18.2.3 Map映射接口   18.2.4 Iterator迭代器接口   18.2.5 通过实例来认识迭代器的实现   18.3 常见疑难解答   18.3.1 Collection集合接口和Collections集合类的区别   18.3.2 ArrayList数组列表类和Vector存储类的区别   18.3.3 HashMap散列映射和Hashtable散列表的区别   18.3.4 数据结构的种类有哪些   18.3.5 List链表接口和Set接口的区别   18.4 小结   18.5 实践题  第19章 Java中的数据结构   19.1 链表   19.1.1 什么是Java中的链表   19.1.2 用程序代码段实现对链表的添加   19.1.3 用程序代码段实现对链表的删除   19.2 数组列表类   19.2.1 什么是数组列表类   19.2.2 通过实例熟悉数组列表如何存储数据   19.3 散列表   19.3.1 什么是散列表   19.3.2 通过实例熟悉散列表如何存储数据   19.4 散列集   19.4.1 什么是散列集   19.4.2 通过实例熟悉散列集如何存储数据   19.5 树集   19.5.1 什么是树集   19.5.2 通过实例熟悉树集如何存储数据   19.6 映像   19.6.1 什么是映像   19.6.2 通过实例熟悉映像如何存储数据   19.7 常见疑难解答   19.7.1 哪些是线程安全的数据结构   19.7.2 Vector是什么样的数据结构   19.8 小结   19.9 实践题  第20章 XML基础   20.1 XML的产生及与HTML的比较   20.2 XML的编辑工具   20.3 XML文档   20.3.1 XML的声明   20.3.2 文档类型的声明   20.3.3 元素   20.3.4 注释   20.3.5 处理指令   20.3.6 空白处理   20.3.7 行尾处理   20.3.8 语言标识   20.3.9 一个简单的有关XML的实例   20.4 关于XML的高级知识   20.4.1 什么才是格式良好的XML文档   20.4.2 DTD文档的作用   20.4.3 DTD的结构   20.4.4 几个简单有关DTD的实例   20.5 关于XML文档的操作   20.5.1 下载Dom4J组件   20.5.2 安装和配置Dom4J组件   20.5.3 Dom4J组件的简单使用—解析XML文件   20.5.4 Dom4J组件的简单使用—创建XML文件   20.6 关于XML文档的高级操作   20.6.1 下载Sax类库   20.6.2 安装和配置Sax组件   20.6.3 Sax组件的简单使用——解析XML文件   20.7 常见疑难解答   20.7.1 XML与HTML的区别   20.7.2 XML有哪些显示数据的方式   20.8 小结   20.9 实践题  第21章 JDBC及其应用   21.1 数据库基础知识   21.1.1 什么是数据库   21.1.2 数据库的分类及功能   21.1.3 关系数据库的设计   21.1.4 数据库设计技巧   21.2 JDBC的基础概念   21.2.1 JDBC驱动程序的分类   21.2.2 利用Java到数据库协议方式连接数据库   21.2.3 利用Java到本地API方式连接数据库   21.2.4 利用JDBC-ODBC方式连接数据库   21.3 关于SQL Server 2005数据库基础操作   21.3.1 什么是支持SQL语言的数据库   21.3.2 通过SQL语言如何操作数据库   21.3.3 安装SQL Server 2005   21.3.4 高级SQL类型   21.3.5 使用SQL创建数据库   21.4 JDBC基本编程   21.4.1 如何建立数据库   21.4.2 如何操作数据库   21.5 关于JDBC的高级操作   21.5.1 什么是事务处理   21.5.2 事务处理的过程演练   21.5.3 预查询   21.6 常见疑难解答   21.6.1 操作数据库的具体步骤是什么   21.6.2 数据库中的视图、图表、缺省值、规则、触发器、存储过程的意义   21.7 小结   21.8 实践题  第22章 Swing组件与布局管理器   22.1 什么是Swing编程   22.2 MVC设计模式基础   22.3 简单框架设计及实例   22.3.1 创建一个空白的框架   22.3.2 创建框架的其他工作   22.4 简单图形按钮控件的设计及实例   22.4.1 Swing中的按钮控件   22.4.2 按钮的模型   22.4.3 添加按钮   22.4.4 如何添加单选按钮   22.4.5 复选按钮   22.4.6 ToggleButton按钮   22.5 简单文本输入组件的设计及实例   22.5.1 文本域的设计   22.5.2 密码域的设计   22.5.3 如何设计文本区   22.6 标签组件的设计及实例   22.7 选择组件的设计及实例   22.8 菜单的组件设计   22.9 对话框的种类及用法   22.10 复杂布局管理器的种类及用法   22.10.1 箱式布局的设计   22.10.2 网格组布局的设计   22.11 通过实例熟悉Swing编程   22.12 常见疑难解答   22.12.1 如何处理菜单的启用和禁用功能   22.12.2 如何编写快捷键的程序   22.13 小结   22.14 实践题  第23章 开发工具的使用   23.1 Eclipse简介   23.1.1 下载并安装Eclipse   23.1.2 Eclipse界面介绍   23.2 如何使用Eclipse进行开发   23.2.1 如何新建一个Java工程   23.2.2 如何新建一个Java的类   23.2.3 编写代码   23.3 如何使用MyEclipse进行开发   23.3.1 下载并安装MyEclipse   23.3.2 关于MyEclipse的一些常用操作   23.4 常见疑难解答   23.4.1 Eclipse和Uedit两个开发工具的优缺点   23.4.2 什么是IDE环境   23.4.3 有关Eclipse的编译报错的原因   23.5 小结   23.6 实践题  第24章 Applet设计   24.1 Applet的基本概念及生命周期   24.2 Applet的多媒体处理   24.2.1 声音处理   24.2.2 图像处理   24.3 浏览器与Applet的设计   24.3.1 如何将Applet嵌入浏览器   24.3.2 如何使用Applet类编程   24.3.3 如何用Applet控制浏览器   24.4 Applet的安全   24.5 一个Applet的综合实例分析   24.6 常见疑难解答   24.6.1 浏览器如何运行Applet   24.6.2 有关Applet无法在IE中显示问题的解答   24.7 小结   24.8 实践题  第25章 网络编程基础   25.1 网络基础知识   25.2 TCP与UDP   25.3 端口与套接字   25.4 TCP程序设计基础   25.4.1 如何设计TCP的程序   25.4.2 一个简单的例子   25.5 UDP程序设计基础   25.5.1 如何设计UDP的程序   25.5.2 一个简单的例子   25.6 如何设计网络程序   25.6.1 单向通信综合实例   25.6.2 双向通信综合实例   25.7 常见疑难解答   25.7.1 TCP和UDP的区别   25.7.2  什么是TCP/IP协议?分为几层?协议有什么功能?   25.8 小结   25.9 实践题 第四篇 Java语言程序设计实例与面试题剖析  第26章 学校管理系统   26.1 开发背景   26.2 需求分析   26.3 登录界面的设计   26.3.1 登录界面的分析   26.3.2 登录界面的代码实现   26.3.3 登录界面的实现   26.4 主界面的设计   26.4.1 主界面类的分析   26.4.2 主菜单界面类的代码   26.4.3 主菜单界面类的实现   26.5 数据库系统的设计   26.5.1 数据库中表的创建   26.5.2 数据库中代码段   26.6 学生信息系统界面的设计   26.6.1 学生类的设计   26.6.2 储存类的设计   26.6.3 学生信息界面的设计   26.7 教师信息系统界面的设计   26.7.1 教师类的设计   26.7.2 储存类的设计   26.7.3 教师信息界面的设计   26.8 领导信息系统界面的设计   26.8.1 领导类的设计   26.8.2 储存类的设计   26.8.3 领导信息界面的设计   26.9 小结  第27章 面试题   面试题1 Java的引用和C++的指针有什么区别   面试题2 类和对象有什么区别   面试题3 说明private、protected、public和default的区别   面试题4 Java可以用非0来代表true吗   面试题5 StringBuffer和StringBuilder存在的作用是什么   面试题6 二维数组的长度是否固定   面试题7 符合什么条件的数据集合可以使用foreach循环   面试题8 如何序列化和反序列化一个Java对象   面试题9 如何使用Java的线程池   面试题10 如何利用反射实例化一个类   面试题11 TCP协议的通信特点是什么   面试题12 请简述JDBC操作数据库的编程步骤   面试题13 如何使用连接池技术   面试题14 简述接口和抽象类的区别   面试题15 如何理解Java中的装箱和拆箱   面试题16 根据代码判断创建的对象个数   面试题17 分析循环程序的运行结果   面试题18 可以返回最大值的方法   面试题19 关于垃圾回收的疑问   面试题20 线程问题:找出代码中的错误   面试题21 关于ArrayList、Vector、LinkedList的问答题
陌佑
百度云
百度云

Eclipse权威开发指南(第2版)

资源名称:Eclipse权威开发指南(第2版) 内容简介: 从1999年后期开始,本书作者在IBM里成立了一个小组,称为Eclipse Jumpstart小组。创建该小组的目的是为了共享会成为整个IBM中的Eclipse技术的知识,同时与它的商业伙伴共享这些知识。该小组所做的这些工作的一部分包括一套演示稿、演讲资料和相关练习。在随后的数月过后,随着Eclipse技术的成熟,相关的演示稿和练习也开始变得成熟起来。当Eclipse社区不断壮大,囊括了各种公司和学术机构时,对这些信息的需求也就开始相应增加。  2003年后期,我们发现大多数原先的作者依旧积极从事与Eclipse相关的工作。我们没有预料到并且极为欣慰地看到本书第1版获得了公众的肯定。对于第1版的公众和私人评价都是非常正面的。2004年7月,第1版收到了来自Java Developers Journal的一个编辑选择奖(Editors’ Choice Award)。 资源目录: 第Ⅰ部分 使用 Eclipse   第1章 引言    第2章 Eclipse入门  第3章 使用Java开发工具  第4章 Java程序的运行与调试  第5章 协同使用Eclipse    第6章 Eclipse环境管理 第Ⅱ部分 扩展Eclipse基础  第7章 扩展Eclipse,亦利亦弊  第8章 Eclipse体系结构概述  第9章 插件开发入门  第10章 使用胖客户端平台创建  第11章 创建扩展点:其他人怎样扩展您的插件  第12章 插件开发的高级专题   第13章 定义功能部件和产品 第Ⅲ部分 扩展Eclipse Workbench  第14章 SWT:一个轻便但出色的小部件体系  第15章 JFace查看器  第16章 对话框和向导  第17章 对话框设置、首选项及用户设置  第18章 视图  第19章 编辑器  第20章 透视图  第21章 操作添加项:集成捷径  第22章 提供帮助 第Ⅳ部分 扩展Eclipse IDE  第23章 工作空间资源编程  第24章 利用性质和构建器管理资源  第25章 使用标记对资源进行标识  第26章 使用JFace Text构建定制的文本编辑器  第27章 扩展Java开发工具 第Ⅴ部分 可扩展性专题  第28章 可服务性  第29章 使用作业实现响应性和并发性  第30章 使用功能组管理丰富的功能  第31章 国际化和辅助功能  第32章 性能调整  第33章 Swing互操作性  第34章 OLE与Activex互操作性 第Ⅵ部分 练习 资源截图:
陌佑
百度云
百度云

Java测试驱动开发 PDF

资源名称:Java测试驱动开发 PDF 内容简介: 本书介绍如何将各种TDD 最佳实践应用于Java 开发,主要内容包括:用Java 语言进行TDD 会用到的各种工具和框架,所需环境搭建;通过实际应用程序,展示TDD 优点及开发中应注意的主要问题;TDD是如何通过模拟内部和外部依赖来提升速度的;如何重构既有应用程序;详细介绍所有TDD 最佳实践。 作者简介: Viktor Farcic 资深软件架构师,Docker船长,Java开发专家,热衷于测试驱动开发、行为驱动开发、持续集成、持续交付和持续部署。 他把多年经验都分享在了博客上,深受读者欢迎:http://TechnologyConversations.com。 Alex Garcia 资深Java程序员,敏捷实践拥趸,热衷于学习新语言、新范式、新框架。 资源目录: 第1章 为何要关心测试驱动开发  1 1.1 为何要使用TDD  1 1.1.1 理解TDD  3 1.1.2 红灯?绿灯?重构  3 1.1.3 速度是关键  4 1.1.4 TDD并非测试方法  4 1.2 测试  5 1.2.1 黑盒测试  5 1.2.2 白盒测试  5 1.2.3 质量检查和质量保证的差别  6 1.2.4 更好的测试  6 1.3 模拟  7 1.4 可执行的文档  7 1.5 无需调试  9 1.6 小结  9 第2章 工具、框架和环境  10 2.1 Git  10 2.2 虚拟机  11 2.2.1 Vagrant  11 2.2.2 Docker  13 2.3 构建工具  14 2.4 集成开发环境  15 2.5 单元测试框架  16 2.5.1 JUnit  17 2.5.2 TestNG  19 2.6 Hamcrest和AssertJ  21 2.6.1 Hamcrest  21 2.6.2 AssertJ  22 2.7 代码覆盖率工具  23 2.8 模拟框架  24 2.8.1 Mockito  26 2.8.2 EasyMock  28 2.8.3 PowerMock  29 2.9 用户界面测试  29 2.9.1 Web测试框架  30 2.9.2 Selenium  30 2.9.3 Selenide  31 2.10 行为驱动开发  33 2.10.1 JBehave  33 2.10.2 Cucumber  35 2.11 小结  37 第3章 红灯?绿灯?重构——从失败到成功再到完美  38 3.1 使用Gradle和JUnit搭建环境  39 3.2 “红灯?绿灯?重构”过程  41 3.2.1 编写一个测试  41 3.2.2 运行所有测试并确认最后一个未通过  41 3.2.3 编写实现代码  42 3.2.4 运行所有测试  42 3.2.5 重构  42 3.2.6 重复  43 3.3 “井字游戏”的需求  43 3.4 开发“井字游戏”  43 3.4.1 需求1  44 3.4.2 需求2  49 3.4.3 需求3  52 3.4.4 需求4  57 3.5 代码覆盖率  58 3.6 更多练习  59 3.7 小结  60 第4章 单元测试——专注于当下而非过往  61 4.1 单元测试  61 4.1.1 何为单元测试  62 4.1.2 为何要进行单元测试  62 4.1.3 代码重构  62 4.1.4 为何不只使用单元测试  63 4.2 TDD中的单元测试  64 4.3 TestNG  64 4.3.1 注解@Test  64 4.3.2 注解@BeforeSuite、@Be- foreTest、@BeforeGroups、 @After Groups、@AfterTest和@AfterSuite  65 4.3.3 注解@BeforeClass和@AfterClass  65 4.3.4 注解@BeforeMethod和@AfterMethod  66 4.3.5 注解参数@Test(enable = false)  66 4.3.6 注解参数@Test(expected- Exceptions = SomeClass. class)  66 4.3.7 TestNG和JUnit差别小结  66 4.4 “遥控军舰”的需求  66 4.5 开发“遥控军舰”  67 4.5.1 创建项目  67 4.5.2 辅助类  69 4.5.3 需求1  69 4.5.4 需求2  72 4.5.5 需求3  74 4.5.6 需求4  75 4.5.7 需求5  77 4.5.8 需求6  80 4.6 小结  81 第5章 设计——难以测试说明设计不佳  82 5.1 为何要关心设计  82 5.2 Connect4  84 5.3 完成Connect4实现后再测试  85 5.3.1 需求1  85 5.3.2 需求2  86 5.3.3 需求3  87 5.3.4 需求4  88 5.3.5 需求5  89 5.3.6 需求6  89 5.3.7 需求7  90 5.3.8 需求8  91 5.4 使用TDD实现Connect4  92 5.4.1 Hamcrest  92 5.4.2 需求1  93 5.4.3 需求2  93 5.4.4 需求3  96 5.4.5 需求4  97 5.4.6 需求5  99 5.4.7 需求6  99 5.4.8 需求7  100 5.4.9 需求8  101 5.5 小结  103 第6章 模拟——消除外部依赖  104 6.1 模拟  104 6.1.1 为何使用模拟对象  105 6.1.2 术语  106 6.1.3 模拟对象  106 6.2 Mockito  107 6.3 “井字游戏”第二版的需求  107 6.4 开发“井字游戏”第二版  107 6.4.1 需求1  108 6.4.2 需求2  118 6.5 集成测试  124 6.5.1 分离测试  124 6.5.2 集成测试  125 6.6 小结  127 第7章 BDD——与整个团队协作  128 7.1 不同规范  128 7.1.1 文档  129 7.1.2 供程序员使用的文档  129 7.1.3 供非程序员使用的文档  130 7.2 行为驱动开发  130 7.2.1 叙述  131 7.2.2 场景  132 7.3 书店应用程序的BDD故事  133 7.4 JBehave  136 7.4.1 JBehave运行器  136 7.4.2 待定步骤  137 7.4.3 Selenium和Selenide  138 7.4.4 JBehave步骤  139 7.4.5 最后的验证  144 7.5 小结  146 第8章 重构遗留代码——使其重焕青春  147 8.1 遗留代码  147 8.2 编码套路  156 8.2.1 遗留代码处理套路  157 8.2.2 描述  157 8.2.3 技术说明  157 8.2.4 添加新功能  157 8.2.5 黑盒测试还是尖峰冲击测试  157 8.2.6 初步调查  158 8.2.7 应用遗留代码修改算法  161 8.2.8 提取并重写调用  166 8.2.9 消除状态的“基本类型偏执”坏味  170 8.3 小结  173 第9章 功能开关——将未完成的功能部署到生成环境  175 9.1 持续集成、持续交付和持续部署  175 9.2 功能开关  177 9.3 功能开关示例  178 9.3.1 实现fibonacci服务  181 9.3.2 使用模版引擎  184 9.4 小结  187 第10章 综述  188 10.1 TDD概要  188 10.2 最佳实践  189 10.2.1 命名约定  189 10.2.2 流程  191 10.2.3 开发实践  192 10.2.4 工具  195 10.3 这只是开始  196 10.4 这并非终点  196 资源截图:
陌佑
百度云
百度云

JAVA开发超级工具集

资源名称:JAVA开发超级工具集 内容简介: 《Java开发超级工具集》内容简介:作为一个Java软件开发人员,你正为某个问题而苦恼吗?因为某个问题而影响开发进度,影响开发效率吗?拿起这本书吧!也许,你的问题的答案就在《Java开发超级工具集》中,你只需使用《Java开发超级工具集》介绍的一个小工具,所有问题就迎刃而解了! Java是现今最为流行的软件开发语言了。为了提供开发人员的效率,人们开发了大量的辅助工具,《Java开发超级工具集》介绍了Java语言的各种功能强大的辅助开发工具,包括构建程序与调试,技术文档的编写、单元测试及集成、负载和性能测试,质量度量与问题管理,版本控制与持续集成等,涵盖了Java软件开发的各个方面。这些软件开发工具,都是作者从浩如烟海的大量工具中精挑细选出来的,并进行了分类,给出了详细的使用说明,帮助你提高开发效率,更出色地完成任务。 资源目录: 第一部分 构建工具 第1章 使用Ant设置项目 1.1 构建过程中的Ant 1.2 安装Ant 1.3 Ant概述 1.4 在Ant中编译Java代码 1.5 使用属性自定义构建脚本 1.6 在Ant中运行单元测试 1.7 用Javadoc生成文档 1.8 将应用程序打包 1.9 部署应用程序 1.10 引导构建脚本 1.11 用Maven任务在Ant中使用Maven依赖 1.12 在Eclipse中使用Ant 1.13 在NetBeans中使用Ant 1.14 用XMLTask操作XML 1.15 小结 第2章 使用Maven 2设置项目 2.1 Maven和开发构建过程 2.2 Maven和Ant 2.3 安装Maven 2.4 声明式构建和Maven项目对象模型 2.5 理解Maven 2的生命周期 2.6 Maven目录结构 2.7 根据环境配置Maven 2.8 Maven 2中的依赖管理 2.9 用MvnRepository查找依赖 2.10 项目继承和聚合(Aggregation) 2.11 使用原型(Archetype)创建项目模板 2.12 编译代码 2.13 测试代码 2.14 打包和部署应用程序 2.15 使用Cargo部署应用程序 2.16 在Eclipse中使用Maven 2.17 在NetBeans中使用Maven 2.18 使用插件定制构建过程 2.19 用Archiva设置企业存储库 2.20 使用Artifactory设置企业存储库 2.21 在Maven中使用Ant 2.22 高级原型 2.23 使用组件(Assembly) 第二部分 版本控制工具 第3章 使用CVS设置版本控制 3.1 CVS概述 3.2 设置CVS仓库 3.3 在CVS中创建新项目 3.4 检出项目 3.5 处理文件--更新和提交 3.6 解决仓库锁定问题 3.7 使用关键字替换 3.8 处理二进制文件 3.9 CVS标记 3.10 在CVS中创建分支 3.11 从分支中合并更改 3.12 查看更改历史 3.13 还原更改 3.14 在Windows中使用CVS 第4章 用Subversion设置版本控制 4.1 Subversion概述 4.2 安装Subversion 4.3 Subversion仓库类型 4.4 设置Subversion仓库 4.5 设置新的Subversion项目 4.6 检出工作副本 4.7 将现有文件导入到Subversion 4.8 理解Subversion仓库的URL 4.9 使用文件 4.10 查看当前状态:Status命令 4.11 解决冲突 4.12 使用标记、分支和合并 4.13 回滚到以前的修订版本 4.14 对二进制文件使用文件锁定 4.15 打破和窃取锁定 4.16 用svn:needs-lock属性使锁定文件成为只读 4.17 使用属性 4.18 Subversion中的更改历史记录:日志和Blaming 4.19 用svnserve设置Subversion服务器 4.20 设置安全的svnserve服务器 4.21 设置支持WebDAV/DeltaV的Subversion服务器 4.22 设置安全的WebDAV/DeltaV服务器 4.23 用钩子脚本定制Subversion 4.24 将Subversion安装为Windows服务 4.25 备份和还原Subversion仓库 4.26 在Eclipse中使用Subversion 4.27 在NetBeans中使用Subversion 4.28 在Windows中使用Subversion 4.29 缺陷跟踪和变更控制 4.30 在Ant中使用Subversion 4.31 小结 第三部分 持续集成 第5章 用Continuum设置持续集成服务器 5.1 Continuum概述 5.2 安装Continuum服务器 5.3 手工启动和停止服务器 5.4 检查服务器状态 5.5 以Verbose模式运行Continuum服务器 5.6 添加项目组 5.7 添加Maven项目 5.8 添加Ant项目 5.9 添加外壳脚本项目 5.10 管理项目构建 5.11 管理用户 5.12 设置通知方法(Notifier) 5.13 配置和制订构建计划 5.14 调试构建 5.15 配置Continuum邮件服务器 5.16 配置Continuum网站端口 5.17 用Continuum自动生成Maven网站 5.18 配置手工构建任务 5.19 小结 第6章 用CruiseControl设置持续集成服务器 6.1 CruiseControl概述 6.2 安装CruiseControl 6.3 配置Ant项目 6.4 用Publisher(发布器)通知开发人员 6.5 在CruiseControl中设置Maven 2项目 6.6 CruiseControl操作面板 6.7 第三方工具 6.8 小结 第7章 LuntBuild--基于Web的持续集成服务器 7.1 LuntBuild概述 7.2 安装LuntBuild 7.3 配置LuntBuild服务器 7.4 添加项目 7.5 为版本编号使用项目变量 7.6 构建结果诊断 7.7 与Eclipse一起使用LuntBuild 7.8 在Luntbuild中使用Cobertura报告测试覆盖 7.9 将Luntbuild与Maven集成 7.10 小结 第8章 使用Hudson进行持续集成 8.1 Hudson概述 8.2 安装Hudson 8.3 管理Hudson的主目录 8.4 安装升级 8.5 配置Hudson 8.6 添加新构建任务 8.7 组织任务 8.8 监控构建 8.9 查看和提升特定构建 8.10 管理用户 8.11 认证与安全 8.12 查看更改 8.13 Hudson插件 8.14 记录测试结果 8.15 记录代码度量 8.16 报告代码覆盖 第9章 用Openfire设置即时消息平台 9.1 开发项目中的即时消息软件 9.2 安装Openfire 9.3 在Openfire上设置用户账户 9.4 认证外部数据库中的用户 9.5 针对POP3服务器认证用户 9.6 用群聊天召开虚拟团队会议 9.7 用Openfire插件扩展功能 9.8 与Continuum一起使用Openfire 9.9 与CruiseControl一起使用Openfire 9.10 与Luntbuild一起使用Openfire 9.11 使用Smack API从Java应用程序中发送Jabber消息 9.12 用Smack API检测用户是否在线 9.13 使用Smack API接收消息 第四部分 单元测试 第10章 用JUnit测试代码 10.1 JUnit 3.8和JUnit 4 10.2 用JUnit 4进行单元测试 10.3 设置和优化单元测试用例 10.4 用Timeout进行简单的性能测试 10.5 轻松地检查异常 10.6 使用带参数的测试 10.7 使用assertThat和Hamcrest库 10.8 JUnit 4的理论机制 10.9 与Maven 2一起使用JUnit 4 10.10 与Ant一起使用JUnit 4 10.11 在Ant中有选择地运行JUnit 4测试 10.12 集成测试 10.13 在Eclipse中使用JUnit 4 第11章 用TestNG进行下一代测试 11.1 TestNG概述 11.2 用TestNG创建简单单元测试 11.3 定义TestNG测试套件 11.4 Eclipse的TestNG插件 11.5 在Ant中使用TestNG 11.6 与Maven 2一起使用TestNG 11.7 管理测试生命周期 11.8 使用测试组 11.9 管理依赖 11.10 并行测试 11.11 测试参数和数据驱动的测试 11.12 检查异常 11.13 处理部分失败 11.14 重新运行失败的测试 第12章 用Cobertura 最大化测试覆盖 12.1 测试覆盖 12.2 从Ant中运行Cobertura 12.3 检查TestNG测试的代码覆盖 12.4 理解Cobertura报告 12.5 实施高水平代码覆盖 12.6 在Maven中生成Cobertura报告 12.7 将覆盖测试集成到Maven构建过程中 12.8 Eclipse中的代码覆盖 12.9 小结 第五部分 集成、功能、负载和性能测试 第13章 用StrutsTestCase测试Struts应用程序 13.1 概述 13.2 测试Struts应用程序 13.3 StrutsTestCase概述 13.4 使用StrutsTestCase 进行模拟测试 13.5 测试Struts错误处理 13.6 定制测试环境 13.7 一级(First-level)性能测试 13.8 小结 第14章 用DbUnit进行数据库集成测试 14.1 引言 14.2 概述 14.3 DbUnit的结构 14.4 示例应用程序 14.5 准备数据库 14.6 验证数据库 14.7 替换值 14.8 其他数据集格式 14.9 处理自定义数据类型 14.10 其他应用 第15章 用JUnitPerf进行性能测试 15.1 JUnitPerf概述 15.2 用TimedTest测量性能 15.3 用LoadTest模拟负载 15.4 对非线程安全的测试进行负载测试 15.5 在Ant中分离性能测试和单元测试 15.6 在Maven中分离性能测试和单元测试 第16章 用JMeter进行负载和性能测试 16.1 概述 16.2 安装JMeter 16.3 测试简单的web应用程序 16.4 组织测试用例 16.5 记录和显示测试结果 16.6 使用JMeter代理服务器记录测试用例 16.7 使用变量进行测试 16.8 在多台计算机上进行测试 第17章 用SoapUI测试Web服务 17.1 概述 17.1 SoapUI概述 17.2 安装SoapUI 17.3 安装本地web服务 17.4 用SoapUI测试web服务 17.5 用SoapUI进行负载测试 17.6 从命令行运行SoapUI 17.7 从Ant中运行SoapUI 17.8 从Maven中运行SoapUI 17.9 持续测试 17.10 小结 第18章 用Sun JDK工具监视和分析Java应用程序的性能 18.1 Sun JDK性能分析和监视工具 18.2 用jConsole连接并监视Java应用程序 18.3 用jConsole监视远程Tomcat应用程序 18.4 用JDK工具检测和识别内存泄露 18.5 用堆转储、jmap和jhat诊断内存泄露 18.6 检测死锁 第19章 在Eclipse中分析Java应用程序的性能 19.1 在集成开发环境中分析应用程序的性能 19.2 Eclipse测试和性能工具平台 19.3 安装TPTP 19.4 TPTP和Java 6 19.5 使用TPTP进行基本性能分析 19.6 用基本内存分析结果分析内存使用 19.7 分析执行时间 19.8 显示代码覆盖统计 19.9 使用过滤器优化结果 19.10 分析web应用程序的性能 19.11 小结 第20章 测试用户界面 20.1 概述 20.2 用Selenium测试web应用程序 20.3 用FEST测试Swing图形用户界面 20.4 小结 第六部分 质量度量工具 第21章 用Checkstyle检测和实施编码标准 21.1 用Checkstyle实施编码标准 21.2 在Eclipse中使用Checkstyle 21.3 在Eclipse中定制Checkstyle规则 21.4 使用XML配置文件定制Checkstyle规则 21.5 定制Checkstyle:可以舍弃和使用的常见规则 21.6 用Checkstyle定义源代码文件头规则 21.7 禁用Checkstyle测试 21.8 与Ant一起使用Checkstyle 21.9 与Maven一起使用Checkstyle 第22章 用PMD预先检测错误 22.1 PMD和静态代码分析 22.2 在Eclipse中使用PMD 22.3 在Eclipse中配置PMD规则 22.4 PMD规则集 22.5 编写自己的PMD规则集 22.6 在Eclipse中生成PMD报告 22.7 禁用PMD规则 22.8 用CPD检测剪切和粘贴 22.9 在Ant中使用PMD 22.10 在Maven中使用PMD 第23章 用FindBugs预先检测错误 23.1 FindBugs:专业的程序错误检测工具 23.2 在Eclipse中使用FindBugs 23.3 用FindBugs过滤器有选择地禁用规则 23.4 使用FindBugs注释 23.5 在Ant中使用FindBugs 23.6 在Maven中使用FindBugs 23.7 小结 第24章 检查结果--用Jupiter进行半自动化代码评审 24.1 Jupiter概述--用于Eclipse的代码评审工具 24.2 在Eclipse中安装Jupiter 24.3 理解Jupiter的代码评审流程 24.4 进行个人代码审查 24.5 配置 24.6 设置默认配置值 24.7 单独评审 24.8 团队评审 24.9 返工阶段 24.10 Jupiter的后台处理 24.11 小结 第25章 用Mylyn突出工作重点 25.1 Mylyn概述 25.2 安装Mylyn 25.3 跟踪任务和问题 25.4 与任务仓库进行交互 25.5 用上下文管理将工作重点集中在任务上 25.6 使用Eclipse更改集 25.7 与其他开发人员共享上下文 25.8 小结 第26章 监视构建统计信息 26.1 概述 26.2 QALab 26.3 用StatSCM度量源代码管理 26.4 在Ant中用StatSVN提供统计信息 第七部分 问题管理工具 第27章 Bugzilla 27.1 Bugzilla概述 27.2 安装Bugzilla 27.3 设置Bugzilla环境 27.4 管理用户账户 27.5 使用用户组来限制访问 27.6 配置产品 27.7 用里程碑跟踪进度 27.8 用分类管理产品组 27.9 搜索程序错误 27.10 创建新程序错误 27.11 Bugzilla程序错误的生命周期 27.12 安排通知(Whining) 27.13 在Bugzilla中定制字段 27.14 小结 第28章 Trac-轻量级项目管理 28.1 Trac概述 28.2 安装Trac 28.3 设置Trac项目 28.4 在独立服务器上运行Trac 28.5 将Tracd设置为Windows服务 28.6 在Apache服务器上安装Trac 28.7 管理Trac网站 28.8 管理用户账户 28.9 剪裁Trac网站:使用Wiki功能 28.10 使用Trac Ticket管理系统 28.11 从Subversion中更新Trac问题 28.12 定制Trac Ticket的字段 28.13 设置电子邮件通知 28.14 使用Trac查询和报告 28.15 用Trac路线图(Roadmap)和时间线(Timeline)管理进度 28.16 浏览源代码库 28.17 使用RSS和ICalendar 28.18 使用Python定制wiki页面 28.19 小结 第八部分 技术文档工具 第29章 用Maven 2项目网站进行团队沟通 29.1 作为沟通工具的Maven 2项目网站 29.2 设置Maven网站项目 29.3 将报告集成到网站中 29.4 创建专用Maven网站项目 29.5 定义网站框架 29.6 Maven网站生成架构 29.7 使用代码片断(Snippet) 29.8 定制网站外观 29.9 发布网站 第30章 自动生成技术文档 30.1 概述 30.2 用SchemaSpy直观查看数据库结构 30.3 用Doxygen生成源代码文档 30.4 用UmlGraph在Javadoc中嵌入UML图表 30.5 小结 参考资料 资源截图:
陌佑
百度云
百度云

《Java网络编程与分布式计算》PDF

资源名称:《Java网络编程与分布式计算》PDF 内容简介: 本书清晰地介绍了联网的基本原理,在进行网络编程时需要掌握的主要概念,以及在联网时可能遇到到的问题和Java的解决方案。同时通过实例来介绍如何运用网络编程技术在Java平台上编写应用程序。 本书不仅适合于网络编程的初学者,而且还适合于有一定网络编程经验的程序员。 资源目录: 前言第1章 联网原理 第2章 Java概述 第3章 Internet寻址 第4章 数据流 第5章 用户数据报协议 第6章 传输控制协议 第7章 多线程应用程序 第8章 实现应用协议 第9章 超文本传输协议 第10章 Java servlet 第11章 远程方法调用 第12章 Java IDL和CORBA 第13章 Java Mail 资源截图:
陌佑
百度云
百度云
⬅️ 1...18721873187418751876...3148

添加微信,反馈问题

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

搜索榜单

1

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

1716

2

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

1109

3

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

1058

4

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

953

5

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

911

6

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

830

最新资源

1

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

2

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

3

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

4

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

5

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

6

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

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

  • 点此立刻反馈