Java性能权威指南+Java性能优化权威指南共2本

Java性能权威指南+Java性能优化权威指南共2本 pdf epub mobi txt 电子书 下载 2025

[美] 奥克斯 著
图书标签:
  • Java
  • 性能优化
  • JVM
  • 内存管理
  • 并发
  • 多线程
  • 调优
  • 代码质量
  • 性能测试
  • 架构设计
想要找书就要到 新城书站
立刻按 ctrl+D收藏本页
你会得到大惊喜!!
店铺: 蓝墨水图书专营店
出版社: 人民邮电出版社
ISBN:9787115413765
商品编码:10206509660
出版时间:2016-03-01

具体描述

Java性能权   威指南+Java性能优化权   威指南共2本

bm007421

9787115342973  9787115413765  

基本信息

  • 作者:   
  • 译者: 
  • 丛书名:
  • 出版社:
  • ISBN:9787115413765
  • 上架时间:2016-3-4
  • 出版日期:2016 年3月
  • 开本:16开
  • 页码:328
  • 版次:1-1
  • 所属分类:
     

编辑推荐

市面上介绍Java的书有很多,但专注于Java性能的并不多,能游刃有余地展示Java性能优化难点的更是凤毛麟角,本书即是其中之一。通过使用JVM和Java平台,以及Java语言和应用程序接口,本书详尽讲解了Java性能调优的相关知识,帮助读者深入理解Java平台性能的各个方面,终使程序如虎添翼。 
通过阅读本书,你可以: 
运用四个基本原则大程度地提升性能测试的效果 
使用JDK中自带的工具收集Java应用的性能数据 
理解JIT编译器的优缺点 
调优JVM垃圾收集器以减少对程序的影响 
学习管理堆内存和JVM原生内存的方法 
了解如何大程度地优化Java线程及同步的性能 
解决Java EE和Java SE应用程序接口的性能问题 
改善Java驱动的数据库应用程序的性能

内容简介



本书对Java 7和Java 8中影响性能的因素展开了全面深入的介绍,讲解传统上影响应用性能的JVM特征,包括即时编译器、垃圾收集、语言特征等。内容包括:用G1垃圾收集器大化应用的吞吐量;使用Java飞行记录器查看性能细节,而不必借助专业的分析工具;堆内存与原生内存佳实践;线程与同步的性能,以及数据库性能佳实践等。 

作译者

Scott Oaks
是Oracle公司的一位架构师,专注研究Oracle中间件软件的性能。加入Oracle之前,他曾于Sun Microsystem公司任职多年,在多个技术领域都有建树,包括SunOS的内核、网络程序设计、Windows系统的远程方法调用(RPC)以及OPEN LOOK虚拟窗口管理器。1996年,Scott成为Sun公司的Java布道师,并于2001年加入Sun公司的Java性能小组--从那时起他就一直专注于Java的性能提升。此外,Scott也在O'Reilly出版社出版了多部书籍,包括Java Security、Java Threads、JXTA in a Nutshell和Jini in a Nutshell。 

目录

推荐序 xi
前言 xii
第1章 导论 1
1.1 概述 2
1.2 平台版本约定 2
1.3 全面的性能调优 4
1.3.1 编写更好的算法 4
1.3.2 编写更少的代码 4
1.3.3 老调重弹的过早优化 5
1.3.4 其他:数据库很可能就是瓶颈 6
1.3.5 常见的优化 7
1.4 小结 8
第2章 性能测试方法 9
2.1 原则1:测试真实应用 9
2.1.1 微基准测试 9
2.1.2 宏基准测试 13
2.1.3 介基准测试 15
2.1.4 代码示例 16
2.2 原则2:理解批处理流逝时间、吞吐量和响应时间 19
2.2.1 批处理流逝时间 19
2.2.2 吞吐量测试 20
2.2.3 响应时间测试 20
2.3 原则3:用统计方法应对性能的变化 23
2.4 原则4:尽早频繁测试 26
2.5 小结 28
第3章 Java性能调优工具箱 29
3.1 操作系统的工具和分析 29
3.1.1 CPU使用率 29
3.1.2 CPU运行队列 32
3.1.3 磁盘使用率 33
3.1.4 网络使用率 34
3.2 Java监控工具 35
3.2.1 基本的VM信息 36
3.2.2 线程信息 39
3.2.3 类信息 39
3.2.4 实时GC分析 39
3.2.5 事后堆转储 39
3.3 性能分析工具 39
3.3.1 采样分析器 40
3.3.2 探查分析器 41
3.3.3 阻塞方法和线程时间线 42
3.3.4 本地分析器 44
3.4 Java任务控制 45
3.4.1 Java飞行记录器 46
3.4.2 开启JFR 52
3.4.3 选择JFR 事件 54
3.5 小结 56
第4章 JIT编译器 58
4.1 JIT编译器:概览 58
4.2 调优入门:选择编译器类型(Client、Server或二者同用) 61
4.2.1 优化启动 62
4.2.2 优化批处理 63
4.2.3 优化长时间运行的应用 64
4.3 Java和JIT编译器版本 64
4.4 编译器中级调优 67
4.4.1 调优代码缓存 67
4.4.2 编译阈值 68
4.4.3 检测编译过程 70
4.5 高级编译器调优 73
4.5.1 编译线程 73
4.5.2 内联 74
4.5.3 逃逸分析 75
4.6 逆优化 76
4.6.1 代码被丢弃 77
4.6.2 逆优化僵尸代码 78
4.7 分层编译级别 79
4.8 小结 80
第5章 垃圾收集入门 81
5.1 垃圾收集概述 81
5.1.1 分代垃圾收集器 83
5.1.2 GC算法 84
5.1.3 选择GC算法 87
5.2 GC调优基础 92
5.2.1 调整堆的大小 92
5.2.2 代空间的调整 95
5.2.3 永   久代和元空间的调整 96
5.2.4 控制并发 97
5.2.5 自适应调整 98
5.3 垃圾回收工具 99
5.4 小结 102
第6章 垃圾收集算法 103
6.1 理解Throughput收集器 103
6.2 理解CMS收集器 109
6.2.1 针对并发模式失效的调优 113
6.2.2 CMS收集器的永  久代调优 116
6.2.3 增量式CMS垃圾收集 117
6.3 理解G1垃圾收集器 118
6.4 高级调优 126
6.4.1 晋升及Survivor空间 126
6.4.2 分配大对象 129
6.4.3 AggressiveHeap标志 136
6.4.4 全盘掌控堆空间的大小 137
6.5 小结 138
第7章 堆内存佳实践 140
7.1 堆分析 140
7.1.1 堆直方图 141
7.1.2 堆转储 142
7.1.3 内存溢出错误 146
7.2 减少内存使用 149
7.2.1 减少对象大小 149
7.2.2 延迟初始化 152
7.2.3 不可变对象和标准化对象 156
7.2.4 字符串的保留 157
7.3 对象生命周期管理 160
7.3.1 对象重用 160
7.3.2 弱引用、软引用与其他引用 165
7.4 小结 175
第8章 原生内存佳实践 176
8.1 内存占用 176
8.1.1 测量内存占用 177
8.1.2 内存占用小化 178
8.1.3 原生NIO缓冲区 178
8.1.4 原生内存跟踪 179
8.2 针对不同操作系统优化JVM 182
8.2.1 大页 182
8.2.2 压缩的oop 185
8.3 小结 187
第9章 线程与同步的性能 188
9.1 线程池与ThreadPoolExecutor 188
9.1.1 设置大线程数 189
9.1.2 设置小线程数 192
9.1.3 线程池任务大小 193
9.1.4 设置ThreadPoolExecutor的大小 193
9.2 ForkJoinPool 195
9.3 线程同步 201
9.3.1 同步的代价 202
9.3.2 避免同步 205
9.3.3 伪共享 208
9.4 JVM线程调优 211
9.4.1 调节线程栈大小 211
9.4.2 偏向锁 212
9.4.3 自旋锁 212
9.4.4 线程优先级 213
9.5 监控线程与锁 213
9.5.1 查看线程 214
9.5.2 查看阻塞线程 214
9.6 小结 217
第10章 Java EE 性能调优 218
10.1 Web容器的基本性能 218
10.2 线程池 222
10.3 EJB会话Bean 223
10.3.1 调优EJB对象池 223
10.3.2 调优EJB缓存 225
10.3.3 本地和远程实例 226
10.4 XML和JSON处理 227
10.4.1 数据大小 227
10.4.2 解析和编组概述 229
10.4.3 选择解析器 230
10.4.4 XML验证 235
10.4.5 文档模型 237
10.4.6 Java对象模型 240
10.5 对象序列化 241
10.5.1 transient字段 241
10.5.2 覆盖默认的序列化 241
10.5.3 压缩序列化数据 244
10.5.4 追踪对象复制 246
10.6 Java EE网络API 248
10.7 小结 250
第11章 数据库性能的佳实践 251
11.1 JDBC 251
11.1.1 JDBC驱动程序 252
11.1.2 预处理语句和语句池 253
11.1.3 JDBC连接池 255
11.1.4 事务 256
11.1.5 结果集的处理 262
11.2 JPA 264
11.2.1 事务处理 264
11.2.2 对JPA的写性能进行优化 267
11.2.3 对JPA的读性能进行优化 268
11.2.4 JPA缓存 271
11.2.5 JPA的只读实体 276
11.3 小结 277
第12章 Java SE API技巧 278
12.1 缓冲式I/O 278
12.2 类加载 280
12.3 随机数 284
12.4 Java原生接口 285
12.5 异常 287
12.6 字符串的性能 290
12.7 日志 291
12.8 Java集合类API 292
12.8.1 同步还是非同步 293
12.8.2 设定集合的大小 294
12.8.3 集合与内存使用效率 295
12.9 AggressiveOpts标志 296
12.9.1 替代实现 296
12.9.2 其他标志 297
12.10 Lambda表达式和匿名类 297
12.11 流和过滤器的性能 300
12.12 小结 302
附录A 性能调优标志摘要 303
作者简介 312
关于封面 312 

内容简介

《Java性能优化权   威指南》是Java应用性能调优的圣经,内容通俗易懂,介绍了大量的监控和测量工具,涉及各种硬件架构和操作系统。涵盖了如何构建实验、解释结果以及如何采取行动等技巧。

媒体评论

“本书是Java性能优化的圣经!如果你是一个细节控,那么这本书正适合你。” 
——James Gosling,Java之父 
“这本书未必是,的Java书,但肯定是具技术深度的。如何测试、分析和优化Java程序的性能是目前Java程序员关心的技能,但要掌握这个技能,必须要有深入到Java虚拟机甚至操作系统层面的知识和实践经验,在这个领域的书籍不多,好书更少,而这本书就能把复杂深奥的问题说得清楚明白,把理论的知识讲得可以实践操作,无愧为Java性能优化领域必读的教材。” 
——周志明,《深入理解Java虚拟机:JVM高级特性与佳实践》作者 
“《Java性能优化权   威指南》是Java应用性能优化的必备参考书。它由Oracle/Sun的性能优化专家编写,系统而详细地讲解了性能优化的各个方面,从底层的操作系统及JVM的原理与监控工具,到性能测试技巧,再到上层应用框架优化。如果有Java性能优化的疑问,请先从本书开始寻找答案,无论新手老手都能从中收益。” 
——莫枢,JVM开发工程师,Azul Systems 
“要对Java程序做性能优化,不仅要对应用的代码实现有足够的了解,还需要对更底层的OS、JVM有较深的了解。这本书介绍了Java程序员也需要掌握的OS、JVM层面的很多知识,更吸引人的是这本书的作者结合自己的经验,为大家总结了一些性能优化的模式,例如CPU利用率高的时候需要怎么进行优化,这些模式让人受益匪浅,相信读过后能对大家日常工作中做性能优化提供不小的帮助。” 
——林昊,阿里巴巴技术专家,http://hellojava.info 
“长期以来,一些人对Java存在一种偏见,认为Java程序存在运行性能低下的缺点。本书由浅入深地介绍了对于Java程序进行性能优化的各种工具和方法,帮助你学习Java虚拟机的基本原理、掌握一些监控Java程序性能的工具,从而快速找到程序中的性能瓶颈,并有效改善程序的运行性能。读过本书,人们将能够消除对Java程序性能的偏见,让Java真正展现出强大魅力。” 
——李凡希,阿里巴巴资深研发工程师 
“性能优化是一门非常实战性的技术,本书正是这样一本非常具有实战指导意义的作品。该书涵盖了Java应用、Web应用、EJB等若干不同场景下的性能分析、监控、优化的佳实践和工具,具有相当的广度,同时该书也绝不是工具和数据的堆砌,书中对很多底层细节有着深入和细致的介绍和分析,比如GC、JIT等JVM的基本原理,都体现了作者的技术深度。通读本书能让你更好地理解Java,并洞察和解决潜在的性能问题。” 
——邹飞,Google资深软件工程师、技术经理 

作者推荐

《Java性能优化权   威指南》由曾任职于Oracle/Sun的性能优化专家编写,系统而详细地讲解了性能优化的各个方面,帮助你学习Java虚拟机的基本原理、掌握一些监控Java程序性能的工具,从而快速找到程序中的性能瓶颈,并有效改善程序的运行性能。 
Java性能优化的任何问题,都可以从本书中找到答案! 

图书目录

第1章 策略、方法和方法论 
1.1 性能问题的现状 
1.2 性能分析的两种方法:自顶向下和自底向上 
1.2.1 自顶向下 
1.2.2 自底向上 
1.3 选择正确的平台并评估系统性能 
1.3.1 选择正确的CPU架构 
1.3.2 评估系统性能 
1.4 参考资料 
第2章 操作系统性能监控 
2.1 定义 
2.2 CPU使用率 
2.2.1 监控CPU使用率:Windows 
2.2.2 监控CPU使用率:Windows typeperf 
2.2.3 监控CPU使用率:Linux 
2.2.4 监控CPU使用率:Solaris 
2.2.5 命令行监控CPU使用率:Linux和Solaris 
2.3 CPU调度程序运行队列 
2.3.1 监控CPU调度程序运行队列:Windows 
2.3.2 监控CPU调度程序运行队列:Solaris 
2.3.3 监控CPU调度程序运行队列:Linux 
2.4 内存使用率 
2.4.1 监控内存利用率:Windows 
2.4.2 监控内存使用率:Solaris 
2.4.3 监控内存使用率:Linux 
2.4.4 监控锁竞争:Solaris 
2.4.5 监控锁竞争:Linux 
2.4.6 监控锁竞争:Windows 
2.4.7 隔离竞争锁 
2.4.8 监控抢占式上下文切换 
2.4.9 监控线程迁移 
2.5 网络I/O使用率 
2.5.1 监控网络I/O使用率:Solaris 
2.5.2 监控网络I/O使用率:Linux 
2.5.3 监控网络I/O使用率:Windows 
2.5.4 应用性能改进的考虑 
2.6 磁盘I/O使用率 
2.7 其他命令行工具 
2.8 监控CPU使用率:SPARC T系列系统 
2.9 参考资料 
第3章 JVM概览 
3.1 HotSpot VM的基本架构 
3.2 HotSpot VM运行时 
3.2.1 命令行选项 
3.2.2 VM生命周期 
3.2.3 VM类加载 
3.2.4 字节码验证 
3.2.5 类数据共享 
3.2.6 解释器 
3.2.7 异常处理 
3.2.8 同步 
3.2.9 线程管理 
3.2.10 C++堆管理 
3.2.11 Java本地接口 
3.2.12 VM致命错误处理 
3.3 HotSpot VM垃圾收集器 
3.3.1 分代垃圾收集 
3.3.2 新生代 
3.3.3 快速内存分配 
3.3.4 垃圾收集器 
3.3.5 Serial收集器 
3.3.6 Parallel收集器:吞吐量为先! 
3.3.7 Mostly-Concurrent收集器:低延迟为先! 
3.3.8 Garbage-First收集器:CMS替代者 
3.3.9 垃圾收集器比较 
3.3.10 应用程序对垃圾收集器的影响 
3.3.11 简单回顾收集器历史 
3.4 HotSpot VM JIT编译器 
3.4.1 类型继承关系分析 
3.4.2 编译策略 
3.4.3 逆优化 
3.4.4 Client JIT编译器概览 
3.4.5 Server JIT编译器概览 
3.4.6 静态单赋值——程序依赖图 
3.4.7 未来增强展望 
3.5 HotSpot VM自适应调优 
3.5.1 Java 1.4.2的默认值 
3.5.2 Java 5自动优化的默认值 
3.5.3 Java 6 Update 18更新后的默认优化值 
3.5.4 自适应Java堆调整 
3.5.5 超   越自动优化 
3.6 参考资料 
第4章 JVM性能监控 
4.1 定义 
4.2 垃圾收集 
4.2.1 重要的垃圾收集数据 
4.2.2 垃圾收集报告 
4.2.3 垃圾收集数据的离线分析 
4.2.4 图形化工具 
4.3 JIT编译器 
4.4 类加载 
4.5 Java应用监控 
4.6 参考资料 
第5章 Java应用性能分析 
5.1 术语 
5.1.1 通用性能分析术语 
5.1.2 Oracle Solaris Studio Performance Analyzer术语 
5.1.3 NetBeans Profiler术语 
5.2 Oracle Solaris Studio Performance Analyzer 
5.2.1 支持平台 
5.2.2 下载/安装Oracle Solaris Studio Performance Analyzer 
5.2.3 使用Oracle Solaris Studio Performance Analyzer 抓取性能数据 
5.2.4 查看性能数据 
5.2.5 数据表示 
5.2.6 过滤性能数据 
5.2.7 命令行工具er_print 
5.3 NetBeans Profiler 
5.3.1 支持平台 
5.3.2 下载安装NetBeans Profiler 
5.3.3 开始方法分析会话 
5.3.4 Controls子面板 
5.3.5 Status子面板 
5.3.6 Profiling Results子面板 
5.3.7 Saved Snapshots子面板 
5.3.8 View子面板 
5.3.9 Basic Telemetry子面板 
5.3.10 查看动态结果 
5.3.11 对结果进行快照 
5.3.12 启动内存分析会话 
5.3.13 查看实时结果 
5.3.14 对结果进行快照 
5.3.15 定位内存泄漏 
5.3.16 分析堆转储 
5.4 参考资料 
第6章 Java应用性能分析技巧 
6.1 性能优化机会 
6.2 系统或内核态CPU使用 
6.3 锁竞争 
6.4 Volatile的使用 
6.5 调整数据结构的大小 
6.5.1 StringBuilder或StringBuffer大小的调整 
6.5.2 Java Collection类大小调整 
6.6 增加并行性 
6.7 过高的CPU使用率 
6.8 其他有用的分析提示 
6.9 参考资料 
第7章 JVM性能调优入门 
7.1 方法 
7.1.1 假设条件 
7.1.2 测试基础设施需求 
7.2 应用程序的系统需求 
7.2.1 可用性 
7.2.2 可管理性 
7.2.3 吞吐量 
7.2.4 延迟及响应性 
7.2.5 内存占用 
7.2.6 启动时间 
7.3 对系统需求分级 
7.4 选择JVM部署模式 
7.4.1 单JVM部署模式 
7.4.2 多JVM部署模式 
7.4.3 通用建议 
7.5 选择JVM运行模式 
7.5.1 Client模式或Server模式 
7.5.2 32位/64位 JVM 
7.5.3 垃圾收集器 
7.6 垃圾收集调优基础 
7.6.1 性能属性 
7.6.2 原则 
7.6.3 命令行选项及GC日志 
7.7 确定内存占用 
7.7.1 约束 
7.7.2 HotSpot VM堆的布局 
7.7.3 堆大小调优着眼点 
7.7.4 计算活跃数据大小 
7.7.5 初始堆空间大小配置 
7.7.6 其他考量因素 
7.8 调优延迟/响应性 
7.8.1 输入 
7.8.2 优化新生代的大小 
7.8.3 优化老年代的大小 
7.8.4 为CMS调优延迟 
7.8.5 Survivor空间介绍 
7.8.6 解析晋升阈值 
7.8.7 监控晋升阈值 
7.8.8 调整Survivor空间的容量 
7.8.9 显式的垃圾收集 
7.8.10 并发永   久代垃圾收集 
7.8.11 调优CMS停顿时间 
7.8.12 下一步 
7.9 应用程序吞吐量调优 
7.9.1 CMS吞吐量调优 
7.9.2 Throughput收集器调优 
7.9.3 Survivor空间调优 
7.9.4 调优并行垃圾收集线程 
7.9.5 在NUMA系统上部署 
7.9.6 下一步 
7.10 极端示例 
7.11 其他性能命令行选项 
7.11.1 实验性(近)优化 
7.11.2 逃逸分析 
7.11.3 偏向锁 
7.11.4 大页面支持 
7.12 参考资料 
第8章 Java应用的基准测试 
8.1 基准测试所面临的挑战 
8.1.1 基准测试的预热阶段 
8.1.2 垃圾收集 
8.1.3 使用Java Time接口 
8.1.4 剔除无效代码 
8.1.5 内联 
8.1.6 逆优化 
8.1.7 创建微基准测试的注意事项 
8.2 实验设计 
8.3 使用统计方法 
8.3.1 计算均值 
8.3.2 计算标准差 
8.3.3 计算置信区间 
8.3.4 使用假设测试 
8.3.5 使用统计方法的注意事项 
8.4 参考文献 
8.5 参考资料 
第9章 多层应用的基准测试 
9.1 基准测试难题 
9.2 企业级应用基准测试的考量 
9.2.1 定义被测系统 
9.2.2 制定微基准测试 
9.2.3 定义用户交互模型 
9.2.4 定义性能指标 
9.2.5 扩展基准测试 
9.2.6 用利特尔法则验证 
9.2.7 思考时间 
9.2.8 扩展性分析 
9.2.9 运行基准测试 
9.3 应用服务器监控 
9.3.1 GlassFish监控 
9.3.2 监控子系统 
9.3.3 Solaris 
9.3.4 Linux 
9.3.5 Windows 
9.3.6 外部系统的性能 
9.3.7 磁盘I/O 
9.3.8 监控和调优资源池 
9.4 企业级应用性能分析 
9.5 参考资料 
第10章 Web应用的性能调优 
10.1 Web应用的基准测试 
10.2 Web容器的组件 
10.2.1 HTTP连接器 
10.2.2 Servlet引擎 
10.3 Web容器的监控和性能调优 
10.3.1 容器的开发和生产模式 
10.3.2 安全管理器 
10.3.3 JVM调优 
10.3.4 HTTP服务和Web容器 
10.3.5 HTTP监听器 
10.4 佳实践 
10.4.1 Servlet和JSP佳实践 
10.4.2 内容缓存 
10.4.3 会话持久化 
10.4.4 HTTP服务器文件缓存 
10.5 参考资料 
第11章 Web Service的性能 
11.1 XML的性能 
11.1.1 XML处理的生命周期 
11.1.2 解析/解编组 
11.1.3 访问 
11.1.4 修改 
11.1.5 序列化/编组 
11.2 验证 
11.3 解析外部实体 
11.4 XML文档的局部处理 
11.5 选择合适的API 
11.6 JAX-WS参考实现栈 
11.7 Web Service基准测试 
11.8 影响Web Service性能的因素 
11.8.1 消息大小的影响 
11.8.2 不同Schema类型的性能特征 
11.8.3 终端服务器的实现 
11.8.4 处理程序的性能 
11.9 佳性能实践 
11.9.1 二进制负载的处理 
11.9.2 处理XML文档 
11.9.3 使用MTOM发送XML文档 
11.9.4 使用Provider接口 
11.9.5 快速信息集 
11.9.6 HTTP压缩 
11.9.7 Web Service客户端的性能 
11.10 参考资料 
第12章 Java持久化及Enterprise Java Bean的性能 
12.1 EJB编程模型 
12.2 Java持久化API及其参考实现 
12.3 监控及调优EJB容器 
12.3.1 线程池 
12.3.2 Bean池和缓存 
12.3.3 EclipseLink会话缓存 
12.4 事务隔离级 
12.5 Enterprise Java Bean的佳实践 
12.5.1 简要说明使用的EJB基准测试 
12.5.2 EJB 2.1 
12.5.3 EJB 3.0 
12.6 Java持久化佳实践 
12.6.1 JPA查询语言中的查询 
12.6.2 查询结果缓存 
12.6.3 FetchType 
12.6.4 连接池 
12.6.5 批量更新 
12.6.6 选择正确的数据库锁策略 
12.6.7 不带事务的读取 
12.6.8 继承 
12.7 参考资料 
附录A 重要的HotSpot VM选项 
附录B 性能分析技巧示例源代码 
B.1 锁竞争实现1 
B.2 锁竞争实现2 
B.3 锁竞争实现3 
B.4 锁竞争实现4 
B.5 锁竞争实现5 
B.6 调整容量变化1 
B.7 调整容量变化2 
B.8 增加并发性的单线程实现 
B.9 增加并发性的多线程实现 


用户评价

评分

评分

评分

评分

评分

评分

评分

评分

评分

相关图书

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 book.cndgn.com All Rights Reserved. 新城书站 版权所有