自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 资源 (13)
  • 问答 (2)
  • 收藏
  • 关注

原创 博客迁移

[size=large][b]博客地址已转移到github:[/b][/size][size=large][url]http://zeng233.github.io/[/url][/size]

2016-12-20 16:15:26 70

原创 elance新手入门(自由自由)

elance新手入门[url]http://php.js.cn/blog/elance-freelancer-abc/[/url]自由职业国内:猪八戒网

2012-03-24 23:01:29 153

原创 master24 Java ,J2EE源代码研究

master24Java ,J2EE源代码研究:[url]http://miaoxiaodong78.blog.163.com/blog/#m=0&t=1&c=fks_082067084081080071081074087075083080084066087080[/url]

2012-03-08 00:05:44 189

原创 ITeye论坛关于权限控制的讨论

ITeye论坛关于权限控制的讨论 :[url]http://www.iteye.com/magazines/82[/url]大家的权限都是怎么实现的,有什么好的方案没有? 欢迎交流:[url]http://www.iteye.com/topic/1112957[/url]...

2012-03-07 21:34:11 102

原创 很诡异的nio非阻塞通信

我先把代码贴出来吧[code="java"]public class AServer { public static void main(String[] args) throws Exception { ServerSocketChannel server = ServerSocketChannel.open(); server.configureBlocking(f...

2012-01-04 22:50:23 94

原创 博客集锦

[url]http://kenwublog.com/[/url] JVM

2012-01-01 11:20:42 95

原创 应用Hibernate3的DetachedCriteria实现分页查询

应用Hibernate3的DetachedCriteria实现分页查询:[url]http://www.iteye.com/topic/14657#86781[/url]

2011-12-03 13:24:08 153

原创 第一次通宵

项目快接近尾声了,国庆到现在一直都在加班,真的感觉有点疲惫了,前晚加班通宵,这是工作中第一次通宵,虽然项目用到的东西以及业务并不是很复杂,但是整体做下来,非常累,其中的因素就不多说了。项目中并没有给自己技术上有太多的提升,但是同事以及领导给的一些建议或者意见,自己也做了记录,以后我也会那么做,不管怎么样,打算过年之后准备跳了,这里长期待下去,每晚加班至10点11点,人也是肉长的,精力有限...

2011-12-01 22:44:02 105

原创 心里的石头终于落了下来

1、主动沟通,善于和其他同事交流,有效率的解决工作中的问题2、脱离学生时代的思维惯性,在学校里应该尽可能的学习知识,而在公司要能够胜任工作3、不能为了技术而技术,应该做更多更好的产品,创造更高的价值4、勿以恶小而为之,勿以善小而不为,不要抱怨,事无大小,安排了就做之工作总结就这么些,虽然被劈头盖脸的说了一顿,但是还是过了。PASS,今天晚上一同事说俺们永远不会到某某堂,人是会进...

2011-11-16 00:09:13 318

原创 革命尚未成功,同志还需努力

[size=medium]上周五项目终于转测试了,整整加了一个月的班,很辛苦,以前是为了混饭吃才留下来加班,现在真的有点抗不住了,这一个月每天晚上几乎都要9点多才能回去,真实的体会到了码农的生活。 今天一大早隔壁C++的一个小组长过来开了小会议,也没说其他的,就总结了下提交过去的项目,下一步的进度该如何如何去做,其中也给了我很多的意见,不仅如此,前面有好几次,lead...

2011-10-31 22:16:35 193

原创 【query】20个值得开发人员关注的jQuery技术博客

20个值得开发人员关注的jQuery技术博客:[url]http://www.iteye.com/news/22882[/url]

2011-09-26 12:46:30 124

原创 毕业安家

[size=medium] 毕业后参加工作已经整整一个月了,虽然在前段时间在实习,但是中间又要做毕业设计,想起那段时间也挺令人担忧的。这个月感觉自己的时间没有安排好,来到公司其实心里也有心里准备的,实习和现在的情况已经发生很大的变化了,中间的事情就此省略N个字。 出社会了,现在也没有学校那种环境了,自己也得成长,在工作中有时候感觉人比较浮躁。没有安排事情有点闲得蛋疼...

2011-07-29 23:24:35 92

原创 反思、沉淀

[size=medium][b]看了某位前辈的视频,如何学习编程,做个记录[/b]理论+[color=red]实践[/color]->掌握[b]误区一:注重理论,轻视实践:学习新知识前想把关于这方面的理论全部掌握后再去实践。[/b]解决方法:在了解理论之后,就立即去实践,实践驱动理论的学习,这样掌握理论才更加扎实,不容易忘记[b]误区二:不善于做笔记,不善于总结。[/b...

2011-07-27 00:13:47 165 1

《Microservices for the Enterprise》英文版带目录

Understand the key challenges and solutions around building microservices in the enterprise application environment. This book provides a comprehensive understanding of microservices architectural principles and how to use microservices in real-world scenarios. Architectural challenges using microservices with service integration and API management are presented and you learn how to eliminate the use of centralized integration products such as the enterprise service bus (ESB) through the use of composite/integration microservices. Concepts in the book are supported with use cases, and emphasis is put on the reality that most of you are implementing in a “brownfield” environment in which you must implement microservices alongside legacy applications with minimal disruption to your business. Microservices for the Enterprise covers state-of-the-art techniques around microservices messaging, service development and description, service discovery, governance, and data management technologies and guides you through the microservices design process. Also included is the importance of organizing services as core versus atomic, composite versus integration, and API versus edge, and how such organization helps to eliminate the use of a central ESB and expose services through an API gateway. What You'll Learn Design and develop microservices architectures with confidence Put into practice the most modern techniques around messaging technologies Apply the Service Mesh pattern to overcome inter-service communication challenges Apply battle-tested microservices security patterns to address real-world scenarios Handle API management, decentralized data management, and observability Who This Book Is For Developers and DevOps engineers responsible for implementing applications around a microservices architecture, and architects and analysts who are designing such systems

2019-04-24

Mastering.Spring.Cloud

Table of Contents Title Page Copyright and Credits Mastering Spring Cloud Packt Upsell Why subscribe? PacktPub.com Contributors About the author About the reviewer Packt is searching for authors like you Preface Who this book is for What this book covers To get the most out of this book Download the example code files Conventions used Get in touch Reviews Introduction to Microservices The blessings of microservices Building microservices with Spring Framework Cloud-native development Learning the microservices architecture Understanding the need for service discovery Communication between services Failures and circuit breakers Summary Spring for Microservices Introducing Spring Boot Developing applications with Spring Boot Customizing configuration files Creating RESTful Web Services API Documentation Using Swagger 2 together with Spring Boot Testing API with Swagger UI Spring Boot Actuator features Application information Health information Metrics Developer tools Integrating application with database Building a sample application Running the application Summary Spring Cloud Overview Beginning with the basics Netflix OSS Service discovery with Eureka Routing with Zuul Load balancing with Ribbon Writing Java HTTP clients Latency and fault tolerance with Hystrix Configuration management with Archaius Discovery and distributed configuration An alternative – Consul Apache Zookeeper Miscellaneous projects Distributed tracing with Sleuth Messaging and integration Cloud platform support Other useful libraries Security Automated testing Cluster features Projects overview  Release trains Summary Service Discovery Running Eureka on the server side Enabling Eureka on the client side Deregistration on shutdown Using discovery client programmatically Advanced configuration settings Refreshing the registry Changing the instance identificator  Preferring the IP address Response cache Enabling secure communication between client and server Registering a secure service Eureka API Replication and high availability Architecture of the sample solution Building the example application Failover Zones Zones with a standalone server Building an example application Summary Distributed Configuration with Spring Cloud Config Introduction to HTTP API resources Native profile support Building a server-side application Building a client-side application Adding a Eureka Server Client-side bootstrap approaches Config Server discovery Repository backend types Filesystem backend Git backend Different protocols Using placeholders in URIs Building a server application Client-side configuration Multiple repositories Vault backend Getting started with Vault Integration with Spring Cloud Config Client-side configuration Additional features Fail on start and retry Secure client Reload configuration automatically Solution architecture Reload configuration with @RefreshScope Consuming events from a message broker Monitoring repository changes on a Config Server Simulating change events manually Testing locally with a GitLab instance  Summary Communication Between Microservices Different styles of communication  Synchronous communication with Spring Cloud Load balancing with Ribbon Enabling communication between microservices using the Ribbon client Static load balancing configuration Calling other services Using RestTemplate together with service discovery Building example application Using Feign client Support for different zones Enabling Feign for an application Building Feign interfaces Launching microservices Inheritance support Creating a client manually Client customization Summary Advanced Load Balancing and Circuit Breakers Load balancing rules The WeightedResponseTime rule Introducing Hoverfly for testing Testing the rule Customizing the Ribbon client The circuit breaker pattern with Hystrix Building an application with Hystrix Implementing Hystrix's commands Implementing fallback with cached data The tripping circuit breaker Monitoring latency and fault tolerance Exposing Hystrix's metrics stream Hystrix dashboard Building an application with the dashboard Monitoring metrics on the dashboard Aggregating Hystrix's streams with Turbine Enabling Turbine Enabling Turbine with streaming Failures and the circuit breaker pattern with Feign Retrying the connection with Ribbon Hystrix's support for Feign Summary Routing and Filtering with API Gateway Using Spring Cloud Netflix Zuul Building a gateway application Integration with service discovery Customizing route configuration Ignoring registered services Explicity set service name  Route definition with the Ribbon client Adding a prefix to the path Connection settings and timeouts Secure headers Management endpoints Providing Hystrix fallback Zuul filters Predefined filters Custom implementations Using Spring Cloud Gateway Enable Spring Cloud Gateway for a project Built-in predicates and filters Gateway for microservices Integration with service discovery Summary Distributed Logging and Tracing Best logging practices for microservices Logging with Spring Boot Centralizing logs with ELK Stack Setting up ELK Stack on the machine Integrating an application with ELK Stack Using LogstashTCPAppender Using AMQP appender and a message broker Spring Cloud Sleuth Integrating Sleuth with an application Searching events using Kibana Integrating Sleuth with Zipkin Running the Zipkin server Building the client application Analyze data with the Zipkin UI Integration via message broker Summary Additional Configuration and Discovery Features Using Spring Cloud Consul Running Consul agent Integration on the client side Service discovery Health check Zones Client settings customization Running in clustered mode Distributed configuration Managing properties in Consul Client customization Watching configuration changes Using Spring Cloud Zookeeper Running Zookeeper Service discovery Client implementation Zookeeper dependencies Distributed configuration Summary Message-Driven Microservices Learning about Spring Cloud Stream Building a messaging system Enabling Spring Cloud Stream Declaring and binding channels Customizing connectivity with the RabbitMQ broker Integration with other Spring Cloud projects The publish/subscribe model Running a sample system Scaling and grouping Running multiple instances Consumer groups Partitioning Configuration options Spring Cloud Stream properties Binding properties The consumer The producer The advanced programming model Producing messages Transformation Consuming messages conditionally Using Apache Kafka Running Kafka Customizing application settings Kafka Streams API support Configuration properties Multiple binders Summary Securing an API Enabling HTTPS for Spring Boot Secure discovery Registering a secure application Serving Eureka over HTTPS Keystore generation Configurating SSL for microservices and Eureka server Secure configuration server Encryption and decryption Configuring authentication for a client and a server Authorization with OAuth2 Introduction to OAuth2 Building an authorization server Client configuration Using the JDBC backend store Inter-service authorization Enabling SSO on the API gateway Summary Testing Java Microservices Testing strategies Testing Spring Boot applications Building the sample application Integration with the database Unit tests Component tests Running tests with an in-memory database Handling HTTP clients and service discovery Implementing sample tests Integration tests Categorizing tests Capturing HTTP traffic Contract tests Using Pact Consumer side Producer side Using Spring Cloud Contract Defining contracts and generating stubs Verifying a contract on the consumer side Scenarios Performance testing Gatling Enabling Gatling Defining the test scenario Running a test scenario Summary Docker Support Introducing Docker Installing Docker Commonly used Docker commands Running and stopping a container Listing and removing containers Pulling and pushing images Building an image Networking Creating a Docker image with microservices Dockerfiles Running containerized microservices Building an image using the Maven plugin Advanced Docker images Continuous Delivery Integrating Jenkins with Docker Building pipelines Working with Kubernetes Concepts and components Running Kubernetes locally via Minikube Deploying an application Maintaining a cluster Summary Spring Microservices on Cloud Platforms Pivotal Cloud Foundry Usage models Preparing the application Deploying the application Using CLI Binding to services Using the Maven plugin Maintenance Accessing deployment details Managing application life cycles Scaling Provisioning brokered services The Heroku platform Deployment methods Using the CLI Connecting to the GitHub repository Docker Container Registry Preparing an application Testing deployments Summary

2018-05-16

垃圾回收算法手册:自动内存管理的艺术(英文原版,带目录)

目录 · · · · · · 第1章 引言 1 1.1 显式内存释放 1 1.2自动动态内存管理 3 1.3 垃圾回收算法之间的比较 5 1.3.1 安全性 5 1.3.2 吞吐量 5 1.3.3 完整性与及时性 5 1.3.4 停顿时间 6 1.3.5 空间开销 7 1.3.6 针对特定语言的优化 7 1.3.7 可扩展性与可移植性 8 1.4 性能上的劣势 8 1.5 实验方法 8 1.6 术语和符号 10 1.6.1 堆 10 1.6.2 赋值器与回收器 11 1.6.3 赋值器根 11 1.6.4 引用、域和地址 11 1.6.5 存活性、正确性以及可达性 12 1.6.6 伪代码 12 1.6.7 分配器 13 1.6.8 赋值器的读写操作 13 1.6.9 原子操作 13 1.6.10 集合、多集合、序列以及元组 14 第2章 标记–清扫回收 15 2.1 标记–清扫算法 16 2.2 三色抽象 18 2.3 改进的标记–清扫算法 18 2.4 位图标记 19 2.5 懒惰清扫 21 2.6 标记过程中的高速缓存不命中问题 24 2.7 需要考虑的问题 25 2.7.1 赋值器开销 25 2.7.2 吞吐量 26 2.7.3 空间利用率 26 2.7.4 移动,还是不移动 26 第3章 标记–整理回收 28 3.1 双指针整理算法 29 3.2 Lisp 2算法 30 3.3 引线整理算法 32 3.4 单次遍历算法 34 3.5 需要考虑的问题 36 3.5.1 整理的必要性 36 3.5.2 整理的吞吐量开销 36 3.5.3 长寿数据 36 3.5.4 局部性 37 3.5.5 标记–整理算法的局限性 37 第4章 复制式回收 38 4.1 半区复制回收 38 4.1.1 工作列表的实现 39 4.1.2 示例 40 4.2 遍历顺序与局部性 42 4.3 需要考虑的问题 46 4.3.1 分配 46 4.3.2 空间与局部性 47 4.3.3 移动对象 48 第5章 引用计数 49 5.1 引用计数算法的优缺点 50 5.2 提升效率 51 5.3 延迟引用计数 52 5.4 合并引用计数 54 5.5 环状引用计数 57 5.6 受限域引用计数 61 5.7 需要考虑的问题 62 5.7.1 应用场景 62 5.7.2 高级的解决方案 62 第6章 垃圾回收器的比较 64 6.1 吞吐量 64 6.2 停顿时间 65 6.3 内存空间 65 6.4 回收器的实现 66 6.5 自适应系统 66 6.6 统一垃圾回收理论 67 6.6.1 垃圾回收的抽象 67 6.6.2 追踪式垃圾回收 67 6.6.3 引用计数垃圾回收 69 第7章 内存分配 72 7.1 顺序分配 72 7.2 空闲链表分配 73 7.2.1 首次适应分配 73 7.2.2 循环首次适应分配 75 7.2.3 最佳适应分配 75 7.2.4 空闲链表分配的加速 76 7.3 内存碎片化 77 7.4 分区适应分配 78 7.4.1 内存碎片 79 7.4.2 空间大小分级的填充 79 7.5 分区适应分配与简单空闲链表分配的结合 81 7.6 其他需要考虑的问题 81 7.6.1 字节对齐 81 7.6.2 空间大小限制 82 7.6.3 边界标签 82 7.6.4 堆可解析性 82 7.6.5 局部性 84 7.6.6 拓展块保护 84 7.6.7 跨越映射 85 7.7 并发系统中的内存分配 85 7.8 需要考虑的问题 86 第8章 堆内存的划分 87 8.1 术语 87 8.2 为何要进行分区 87 8.2.1 根据移动性进行分区 87 8.2.2 根据对象大小进行分区 88 8.2.3 为空间进行分区 88 8.2.4 根据类别进行分区 89 8.2.5 为效益进行分区 89 8.2.6 为缩短停顿时间进行分区 90 8.2.7 为局部性进行分区 90 8.2.8 根据线程进行分区 90 8.2.9 根据可用性进行分区 91 8.2.10 根据易变性进行分区 91 8.3 如何进行分区 92 8.4 何时进行分区 93 第9章 分代垃圾回收 95 9.1 示例 95 9.2 时间测量 96 9.3 分代假说 97 9.4 分代与堆布局 97 9.5 多分代 98 9.6 年龄记录 99 9.6.1 集体提升 99 9.6.2 衰老半区 100 9.6.3 存活对象空间与柔性提升 101 9.7 对程序行为的适应 103 9.7.1 Appel式垃圾回收 103 9.7.2 基于反馈的对象提升 104 9.8 分代间指针 105 9.8.1 记忆集 106 9.8.2 指针方向 106 9.9 空间管理 107 9.10 中年优先回收 108 9.11 带式回收框架 110 9.12 启发式方法在分代垃圾回收中的应用 112 9.13 需要考虑的问题 113 9.14 抽象分代垃圾回收 115 第10章 其他分区策略 117 10.1 大对象空间 117 10.1.1 转轮回收器 118 10.1.2 在操作系统支持下的对象移动 119 10.1.3 不包含指针的对象 119 10.2 基于对象拓扑结构的回收器 119 10.2.1 成熟对象空间的回收 120 10.2.2 基于对象相关性的回收 122 10.2.3 线程本地回收 123 10.2.4 栈上分配 126 10.2.5 区域推断 127 10.3 混合标记–清扫、复制式回收器 128 10.3.1 Garbage-First回收 129 10.3.2 Immix回收以及其他回收 130 10.3.3 受限内存空间中的复制式回收 133 10.4 书签回收器 134 10.5 超引用计数回收器 135 10.6 需要考虑的问题 136 第11章 运行时接口 138 11.1 对象分配接口 138 11.1.1 分配过程的加速 141 11.1.2 清零 141 11.2 指针查找 142 11.2.1 保守式指针查找 143 11.2.2 使用带标签值进行精确指针查找 144 11.2.3 对象中的精确指针查找 145 11.2.4 全局根中的精确指针查找 147 11.2.5 栈与寄存器中的精确指针查找 147 11.2.6 代码中的精确指针查找 157 11.2.7 内部指针的处理 158 11.2.8 派生指针的处理 159 11.3 对象表 159 11.4 来自外部代码的引用 160 11.5 栈屏障 162 11.6 安全回收点以及赋值器的挂起 163 11.7 针对代码的回收 165 11.8 读写屏障 166 11.8.1 读写屏障的设计工程学 167 11.8.2 写屏障的精度 167 11.8.3 哈希表 169 11.8.4 顺序存储缓冲区 170 11.8.5 溢出处理 172 11.8.6 卡表 172 11.8.7 跨越映射 174 11.8.8 汇总卡 176 11.8.9 硬件与虚拟内存技术 176 11.8.10 写屏障相关技术小结 177 11.8.11 内存块链表 178 11.9 地址空间管理 179 11.10 虚拟内存页保护策略的应用 180 11.10.1 二次映射 180 11.10.2 禁止访问页的应用 181 11.11 堆大小的选择 183 11.12 需要考虑的问题 185 第12章 特定语言相关内容 188 12.1 终结 188 12.1.1 何时调用终结方法 189 12.1.2 终结方法应由哪个线程调用 190 12.1.3 是否允许终结方法彼此之间的并发 190 12.1.4 是否允许终结方法访问不可达对象 190 12.1.5 何时回收已终结对象 191 12.1.6 终结方法执行出错时应当如何处理 191 12.1.7 终结操作是否需要遵从某种顺序 191 12.1.8 终结过程中的竞争问题 192 12.1.9 终结方法与锁 193 12.1.10 特定语言的终结机制 193 12.1.11 进一步的研究 195 12.2 弱引用 195 12.2.1 其他动因 196 12.2.2 对不同强度指针的支持 196 12.2.3 使用虚对象控制终结顺序 199 12.2.4 弱指针置空过程的竞争问题 199 12.2.5 弱指针置空时的通知 199 12.2.6 其他语言中的弱指针 200 12.3 需要考虑的问题 201 第13章 并发算法预备知识 202 13.1 硬件 202 13.1.1 处理器与线程 202 13.1.2 处理器与内存之间的互联 203 13.1.3 内存 203 13.1.4 高速缓存 204 13.1.5 高速缓存一致性 204 13.1.6 高速缓存一致性对性能的影响示例:自旋锁 205 13.2 硬件内存一致性 207 13.2.1 内存屏障与先于关系 208 13.2.2 内存一致性模型 209 13.3 硬件原语 209 13.3.1 比较并交换 210 13.3.2 加载链接/条件存储 211 13.3.3 原子算术原语 212 13.3.4 检测–检测并设置 213 13.3.5 更加强大的原语 213 13.3.6 原子操作原语的开销 214 13.4 前进保障 215 13.5 并发算法的符号记法 217 13.6 互斥 218 13.7 工作共享与结束检测 219 13.8 并发数据结构 224 13.8.1 并发栈 226 13.8.2 基于单链表的并发队列 228 13.8.3 基于数组的并发队列 230 13.8.4 支持工作窃取的并发双端队列 235 13.9 事务内存 237 13.9.1 何谓事务内存 237 13.9.2 使用事务内存助力垃圾回收器的实现 239 13.9.3 垃圾回收机制对事务内存的支持 240 13.10 需要考虑的问题 241 第14章 并行垃圾回收 242 14.1 是否有足够多的工作可以并行 243 14.2 负载均衡 243 14.3 同步 245 14.4 并行回收的分类 245 14.5 并行标记 246 14.6 并行复制 254 14.6.1 以处理器为中心的并行复制 254 14.6.2 以内存为中心的并行复制技术 258 14.7 并行清扫 263 14.8 并行整理 264 14.9 需要考虑的问题 267 14.9.1 术语 267 14.9.2 并行回收是否值得 267 14.9.3 负载均衡策略 267 14.9.4 并行追踪 268 14.9.5 低级同步 269 14.9.6 并行清扫与并行整理 270 14.9.7 结束检测 270 第15章 并发垃圾回收 271 15.1 并发回收的正确性 272 15.1.1 三色抽象回顾 273 15.1.2 对象丢失问题 274 15.1.3 强三色不变式与弱三色不变式 275 15.1.4 回收精度 276 15.1.5 赋值器颜色 276 15.1.6 新分配对象的颜色 276 15.1.7 基于增量更新的解决方案 277 15.1.8 基于起始快照的解决方案 277 15.2 并发回收的相关屏障技术 277 15.2.1 灰色赋值器屏障技术 278 15.2.2 黑色赋值器屏障技术 279 15.2.3 屏障技术的完整性 280 15.2.4 并发写屏障的实现机制 281 15.2.5 单级卡表 282 15.2.6 两级卡表 282 15.2.7 减少回收工作量的相关策略 282 15.3 需要考虑的问题 283 第16章 并发标记–清扫算法 285 16.1 初始化 285 16.2 结束 287 16.3 分配 287 16.4 标记过程与清扫过程的并发 288 16.5 即时标记 289 16.5.1 即时回收的写屏障 290 16.5.2 Doligez-Leroy-Gonthier回收器 290 16.5.3 Doligez-Leroy-Gonthier回收器在Java中的应用 292 16.5.4 滑动视图 292 16.6 抽象并发回收框架 293 16.6.1 回收波面 294 16.6.2 增加追踪源头 295 16.6.3 赋值器屏障 295 16.6.4 精度 295 16.6.5 抽象并发回收器的实例化 296 16.7 需要考虑的问题 296 第17章 并发复制、并发整理算法 298 17.1 主体并发复制:Baker算法 298 17.2 Brooks间接屏障 301 17.3 自删除读屏障 301 17.4 副本复制 302 17.5 多版本复制 303 17.6 Sapphire回收器 306 17.6.1 回收的各个阶段 306 17.6.2 相邻阶段的合并 311 17.6.3 Volatile域 312 17.7 并发整理算法 312 17.7.1 Compressor回收器 312 17.7.2 Pauseless回收器 315 17.8 需要考虑的问题 321 第18章 并发引用计数算法 322 18.1 简单引用计数算法回顾 322 18.2 缓冲引用计数 324 18.3 并发环境下的环状引用计数处理 326 18.4 堆快照的获取 326 18.5 滑动视图引用计数 328 18.5.1 面向年龄的回收 328 18.5.2 算法实现 328 18.5.3 基于滑动视图的环状垃圾回收 331 18.5.4 内存一致性 331 18.6 需要考虑的问题 332 第19章 实时垃圾回收 333 19.1 实时系统 333 19.2 实时回收的调度 334 19.3 基于工作的实时回收 335 19.3.1 并行、并发副本回收 335 19.3.2 非均匀工作负载的影响 341 19.4 基于间隙的实时回收 342 19.4.1 回收工作的调度 346 19.4.2 执行开销 346 19.4.3 开发者需要提供的信息 347 19.5 基于时间的实时回收:Metronome回收器 347 19.5.1 赋值器使用率 348 19.5.2 对可预测性的支持 349 19.5.3 Metronome回收器的分析 351 19.5.4 鲁棒性 355 19.6 多种调度策略的结合:“税收与开支” 355 19.6.1 “税收与开支”调度策略 356 19.6.2 “税收与开支”调度策略的实现基础 357 19.7 内存碎片控制 359 19.7.1 Metronome回收器中的增量整理 360 19.7.2 单处理器上的增量副本复制 361 19.7.3 Stopless回收器:无锁垃圾回收 361 19.7.4 Staccato回收器:在赋值器无等待前进保障条件下的尽力整理 363 19.7.5 Chicken回收器:在赋值器无等待前进保障条件下的尽力整理(x86平台) 365 19.7.6 Clover回收器:赋值器乐观无锁前进保障下的可靠整理 366 19.7.7 Stopless回收器、Chicken回收器、Clover回收器之间的比较 367 19.7.8 离散分配 368 19.8 需要考虑的问题 370 术语表 372 参考文献 383 索引 413

2017-01-24

C++网络编程卷2基于ACE和框架的系统化复用

带目录,网络编程

2016-10-11

headfirst设计模式

清晰版 目录 · · · · · · 引子 谁适合读这本书? 我们知道你的大脑在想什么 元认知 让你的大脑就范 技术审校 致谢 1 欢迎来到设计模式世界:设计模式入门 模拟鸭子应用 Joe想到继承 利用接口如何? 软件开发的不变真理 分开变化和不变部分 设计鸭子的行为 测试鸭子的代码 动态地设置行为 封装行为的大局观 “有一个”比“是一个”更好 策略模式 共享模式词汇的威力 我如何使用设计模式? 设计箱内的工具 习题解答 2 让你的对象知悉现况 气象观测站 认识观察者模式 出版者+订阅者=观罕者模式 五分钟短剧:观察主题 定义观察者模式 松耦合的威力 设计气象站 实现气象站 使用Java内建的观察者模式 java.util.Observable的黑暗面 设计箱内的工具 习题解答 …… 3 装饰者模式:装饰对象 4 工厂模式:烘烤OO的精华 5 单件模式:独一无二的对象 6 命令模式:封装调用 7 适配器模式与外观模式:随遇而安 8 模板方法模式:封装算法 9 送代器与组合模式:管理良好的集合 10 状态模式:事物的状态 11 代理模式:控制对象访问 12 复合模式:模式中的模式 13 与设计模式相处:真实世界中的模式 A 附录A:剩下的模式

2016-10-11

Java夜未眠

[励志篇] 1 学习,是一条漫长的道路 2 写程式,好好玩 3 如何进入程式设计的领域 4 职业敏感度 5 从美丽的菲奥莉娜说起 6 走出你的成功之路 7 从 a 到 e+ [牢骚篇] 8 香鸡排首部曲:程式与香鸡排 9 香鸡排二部曲:再论香鸡排 10 香鸡排三部曲:完结篇 11 software rush 12 ain't no sunshine anymore? 13 e化声声催,e化路迢迢 14 我的座右铭 15 一个java信仰者的告解 [生涯篇] .16 程式员的生涯规划 17 软体人才何处寻? 18 软体产业的知识经济 19 认证无用论? 20 认证有用论? 21 软体与性 [图书篇] 22 你说挑书就像挑老师一样,我说你乱有思想的 23 苦恨年年压金线,为他人作嫁衣裳 24 必也正名乎 25 偶像崇拜(一) 26 偶像崇拜(二) 27 偶像崇拜(三) 偶像崇拜(四) [程序设计学习篇] 28 java标准简介 29 java学习之道 30 摩登原始人 31 你该学什么程序语言? 32 语言、平台、程式库 34 oooo 35 debug [软体工程篇] 36 design pattern新解 37 软体产业的大洪水 38 没人在乎软体工程 39 软体工程的吊诡 40 版本控制 [系统篇] 41 不可能的任务 42 垃圾! 43 java相关的编译技术 44 实现java平台的三种方式 45 变数的种类 46 shit happens, part i 47 shit happens, part ii 48 用xml设计一个你自己的程式语言 49 java繁体中文处理完全攻略 50 编译、反编译、反反编译 51 static 的意义与实作方式 [杂感] 52 an open e-mail 53 散文随笔系列文章暂停 54 极短篇:王伯伯启示录 55 叫专家,太沈重 56 比赛杂感

2016-10-11

ava程序员修炼之道(英).pdf

第一部分 用Java 7做开发 第1章 初识Java 7  2 1.1  语言与平台  2 1.2  Coin项目:浓缩的都是精华  4 1.3  Coin项目中的修改  7 1.3.1  switch语句中的String  7 1.3.2  更强的数值文本表示法  8 1.3.3  改善后的异常处理  9 1.3.4  try-with-resources(TWR)  11 1.3.5  钻石语法  13 1.3.6  简化变参方法调用  14 1.4  小结  15 第2章 新I/O  17 2.1  Java I/O简史  18 2.1.1  Java 1.0到1.3  19 2.1.2  在Java 1.4中引入的NIO  19 2.1.3  下一代I/O-NIO.2  20 2.2  文件I/O的基石:Path  20 2.2.1  创建一个Path  23 2.2.2  从Path中获取信息  23 2.2.3  移除冗余项  24 2.2.4  转换Path  25 2.2.5  NIO.2 Path和Java已有的File类  25 2.3  处理目录和目录树  26 2.3.1  在目录中查找文件  26 2.3.2  遍历目录树  27 2.4  NIO.2的文件系统I/O  28 2.4.1  创建和删除文件  29 2.4.2  文件的复制和移动  30 2.4.3  文件的属性  31 2.4.4  快速读写数据  34 2.4.5  文件修改通知  35 2.4.6  SeekableByteChannel  37 2.5  异步 I/O操作  37 2.5.1  将来式  38 2.5.2  回调式  40 2.6  Socket和Channel的整合  41 2.6.1  NetworkChannel  42 2.6.2  MulticastChannel  42 2.7  小结  43 第二部分 关键技术 第3章 依赖注入  46 3.1  知识注入:理解IoC和DI  46 3.1.1  控制反转  47 3.1.2  依赖注入  48 3.1.3  转成DI  49 3.2  Java中标准化的DI  53 3.2.1  @Inject注解  54 3.2.2  @Qualifier注解  55 3.2.3  @Named注解  57 3.2.4  @Scope注解  57 3.2.5  @Singleton注解  57 3.2.6  接口Provider<T>  58 3.3   Java中的DI参考实现:Guice 3  59 3.3.1  Guice新手指南  59 3.3.2  水手绳结:Guice的各种绑定  62 3.3.3  在Guice中限定注入对象的生命周期  64 3.4  小结  66 第4章 现代并发  67 4.1  并发理论简介  68 4.1.1  解释Java线程模型  68 4.1.2  设计理念  69 4.1.3  这些原则如何以及为何会相互冲突  70 4.1.4  系统开销之源  71 4.1.5  一个事务处理的例子  71 4.2  块结构并发(Java 5之前)  72 4.2.1  同步与锁  73 4.2.2  线程的状态模型  74 4.2.3  完全同步对象  74 4.2.4  死锁  76 4.2.5  为什么是synchronized  77 4.2.6  关键字volatile  78 4.2.7  不可变性  79 4.3  现代并发应用程序的构件  80 4.3.1  原子类:java.util. concurrent.atomic  81 4.3.2  线程锁:java.util. concurrent.locks  81 4.3.3  CountDownLatch  85 4.3.4  ConcurrentHashMap  86 4.3.5  CopyOnWriteArrayList  87 4.3.6  Queue  90 4.4  控制执行  95 4.4.1  任务建模  96 4.4.2  ScheduledThread-PoolExecutor  97 4.5  分支/合并框架  98 4.5.1  一个简单的分支/合并例子  99 4.5.2  ForkJoinTask与工作窃取  101 4.5.3  并行问题  102 4.6  Java内存模型  103 4.7  小结  104 第5章 类文件与字节码  106 5.1  类加载和类对象  107 5.1.1  加载和连接概览  107 5.1.2  验证  108 5.1.3  Class对象  108 5.1.4  类加载器  109 5.1.5  示例:依赖注入中的类加载器  110 5.2  使用方法句柄  111 5.2.1  MethodHandle  112 5.2.2  MethodType  112 5.2.3  查找方法句柄  113 5.2.4  示例:反射、代理与方法句柄  114 5.2.5  为什么选择MethodHandle  116 5.3  检查类文件  117 5.3.1  介绍javap  117 5.3.2  方法签名的内部形式  118 5.3.3  常量池  119 5.4  字节码  121 5.4.1  示例:反编译类  121 5.4.2  运行时环境  123 5.4.3  操作码介绍  124 5.4.4  加载和储存操作码  125 5.4.5  数学运算操作码  125 5.4.6  执行控制操作码  126 5.4.7  调用操作码  126 5.4.8  平台操作操作码  127 5.4.9  操作码的快捷形式  127 5.4.10  示例:字符串拼接  127 5.5  invokedynamic  129 5.5.1  invokedynamic如何工作  129 5.5.2  示例:反编译invokedynamic调用  130 5.6  小结  132 第6章 理解性能调优  133 6.1  性能术语  134 6.1.1  等待时间  135 6.1.2  吞吐量  135 6.1.3  利用率  135 6.1.4  效率  135 6.1.5  容量  136 6.1.6  扩展性  136 6.1.7  退化  136 6.2  务实的性能分析法  136 6.2.1  知道你在测量什么  137 6.2.2  知道怎么测量  137 6.2.3  知道性能目标是什么  138 6.2.4  知道什么时候停止优化  139 6.2.5  知道高性能的成本  139 6.2.6  知道过早优化的危险  140 6.3  哪里出错了?我们担心的原因  140 6.3.1  过去和未来的性能趋势:摩尔定律  141 6.3.2  理解内存延迟层级  142 6.3.3  为什么Java性能调优存在困难  143 6.4  一个来自于硬件的时间问题  144 6.4.1  硬件时钟  144 6.4.2  麻烦的nanoTime()  144 6.4.3  时间在性能调优中的作用  146 6.4.4  案例研究:理解缓存未命中  147 6.5  垃圾收集  149 6.5.1  基本算法  149 6.5.2  标记和清除  150 6.5.3  jmap  152 6.5.4  与GC相关的JVM参数  155 6.5.5  读懂GC日志  156 6.5.6  用VisualVM查看内存使用情况  157 6.5.7  逸出分析  159 6.5.8  并发标记清除  160 6.5.9  新的收集器:G1  161 6.6  HotSpot的JIT编译  162 6.6.1  介绍HotSpot  163 6.6.2  内联方法  164 6.6.3  动态编译和独占调用  165 6.6.4  读懂编译日志  166 6.7  小结  167 第三部分 JVM上的多语言编程 第7章 备选JVM语言  170 7.1  Java 太笨?纯粹诽谤  170 7.1.1  整合系统  171 7.1.2  函数式编程的基本原理  172 7.1.3  映射与过滤器  173 7.2  语言生态学  174 7.2.1  解释型与编译型语言  175 7.2.2  动态与静态类型  175 7.2.3  命令式与函数式语言  176 7.2.4  重新实现的语言与原生语言  176 7.3  JVM上的多语言编程  177 7.3.1  为什么要用非Java语言  178 7.3.2  崭露头角的语言新星  179 7.4  如何挑选称心的非Java语言  180 7.4.1  低风险  181 7.4.2  与Java的交互操作  181 7.4.3  良好的工具和测试支持  182 7.4.4  备选语言学习难度  182 7.4.5  使用备选语言的开发者  182 7.5  JVM对备选语言的支持  183 7.5.1  非Java语言的运行时环境  183 7.5.2  编译器小说  184 7.6  小结  185 第8章 Groovy:Java的动态伴侣  187 8.1  Groovy入门  189 8.1.1  编译和运行  189 8.1.2  Groovy控制台  190 8.2  Groovy 101:语法和语义  191 8.2.1  默认导入  192 8.2.2  数字处理  192 8.2.3  变量、动态与静态类型、作用域  193 8.2.4  列表和映射语法  195 8.3  与Java的差异——新手陷阱  196 8.3.1  可选的分号和返回语句  196 8.3.2  可选的参数括号  197 8.3.3  访问限定符  197 8.3.4  异常处理  198 8.3.5  Groovy中的相等  198 8.3.6  内部类  199 8.4  Java不具备的Groovy特性  199 8.4.1  GroovyBean  199 8.4.2  安全解引用操作符  200 8.4.3  猫王操作符  201 8.4.4  增强型字符串  201 8.4.5  函数字面值  202 8.4.6  内置的集合操作  203 8.4.7  对正则表达式的内置支持  204 8.4.8  简单的XML处理  205 8.5  Groovy与Java的合作  207 8.5.1  从Groovy调用Java  207 8.5.2  从Java调用Groovy  208 8.6  小结  211 第9章 Scala:简约而不简单  212 9.1  走马观花Scala  213 9.1.1  简约的Scala  213 9.1.2  match表达式  215 9.1.3  case类  217 9.1.4  actor  218 9.2  Scala能用在我的项目中吗  219 9.2.1  Scala和Java的比较  219 9.2.2  何时以及如何开始使用Scala  220 9.2.3  Scala可能不适合当前项目的迹象  220 9.3  让代码因Scala重新绽放  221 9.3.1  使用编译器和REPL  221 9.3.2  类型推断  222 9.3.3  方法  223 9.3.4  导入  224 9.3.5  循环和控制结构  224 9.3.6  Scala的函数式编程  225 9.4  Scala对象模型:相似但不同  226 9.4.1  一切皆对象  226 9.4.2  构造方法  228 9.4.3  特质  228 9.4.4  单例和伴生对象  230 9.4.5  case类和match表达式  232 9.4.6  警世寓言  234 9.5  数据结构和集合  235 9.5.1  List  235 9.5.2  Map  238 9.5.3  泛型  239 9.6  actor介绍  242 9.6.1  代码大舞台  242 9.6.2  用mailbox跟actor通信  243 9.7  小结  244 第10章 Clojure:更安全地编程  245 10.1  Clojure介绍  245 10.1.1  Clojure的Hello World  246 10.1.2  REPL入门  247 10.1.3  犯了错误  248 10.1.4  学着去爱括号  248 10.2  寻找Clojure:语法和语义  249 10.2.1  特殊形式新手营  249 10.2.2  列表、向量、映射和集  250 10.2.3  数学运算、相等和其他操作  252 10.3  使用函数和循环  253 10.3.1  一些简单的Clojure函数  253 10.3.2  Clojure中的循环  255 10.3.3  读取器宏和派发器  256 10.3.4  函数式编程和闭包  257 10.4  Clojure序列  258 10.4.1  懒序列  260 10.4.2  序列和变参函数  261 10.5  Clojure与Java的互操作  262 10.5.1  从Clojure中调用Java  262 10.5.2  Clojure值的Java类型  263 10.5.3  使用Clojure代理  264 10.5.4  用REPL做探索式编程  264 10.5.5  在Java中使用Clojure  265 10.6  Clojure并发  265 10.6.1  未来式与并行调用  266 10.6.2  ref形式  267 10.6.3  代理  271 10.7  小结  272 第四部分 多语种项目开发 第11章 测试驱动开发  274 11.1  TDD概览  275 11.1.1  一个测试用例  276 11.1.2  多个测试用例  280 11.1.3  深入思考红—绿—重构循环  282 11.1.4  JUnit  283 11.2  测试替身  285 11.2.1  虚设对象  286 11.2.2  存根对象  287 11.2.3  伪装替身  290 11.2.4  模拟对象  295 11.3  ScalaTest  296 11.4  小结  298 第12章 构建和持续集成  300 12.1  与Maven 3相遇  302 12.2  Maven 3入门项目  303 12.3  用Maven 3构建Java7developer项目  305 12.3.1  POM  305 12.3.2  运行示例  311 12.4  Jenkins:满足CI需求  314 12.4.1  基础配置  315 12.4.2  设置任务  316 12.4.3  执行任务  319 12.5  Maven和Jenkins代码指标  320 12.5.1  安装Jenkins插件  321 12.5.2  用Checkstyle保持代码一致性  322 12.5.3  用FindBugs设定质量标杆  323 12.6  Leiningen  325 12.6.1  Leiningen入门  326 12.6.2  Leiningen的架构  326 12.6.3  Hello Lein  327 12.6.4  用Leiningen做面向REPL的TDD  329 12.6.5  用Leiningen打包和部署  330 12.7  小结  332 第13章 快速Web开发  333 13.1  Java Web框架的问题  334 13.1.1  Java编译为什么不好  335 13.1.2  静态类型为什么不好  335 13.2  选择Web框架的标准  336 13.3  Grails入门  338 13.4  Grails快速启动项目  338 13.4.1  创建域对象  340 13.4.2  测试驱动开发  340 13.4.3  域对象持久化  342 13.4.4  创建测试数据  343 13.4.5  控制器  343 13.4.6  GSP/JSP页面  344 13.4.7  脚手架和UI的自动化创建  346 13.4.8  快速周转的开发  347 13.5  深入Grails  347 13.5.1  日志  347 13.5.2  GORM:对象关系映射  348 13.5.3  Grails插件  349 13.6  Compojure入门  350 13.6.1  Hello Compojure  350 13.6.2  Ring和路由  352 13.6.3  Hiccup  353 13.7  我是不是一只水獭  353 13.7.1  项目设置  354 13.7.2  核心函数  357 13.8  小结  359 第14章 保持优秀  361 14.1  对Java 8的期待  361 14.1.1  lambda表达式(闭包)  362 14.1.2  模块化(拼图Jigsaw)  363 14.2  多语言编程  365 14.2.1  语言的互操作性及元对象协议  365 14.2.2  多语言模块化  366 14.3  未来的并发趋势  367 14.3.1  多核的世界  367 14.3.2  运行时管理的并发  367 14.4  JVM的新方向  368 14.4.1  VM的合并  368 14.4.2  协同程序  369 14.4.3  元组  370 14.5  小结  372 附录A  java7developer:源码安装  373 附录B  glob模式语法及示例  380 附录C  安装备选JVM语言  382 附录D  Jenkins的下载和安装  388 附录E  java7developer:Maven POM  390

2016-10-10

数据库系统概念(原书第六版中文版).zip.001

出版者的话 译者序 前言  第1章 引言   1.1数据库系统的应用   1.2数据库系统的目标   1.3数据视图   1.3.1数据抽象   1.3.2实例和模式   1.3.3数据模型   1.4数据库语言   1.4.1数据操纵语言   1.4.2数据定义语言   1.5关系数据库   1.5.1表   1.5.2数据操纵语言   1.5.3数据定义语言   1.5.4来自应用程序的数据库访问   1.6数据库设计   1.6.1设计过程   1.6.2大学机构的数据库设计   1.6.3实体-联系模型   1.6.4规范化   1.7数据存储和查询   1.7.1存储管理器   1.7.2查询处理器   1.8事务管理   1.9数据库体系结构   1.10数据挖掘与信息检索   1.11特种数据库   1.11.1基于对象的数据模型   1.11.2半结构化数据模型   1.12数据库用户和管理员   1.12.1数据库用户和用户界面   1.12.2数据库管理员   1.13数据库系统的历史   1.14总结   术语回顾   实践习题   习题   工具   文献注解 第一部分 关系数据库  第2章 关系模型介绍   2.1关系数据库的结构   2.2数据库模式   2.3码   2.4模式图   2.5关系查询语言   2.6关系运算   2.7总结   术语回顾   实践习题   习题   文献注解  第3章 SQL   3.1SQL查询语言概览   3.2SQL数据定义   3.2.1基本类型   3.2.2基本模式定义   3.3SQL查询的基本结构   3.3.1单关系查询   3.3.2多关系查询   3.3.3自然连接   3.4附加的基本运算   3.4.1更名运算   3.4.2字符串运算   3.4.3select子句中的属性说明   3.4.4排列元组的显示次序   3.4.5where子句谓词   3.5集合运算   3.5?1并运算   3.5?2交运算   3.5?3差运算   3.6空值   3.7聚集函数   3.7.1基本聚集   3.7.2分组聚集   3.7.3having子句   3.7.4对空值和布尔值的聚集   3.8嵌套子查询   3.8.1集合成员资格   3.8.2集合的比较   3.8.3空关系测试   3.8.4重复元组存在性测试   3.8.5from子句中的子查询   3.8.6with子句   3.8.7标量子查询   3.9数据库的修改   3.9.1删除   3.9.2插入   3.9.3更新   3.10总结   术语回顾   实践习题   习题   工具   文献注解  第4章 中级SQL   4.1连接表达式   4.1.1连接条件   4.1.2外连接   4.1.3连接类型和条件   4.2视图   4.2?1视图定义   4.2?2SQL查询中使用视图   4.2?3物化视图   4.2.4视图更新   4.3事务   4.4完整性约束   4.4.1单个关系上的约束   4.4.2not null约束   4.4.3unique约束   4.4.4check子句   4.4.5参照完整性   4.4.6事务中对完整性约束的违反   4.4.7复杂check条件与断言   4.5SQL的数据类型与模式   4.5.1SQL中的日期和时间类型   4.5.2默认值   4.5.3创建索引   4.5.4大对象类型   4.5.5用户定义的类型   4.5.6create table的扩展   4.5.7模式、目录与环境   4.6授权   4.6.1权限的授予与收回   4.6.2角色   4.6.3视图的授权   4.6.4模式的授权   4.6.5权限的转移   4.6.6权限的收回   4.7总结   术语回顾   实践习题   习题   文献注解  第5章 高级SQL   5.1使用程序设计语言访问数据库   5.1.1JDBC   5.1.2ODBC   5.1.3嵌入式SQL   5.2函数和过程   5.2.1声明和调用SQL函数和过程   5.2.2支持过程和函数的语言构造   5.2.3外部语言过程   5.3触发器   5.3.1对触发器的需求   5.3.2SQL中的触发器   5.3.3何时不用触发器   5.4递归查询**   5.4.1用迭代来计算传递闭包   5.4.2SQL中的递归   5.5高级聚集特性**   5.5.1排名   5.5.2分窗   5.6OLAP**   5.6.1联机分析处理   5.6.2交叉表与关系表   5.6.3 SQL中的OLAP   5.7总结   术语回顾   实践习题   习题   工具   文献注解  第6章 形式化关系查询语言   6.1关系代数   6.1.1基本运算   6.1.2关系代数的形式化定义   6.1.3附加的关系代数运算   6.1.4扩展的关系代数运算   6.2元组关系演算   6.2.1查询示例   6.2.2形式化定义   6.2.3表达式的安全性   6.2.4语言的表达能力   6.3域关系演算   6.3.1形式化定义   6.3.2查询的例子   6.3.3表达式的安全性   6.3.4语言的表达能力   6.4总结   术语回顾   实践习题   习题   文献注解 第二部分 数据库设计  第7章 数据库设计和E-R模型   7.1设计过程概览   7.1.1设计阶段   7.1.2设计选择   7.2实体-联系模型   7.2.1实体集   7.2.2联系集   7.2.3属性   7.3约束   7.3.1映射基数   7.3.2参与约束   7.3.3码   7.4从实体集中删除冗余属性   7.5实体-联系图   7.5.1基本结构   7.5.2映射基数   7.5.3复杂的属性   7.5.4角色   7.5.5非二元的联系集   7.5.6弱实体集   7.5.7大学的E-R图   7.6转换为关系模式   7.6.1具有简单属性的强实体集的表示   7.6.2具有复杂属性的强实体集的表示   7.6.3弱实体集的表示   7.6.4联系集的表示   7.7实体-联系设计问题   7.7.1用实体集还是用属性   7.7.2用实体集还是用联系集   7.7.3二元还是n元联系集   7.7.4联系属性的布局   7.8扩展的E-R特性   7.8.1特化   7.8.2概化   7.8.3属性继承   7.8.4概化上的约束   7.8.5聚集   7.8.6转换为关系模式   7.9数据建模的其他表示法   7.9.1E-R图的其他表示法   7.9.2统一建模语言UML   7.10数据库设计的其他方面   7.10.1数据约束和关系数据库设计   7.10.2使用需求:查询、性能   7.10.3授权需求   7.10.4数据流、工作流   7.10.5数据库设计的其他问题   7.11总结   术语回顾   实践习题   习题   工具   文献注解  第8章 关系数据库设计   8.1好的关系设计的特点   8.1.1设计选择:更大的模式   8.1.2设计选择:更小的模式   8.2原子域和第一范式   8.3使用函数依赖进行分解   8.3.1码和函数依赖   8.3.2Boyce-Codd范式   8.3.3BCNF和保持依赖   8.3.4第三范式   8.3.5更高的范式   8.4函数依赖理论   8.4.1函数依赖集的闭包   8.4.2属性集的闭包   8.4.3正则覆盖   8.4.4无损分解   8.4.5保持依赖   8.5分解算法   8.5.1BCNF分解   8.5.23NF分解   8.5.33NF算法的正确性   8.5.4BCNF和3NF的比较   8.6使用多值依赖的分解   8.6.1多值依赖   8.6.2第四范式   8.6.34NF分解   8.7更多的范式   8.8数据库设计过程   8.8.1E-R模型和规范化   8.8.2属性和联系的命名   8.8.3为了性能去规范化   8.8.4其他设计问题   8.9时态数据建模   8.10总结   术语回顾   实践习题   习题   文献注解  第9章 应用设计和开发   9.1应用程序和用户界面   9.2Web基础   9.2.1统一资源定位符   9.2.2超文本标记语言   9.2.3Web服务器和会话   9.3servlet和JSP   9.3.1一个servlet的例子   9.3.2servlet会话   9.3.3servlet的生命周期   9.3.4servlet支持   9.3.5服务器端脚本   9.3?6客户端脚本   9.4应用架构   9.4.1业务逻辑层   9.4.2数据访问层和对象-关系映射   9.4.3Web服务   9.4.4断连操作   9.5快速应用开发   9.5.1构建用户界面的工具   9.5.2Web应用框架   9.5.3报表生成器   9.6应用程序性能   9.6.1利用缓存减少开销   9.6.2并行处理   9.7应用程序安全性   9.7.1SQL注入   9.7.2跨站点脚本和请求伪造   9.7.3密码泄露   9.7.4应用程序认证   9.7.5应用级授权   9.7.6审计追踪   9.7.7隐私   9.8加密及其应用   9.8.1加密技术   9.8.2数据库中的加密支持   9.8.3加密和认证   9.9总结   术语回顾   实践习题   习题   项目建议   工具   文献注解 第三部分 数据存储和查询  第10章 存储和文件结构   10.1物理存储介质概述   10.2磁盘和快闪存储器   10.2.1磁盘的物理特性   10.2.2磁盘性能的度量   10.2.3磁盘块访问的优化   10.2.4快闪存储   10.3RAID   10.3.1通过冗余提高可靠性   10.3.2通过并行提高性能   10.3.3RAID级别   10.3.4RAID级别的选择   10.3.5硬件问题   10.3.6其他的RAID应用   10.4第三级存储   10.4.1光盘   10.4.2磁带   10.5文件组织   10.5.1定长记录   10.5.2变长记录   10.6文件中记录的组织   10.6.1顺序文件组织   10.6.2多表聚簇文件组织   10.7数据字典存储   10.8数据库缓冲区   10.8.1缓冲区管理器   10.8.2缓冲区替换策略   10.9总结   术语回顾   实践习题   习题   文献注解  第11章 索引与散列   11.1基本概念   11.2顺序索引   11.2.1稠密索引和稀疏索引   11.2.2多级索引   11.2.3索引的更新   11.2.4辅助索引   11.2.5多码上的索引   11.3B+树索引文件   11.3.1B+树的结构   11.3.2B+树的查询   11.3.3B+树的更新   11.3.4不唯一的搜索码   11.3.5B+树更新的复杂性   11.4B+树扩展   11.4.1B+树文件组织   11.4.2辅助索引和记录重定位   11.4.3字符串上的索引   11.4.4B+树索引的批量加载   11.4.5B树索引文件   11.4.6闪存   11.5多码访问   11.5.1使用多个单码索引   11.5.2多码索引   11.5.3覆盖索引   11.6静态散列   11.6.1散列函数   11.6.2桶溢出处理   11.6.3散列索引   11.7动态散列   11.7.1数据结构   11.7.2查询和更新   11.7.3静态散列与动态散列比较   11.8顺序索引和散列的比较   11.9位图索引   11.9.1位图索引结构   11.9.2位图操作的高效实现   11.9.3位图和B+树   11.10SQL中的索引定义   11.11总结   术语回顾   实践习题   习题   文献注解  第12章 查询处理   12.1概述   12.2查询代价的度量   12.3选择运算   12.3.1使用文件扫描和索引的选择   12.3.2涉及比较的选择   12.3.3复杂选择的实现   12.4排序   12.4.1外部排序归并算法   12.4.2外部排序归并的代价分析   12.5连接运算   12.5.1嵌套循环连接   12.5.2块嵌套循环连接   12.5.3索引嵌套循环连接   12.5.4归并连接   12.5.5散列连接   12.6其他运算   12.6.1去除重复   12.6.2投影   12.6.3集合运算   12.6.4外连接   12.6.5聚集   12.7表达式计算   12.7.1物化   12.7.2流水线   12.8总结   术语回顾   实践习题   习题   文献注解  第13章 查询优化   13.1概述   13.2关系表达式的转换   13.2.1等价规则   13.2.2转换的例子   13.2.3连接的次序   13.2.4等价表达式的枚举   13.3表达式结果集统计大小的估计   13.3.1目录信息   13.3.2选择运算结果大小的估计   13.3.3连接运算结果大小的估计   13.3.4其他运算的结果集大小的估计   13.3.5不同取值个数的估计   13.4执行计划选择   13.4.1基于代价的连接顺序选择   13.4.2采用等价规则的基于代价的优化器   13.4.3启发式优化   13.4.4嵌套子查询的优化**   13.5物化视图**   13.5.1视图维护   13.5.2增量的视图维护   13.5.3查询优化和物化视图   13.5.4物化视图和索引选择   13.6查询优化中的高级话题**   13.6.1top-K优化   13.6.2连接极小化   13.6.3更新的优化   13.6.4多查询优化和共享式扫描   13.6.5参数化查询优化   13.7总结   术语回顾   实践习题   习题   文献注解 第四部分 事务管理  第14章 事务   14.1事务概念   14.2一个简单的事务模型   14.3存储结构   14.4事务原子性和持久性   14.5事务隔离性   14.6可串行化   14.7事务隔离性和原子性   14.7.1可恢复调度   14.7.2无级联调度   14.8事务隔离性级别   14.9隔离性级别的实现   14.9.1锁   14.9.2时间戳   14.9.3多版本和快照隔离   14.10事务的SQL语句表示   14.11总结   术语回顾   实践习题   习题   文献注解  第15章 并发控制   15?1基于锁的协议   15?1?1锁   15.1.2锁的授予   15.1.3两阶段封锁协议   15.1.4封锁的实现   15.1.5基于图的协议   15.2死锁处理   15.2.1死锁预防   15.2.2死锁检测与恢复   15.3多粒度   15.4基于时间戳的协议   15.4.1时间戳   15.4.2时间戳排序协议   15.4.3Thomas写规则   15.5基于有效性检查的协议   15.6多版本机制   15.6.1多版本时间戳排序   15.6.2多版本两阶段封锁   15.7快照隔离   15.7.1更新事务的有效性检验步骤   15.7.2串行化问题   15.8插入操作、删除操作与谓词读   15.8.1删除   15.8.2插入   15.8.3谓词读和幻象现象   15.9实践中的弱一致性级别   15.9.1二级一致性   15.9.2游标稳定性   15.9.3跨越用户交互的并发控制   15.10索引结构中的并发**   15.11总结   术语回顾   实践习题   习题   文献注解  第16章 恢复系统   16.1故障分类   16.2存储器   16.2.1稳定存储器的实现   16.2.2数据访问   16.3恢复与原子性   16.3.1日志记录   16.3.2数据库修改   16.3.3并发控制和恢复   16.3.4事务提交   16.3.5使用日志来重做和撤销事务   16.3.6检查点   16.4恢复算法   16.4.1事务回滚   16.4.2系统崩溃后的恢复   16.5缓冲区管理   16.5.1日志记录缓冲   16.5.2数据库缓冲   16.5.3操作系统在缓冲区管理中的作用   16.5.4模糊检查点   16.6非易失性存储器数据丢失的故障   16.7锁的提前释放和逻辑undo操作   16.7.1逻辑操作   16.7.2逻辑undo日志记录   16.7.3有逻辑undo的事务回滚   16.7.4逻辑undo中的并发问题   16.8ARIES**   16.8.1数据结构   16.8.2恢复算法   16.8.3其他特性   16.9远程备份系统   16.10总结   术语回顾   实践习题   习题   文献注解 第五部分 系统体系结构  第17章 数据库系统体系结构   17.1集中式与客户-服务器体系结构   17.1.1集中式系统   17.1.2客户-服务器系统   17.2服务器系统体系结构   17.2.1事务服务器   17.2.2数据服务器   17.2.3基于云的服务器   17.3并行系统   17.3.1加速比和扩展比   17.3.2互连网络   17.3.3并行数据库体系结构   17.4分布式系统   17.4.1分布式数据库示例   17.4.2实现问题   17.5网络类型   17.5.1局域网   17.5.2广域网   17.6总结   术语回顾   实践习题   习题   文献注解  第18章 并行数据库   18. 1引言   18.2I/O并行   18.2.1划分技术   18.2.2划分技术比较   18.2.3偏斜处理   18.3查询间并行   18.4查询内并行   18.5操作内并行   18.5.1并行排序   18.5.2并行连接   18.5.3其他关系运算   18.5.4运算的并行计算代价   18.6操作间并行   18.6.1流水线并行   18.6.2独立并行   18.7查询优化   18.8并行系统设计   18.9多核处理器的并行性   18.9.1并行性与原始速度   18.9.2高速缓冲存储器和多线程   18.9.3适应现代体系架构的数据库系统设计   18.10总结   术语回顾   实践习题   习题   文献注解  第19章 分布式数据库   19.1同构和异构数据库   19.2分布式数据存储   19.2.1数据复制   19.2.2数据分片   19.2.3透明性   19.3分布式事务   19.3.1系统结构   19.3.2系统故障模式   19.4提交协议   19.4.1两阶段提交   19.4.2三阶段提交   19.4.3事务处理的可选择性模型   19.5分布式数据库中的并发控制   19.5.1封锁协议   19.5.2时间戳   19.5.3弱一致性级别的复制   19.5.4死锁处理   19.6可用性   19.6.1基于多数的方法   19.6.2读一个、写所有可用的方法   19.6.3站点重建   19.6.4与远程备份的比较   19.6.5协调器的选择   19.6.6为可用性而牺牲一致性   19.7分布式查询处理   19. 7.1查询转换   19.7.2简单的连接处理   19.7.3半连接策略   19.7.4利用并行性的连接策略   19.8异构分布式数据库   19.8.1数据统一视图   19.8.2查询处理   19.8.3多数据库中的事务管理   19.9基于云的数据库   19.9.1云上的数据存储系统   19.9.2云上的传统数据库   19.9.3基于云的数据库的挑战   19.10目录系统   19.10.1目录访问协议   19.10.2LDAP:轻量级目录访问协议   19.11总结   术语回顾   实践习题   习题   文献注解 第六部分 数据仓库、数据挖掘与信息检索  第20章 数据仓库与数据挖掘   20.1决策支持系统   20.2数据仓库   20.2.1数据仓库成分   20.2.2数据仓库模式   20.2.3面向列的存储   20.3数据挖掘   20.4分类   20.4.1决策树分类器   20.4.2其他类型的分类器   20.4.3回归   20.4.4分类器验证   20.5关联规则   20.6其他类型的关联   20.7聚类   20.8其他类型的数据挖掘   20.9总结   术语回顾   实践习题   习题   工具   文献注解  第21章 信息检索   21.1概述   21.2使用术语的相关性排名   21.2.1使用TF-IDF的排名方法   21.2.2基于相似性的检索   21.3使用超链接的相关性   21.3.1流行度排名   21.3.2PageRank   21.3.3其他的流行度度量   21.3.4搜索引擎作弊   21.3.5将TF-IDF和流行度排名度量方法结合   21.4同义词、多义词和本体   21.5文档的索引   21.6检索的有效性度量   21.7Web的抓取和索引   21.8信息检索:网页排名之外   21.8.1查询结果的多样化   21.8.2信息抽取   21.8.3问答系统   21.8.4查询结构化数据   21.9目录与分类   21.10总结   术语回顾   实践习题   习题   工具   文献注解 第七部分 特种数据库  第22章 基于对象的数据库   22.1概述   22.2复杂数据类型   22.3SQL中的结构类型和继承   22.3.1结构类型   22.3.2类型继承   22.4表继承   22.5SQL中的数组和多重集合类型   22.5.1创建和访问集合体值   2.5.2查询以集合体为值的属性   22.5.3嵌套和解除嵌套   22.6SQL中的对象标识和引用类型   22.7 O-R特性的实现   22.8持久化程序设计语言   22.8.1对象的持久化   22.8.2对象标识和指针   22.8.3持久对象的存储和访问   22.8.4持久化C++系统   22.8.5持久化Java系统   22.9对象-关系映射   22.10面向对象与对象-关系   22.11总结   术语回顾   实践习题   习题   工具   文献注解  第23章 XML   23.1动机   23.2XML数据结构   23.3XML文档模式   23.3.1文档类型定义   23.3.2XML Schema   23.4查询和转换   23.4.1XML树模型   23.4.2XPath   23.4.3XQuery   23.5XML应用程序接口   23.6XML数据存储   23.6.1非关系的数据存储   23.6.2关系数据库   23.6.3SQL/XML   23.7XML应用   23.7.1存储复杂结构数据   23.7.2标准化数据交换格式   23.7.3Web服务   23.7.4数据中介   23.8总结   术语回顾   实践习题   习题   工具   文献注解 第八部分 高级主题  第24章 高级应用开发   24.1性能调整   24.1.1提高面向集合的特性   24.1.2批量加载和更新的调整   24.1.3瓶颈位置   24.1.4可调参数   24.1.5硬件调整   24.1.6模式调整   24.1.7索引调整   24.1.8使用物化视图   24.1.9物理设计的自动调整   24.1.10并发事务调整   24.1.11性能模拟   24.2性能基准程序   24.2.1任务集   24.2.2数据库应用类型   24.2.3TPC基准程序   24.3应用系统开发的其他问题   24.3.1应用系统测试   24.3.2应用系统移植   24.4标准化   24.4.1SQL标准   24.4.2数据库连接标准   24.4.3对象数据库标准   24.4.4基于XML的标准   24.5总结   术语回顾   实践习题   习题   文献注解  第25章 时空数据和移动性   25.1动机   25.2数据库中的时间   25.2.1SQL中的时间规范   25.2.2时态查询语言   25.3空间与地理数据   25.3.1几何信息表示   25.3.2设计数据库   25.3.3地理数据   25.3.4空间查询   25.3.5空间数据的索引   25.4多媒体数据库   25.4.1多媒体数据格式   25.4.2连续媒体数据   25.4.3基于相似性的检索   25.5移动性和个人数据库   25.5.1移动计算模型   25.5.2路由和查询处理   25.5.3广播数据   25.5.4连接断开与一致性   25.6总结   术语回顾   实践习题   习题   文献注解   26章 高级事务处理   26.1事务处理监控器   26.1.1TP监控器体系结构   26.1.2使用TP监控器进行应用协调   26.2事务工作流   26.2.1工作流说明   26.2.2工作流的故障原子性需求   26.2.3工作流执行   26.2.4工作流恢复   26.2.5工作流管理系统   26.3电子商务   26.3.1电子目录   26.3.2市场   26.3.3订单结算   26.4主存数据库   26.5实时事务系统   26.6长事务   26.6.1不可串行化的执行   26.6.2并发控制   26.6.3嵌套事务和多级事务   26.6.4补偿事务   26.6.5实现问题   26.7总结   术语回顾   实践习题   习题   文献注解 第九部分 实例研究  第27章 PostgreSQL   27.1概述   27.2用户界面   27.2.1交互式终端界面   27.2.2图形界面   27.2.3编程语言接口   27.3SQL变化和扩展   27.3.1PostgreSQL类型   27.3.2规则和其他主动数据库特征   27.3.3可扩展性   27.4PostgreSQL中的事务管理   27.4.1PostgreSQL的并发控制   27.4.2恢复   27.5存储和索引   27.5.1表   27.5.2索引   27.6查询处理和优化   27.6.1查询重写   27.6.2查询规划和优化   27.6.3查询执行器   27.6.4触发器和约束   27.7系统结构   文献注解  第28章 Oracle   28.1数据库设计和查询工具   28.1.1数据库和应用设计工具   28.1.2查询工具   28.2SQL的变化和扩展   28.2.1对象-关系特性   28.2.2Oracle XML DB   28.2.3过程化语言   28.2.4维度   28.2.5联机分析处理   28.2.6触发器   28.3存储和索引   28.3.1表空间   28.3.2段   28.3.3表   28.3.4索引   28.3.5位图索引   28.3.6基于函数的索引   28.3.7连接索引   28.3.8域索引   28.3.9划分   28.3.10物化视图   28.4查询处理和优化   28.4.1执行方法   28.4.2优化   28.4.3并行执行   28.4.4结果高速缓存   28.5并发控制与恢复   28.5.1并发控制   28.5.2恢复的基本结构   28.5.3Oracle数据卫士   28.6系统体系结构   28.6.1专用服务器:内存结构   28.6.2专用服务器:进程结构   28.6.3共享服务器   28.6.4Oracle Real Application Clusters   28.6.5自动存储管理器   28.6.6Oracle Exadata   28.7复制、分布以及外部数据   28.7.1复制   28.7.2分布式数据库   28.7.3外部数据源   28.8数据库管理工具   28.8.1Oracle企业管理器   28.8.2自动工作负载存储   28.8.3数据库资源管理   28.9数据挖掘   文献注解  第29章 IBM DB2 Universal Database   29.1概述   29.2数据库设计工具   29.3SQL的变化和扩展   29.3.1XML特性   29.3.2数据类型的支持   29.3.3用户自定义函数和方法   29.3.4大对象   29.3.5索引扩展和约束   29.3.6Web服务   29.3.7其他特性   29.4存储和索引   29.4.1存储体系结构   29.4.2缓冲池   29.4.3表、记录和索引   29.5多维聚簇   29.5.1块索引   29.5.2块映射   29.5.3设计考虑   29.5.4对现有技术的影响   29.6查询处理和优化   29.6.1存取方法   29.6.2连接、聚集和集合运算   29.6.3对复杂SQL处理的支持   29.6.4多处理器查询处理特性   29.6.5查询优化   29.7物化的查询表   29.7.1查询路由到MQT   29.7.2MQT的维护   29.8DB2中的自治特性   29.8.1配置   29.8.2优化   29.9工具和实用程序   29.10并发控制和恢复   29.10.1并发与隔离   29.10.2提交与回滚   29.10.3日志与恢复   29.11系统体系结构   29.12复制、分布和外部数据   29.13商务智能特性   文献注解  第30章 Microsoft SQL Server   30.1管理、设计和查询工具   30.1.1数据库开发和可视化数据库工具   30.1.2数据库查询和调优工具   30.1.3SQL Server Management Studio   30.2SQL变化和扩展   30.2.1数据类型   30.2.2查询语言增强   30.2.3例程   30.2.4带过滤的索引   30.3存储和索引   30.3.1文件组   30.3.2文件组内的空间管理   30.3.3表   30.3.4索引   30.3.5分区   30.3.6在线创建索引   30.3.7扫描和预读   30.3.8压缩   30.4查询处理和优化   30.4.1编译处理概述   30.4.2查询简化   30.4.3重排序和基于代价的优化   30.4.4更新计划   30.4.5优化时的数据分析   30.4.6部分搜索和启发式搜索   30.4.7查询执行   30.5并发与恢复   30.5.1事务   30.5.2封锁   30.5.3恢复和可用性   30.6系统体系结构   30.6.1服务器上的线程池   30.6.2内存管理   30.6.3安全性   30.7数据访问   30.8分布式异构查询处理   30.9复制   30.9.1复制模型   30.9.2复制选项   30.10.NET中的服务器编程   30.10.1.NET基本概念   30.10.2SQL CLR宿主   30.10.3可扩展性协定   30.11XML支持   30.11.1本地存储和组织XML   30.11.2查询和更新XML数据类型   30.11.3XQuery表达式的执行   30.12SQL Server服务代理   30.13商务智能   30.13.1SQL Server集成服务   30.13.2SQL Server分析服务   30.13.3SQL Server报表服务   文献注解 第十部分 附录  附录A详细的大学模式  参考文献 索引 内容介绍 本书是经典的数据库系统教科书《Database System Concepts》的最新修订版,全面介绍数据库系统的各种知识,透彻阐释数据库管理的基本概念。本书内容丰富,不仅讨论了关系数据模型和关系语言、数据库设计过程、关系数据库理论、数据库应用设计和开发、数据存储结构、数据存取技术、查询优化方法、事务处理系统和并发控制、故障恢复技术、数据仓库和数据挖掘,而且对性能调整、性能评测标准、数据库应用测试和标准化、空间和地理数据、时间数据、多媒体数据、移动和个人数据库管理以及事务处理监控器、事务工作流、电子商务、高性能事务系统、实时事务系统和持续长时间的事务等高级应用主题进行了广泛讨论。 本书既可作为高年级本科生或低年级研究生的数据库课程教材,也可供数据库领域的技术人员参考。

2016-10-10

高可用MySQL(第2版)英文原版 MySQL High Availability, 2nd Edition

前言 xxi 第 1章 引言 2 第 2章 MySQLReplicant库 8 第 3章 MySQL复制原理 18 第 4章 二进制日志 45 第 5章 面向高可用性的复制 112 第 6章 面向横向扩展的 MySQL复制 138 第 7章 数据分片 171 第 8章 深入复制 204 第 9章 MySQL集群 263 第 10章 监控入门 300 第 11章 监控 MySQL 339 第 12章 监控存储引擎 403 第 13章 监控复制 432 第 14章 复制的故障排除 454 第 15章 保护你的资产 481 第 16章 MySQL企业版监控 530 第 17章 使用 MySQL实用工具管理 MySQL复制 553 附录A 复制的提示和技巧617 附录B 一个 GTID的实现 634 索引 645

2016-06-21

深入理解计算机系统第二版中文 清晰 带目录

深入理解计算机系统第二版中文 清晰 带目录

2016-04-22

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除