深入理解Java7

深入理解Java7 pdf epub mobi txt 电子书 下载 2026

出版者:机械工业出版社
作者:成富
出品人:
页数:450
译者:
出版时间:2012-5
价格:79.00元
装帧:平装
isbn号码:9787111380399
丛书系列:
图书标签:
  • Java
  • 深入理解Java7
  • java7
  • java
  • 编程
  • 计算机
  • 程序员书库
  • jvm
  • Java
  • 编程
  • 基础
  • 深入
  • 学习
  • 语法
  • 开发
  • 面向对象
  • 集合
  • 并发
想要找书就要到 图书目录大全
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

具体描述

《深入理解Java 7:核心技术与最佳实践》的主要内容可分为三大部分:第一部分是1-6章,全面阐释Java 7在语法、JVM、类库和API等方面的所有重要新功能和新特性,掌握这部分内容有助于大幅度提升编码效率和提高代码质量;第二部分是7-13章,对JVM、Java源代码和字节代码操作、类加载器、对象生命周期、多线程、并发编程、泛型、安全等Java平台的核心技术进行了深入解析,掌握这部分内容有助于深入理解Java的底层原理;第三部分为第14章,是对Java8的展望,简要介绍了Java 8中将要增加的新特性。

海报:

《深入理解Java 7》之外的编程世界:构建现代软件的基石 导言:超越单一版本的局限 在软件开发的广阔图景中,Java语言无疑占据了核心地位。然而,技术栈的演进速度要求开发者不仅要精通某一特定版本的特性,更需要建立起对底层原理、并发机制、以及与周边技术生态系统深度融合的全面认知。《深入理解Java 7》专注于特定时期Java虚拟机(JVM)和语言特性的剖析,这为我们理解Java的演进历程打下了坚实的基础。但若要构建面向未来、高性能、高可靠性的现代应用,我们需要将视野投向更广阔的领域。 本书并非对Java 7的回顾,而是旨在填补一个至关重要的空白:如何将深厚的Java基础知识,迁移并应用于当前主流的、更复杂的工程实践中,特别是在那些Java 7时代尚未成熟或尚未出现的关键领域。 我们将聚焦于那些驱动现代分布式系统、微服务架构以及高效能计算的必备技能,这些技能是构建下一代企业级应用不可或缺的要素。 --- 第一部分:现代并发模型与性能调优的进阶 Java 7时代的并发包(`java.util.concurrent`)已臻成熟,但随着多核处理器成为标配,以及对极致低延迟的要求,我们必须深入到更底层的同步机制和更高级的并发范式。 1. 深入JVM和操作系统交互的底层机制 我们不会停留在`synchronized`和`Lock`的使用层面。本部分将深入探讨内存模型(JMM)在Java 8及之后版本中的演进,以及它如何与现代CPU缓存一致性协议(如MESI、MOESI)交互。理解`volatile`的真正含义,以及如何在无锁编程中利用CAS(Compare-And-Swap)操作实现更高吞吐量的并发数据结构。 此外,我们将详细分析内存屏障(Memory Barriers)的类型及其对指令重排的影响。对于性能敏感的应用,理解操作系统级别的线程调度、上下文切换的成本,以及如何通过线程局部存储(ThreadLocal)的陷阱与优化,来规避不必要的同步开销,是至关重要的技能。 2. 非阻塞与响应式编程范式 Java 7的并发主要基于阻塞模型。现代高并发系统越来越倾向于非阻塞和事件驱动的架构。本章将超越Java原生的并发工具,聚焦于: 反应堆(Reactor)模式与Netty:如何构建基于事件循环(Event Loop)的高性能I/O框架,实现高吞吐量的网络服务。我们将分析其核心组件——`Selector`的运作机制,以及它如何高效地管理成千上万的并发连接,这是微服务网关和消息中间件的基础。 函数式编程对并发的影响(引入Lambda/Stream后的演进):虽然Java 8引入了Lambda,但我们将探讨如何利用这些特性编写更安全、更易于推理的并发代码,避免副作用,并有效利用并行流(Parallel Streams)的底层Fork/Join框架的定制化。 --- 第二部分:构建分布式系统的核心技术 单体应用已无法满足现代业务的弹性需求。将应用拆分成可独立部署的服务,并确保它们之间的可靠通信,是当前软件工程的重中之重。 3. 分布式事务与数据一致性挑战 Java 7时代,分布式事务通常依赖于笨重的两阶段提交(2PC)。如今,我们更推崇最终一致性和补偿机制。本章将详细剖析: Saga 模式:如何设计长事务的流程,以及在业务层面实现回滚和补偿操作。 TCC (Try-Confirm-Cancel) 框架的应用与实现思路,理解其在微服务边界上保证业务数据一致性的艺术。 CAP 定理在实践中的权衡:如何在可用性(Availability)和一致性(Consistency)之间做出工程决策,并分析主流数据库和中间件(如Kafka、Redis)在不同模式下的表现。 4. 服务间通信与弹性设计 从传统RPC到现代的HTTP/2和gRPC,通信协议的选择直接影响了系统的性能和维护性。 gRPC与Protocol Buffers:深入理解Protocol Buffers如何实现高效、跨语言的数据序列化,以及gRPC如何利用HTTP/2的多路复用和头部压缩,提供比REST更优的内部服务调用性能。 服务熔断、限流与重试策略:探讨Hystrix(或其继任者如Resilience4j)背后的设计哲学。如何量化系统负载,设置合理的熔断阈值,并在服务降级时仍能提供优雅的用户体验。 --- 第三部分:现代Java生态系统与工具链 Java 7的发布标志着Maven 3.x时代的成熟,但随后的构建工具和模块化机制极大地改变了依赖管理和项目结构。 5. 模块化编程与依赖管理的新纪元 Java 9引入的Java Platform Module System (JPMS),彻底改变了JDK的结构和应用打包方式。本部分将详尽介绍: Module-Info.java 的编写、`requires`、`exports`和`opens`的语义。 如何将遗留的JAR项目迁移到模块化结构,并管理模块间的依赖关系,实现更严格的封装。 多版本共存:在复杂的遗留系统中,如何利用JPMS更好地隔离和管理不同版本的库依赖,避免“DLL地狱”的Java版本。 6. 现代日志、可观测性与监控(Tracing & Metrics) 在分布式环境中,传统的日志文件分析已不堪重负。我们必须转向现代的可观测性(Observability)实践。 结构化日志:从简单的文本输出转向JSON格式,便于ELK(Elasticsearch, Logstash, Kibana)或Loki等工具进行高效索引和查询。 分布式追踪(Distributed Tracing):深入理解OpenTracing/OpenTelemetry规范,学习如何通过Span和Trace ID,在成百上千的服务调用链中准确定位延迟瓶颈和错误源头。 指标(Metrics)收集:使用Micrometer等统一接口,将应用运行数据(如JVM健康指标、业务请求延迟)输出到Prometheus等时间序列数据库,并配合Grafana进行可视化仪表盘的构建。 --- 总结:从“会用”到“精通工程”的跨越 本书假定读者已经对Java 7及其之前的语言特性有扎实的理解。我们的目标是提供一条清晰的路径,将这种基础知识转化为解决现代软件工程中遇到的可伸缩性、弹性、可观测性等核心挑战的实战能力。理解这些Java 7之外的、贯穿现代软件架构的通用技术和范式,才是确保开发者在快速变化的技术浪潮中保持竞争力的关键。 (总字数预估:约1550字)

作者简介

成富 资深Java软件工程师,有多年Java企业级应用开发经验,对Java 7和Java平台的各项技术的底层原理有深入透彻的研究。曾就职于IBM中国研发中心,先后在IBM新技术学院和Lotus部门参与了多个重要产品的开发工作,现就职于新西兰PropellerHead公司。他是非常受欢迎的技术作家,在IBM developerWorks上发表中英文技术文章近30篇,获得了其颁发的“极具人气作者奖”;他还是知名技术网站InfoQ的专栏作家,撰写了“Java深度历险”专栏,共发表技术文章10余篇。此外,他还非常精通HTML 5、CSS 3、JavaScript等Web 2.0核心技术,实战经验丰富。

目录信息

前言
Java的挑战与展望
第1章 Java 7语法新特性
1.1 Coin项目介绍
1.2 在switch语句中使用字符串
1.2.1 基本用法
1.2.2 实现原理
1.2.3 枚举类型
1.3 数值字面量的改进
1.3.1 二进制整数字面量
1.3.2 在数值字面量中使用下划线
1.4 优化的异常处理
1.4.1 异常的基础知识
1.4.2 创建自己的异常
1.4.3 处理异常
1.4.4 Java 7的异常处理新特性
1.5 try-with-resources语句
1.6 优化变长参数的方法调用
1.7 小结
第2章 Java语言的动态性
2.1 脚本语言支持API
2.1.1 脚本引擎
2.1.2 语言绑定
2.1.3 脚本执行上下文
2.1.4 脚本的编译
2.1.5 方法调用
2.1.6 使用案例
2.2 反射API
2.2.1 获取构造方法
2.2.2 获取域
2.2.3 获取方法
2.2.4 操作数组
2.2.5 访问权限与异常处理
2.3 动态代理
2.3.1 基本使用方式
2.3.2 使用案例
2.4 动态语言支持
2.4.1 Java语言与Java虚拟机
2.4.2 方法句柄
2.4.3 invokedynamic指令
2.5 小结
第3章 Java IO
3.1 流
3.1.1 基本输入流
3.1.2 基本输出流
3.1.3 输入流的复用
3.1.4 过滤输入输出流
3.1.5 其他输入输出流
3.1.6 字符流
3.2 缓冲区
3.2.1 基本用法
3.2.2 字节缓冲区
3.2.3 缓冲区视图
3.3 通道
3.3.1 文件通道
3.3.2 套接字通道
3.4 NIO.2
3.4.1 文件系统访问
3.4.2 zipjar文件系统
3.4.3 异步IO通道
3.4.4 套接字通道绑定与配置
3.4.5 IP组播通道
3.5 使用案例
3.6 小结
第4章 国际化与本地化
4.1 国际化概述
4.2 Unicode
4.2.1 Unicode编码格式
4.2.2 其他字符集
4.2.3 Java与Unicode
4.3 Java中的编码实践
4.3.1 Java NIO中的编码器和解码器
4.3.2 乱码问题详解
4.4 区域设置
4.4.1 IETF BCP 47
4.4.2 资源包
4.4.3 日期和时间
4.4.4 数字和货币
4.4.5 消息文本
4.4.6 默认区域设置的类别
4.4.7 字符串比较
4.5 国际化与本地化基本实践
4.6 小结
第5章 图形用户界面
5.1 Java图形用户界面概述
5.2 AWT
5.2.1 重要组件类
5.2.2 任意形状的窗口
5.2.3 半透明窗口
5.2.4 组件混合
5.3 Swing
5.3.1 重要组件类
5.3.2 JLayer组件和LayerUI类
5.4 事件处理与线程安全性
5.4.1 事件处理
5.4.2 事件分发线程
5.4.3 SwingWorker类
5.4.4 SecondaryLoop接口
5.5 界面绘制
5.5.1 AWT中的界面绘制
5.5.2 Swing中的绘制
5.6 可插拔式外观样式
5.7 JavaFX
5.7.1 场景图
5.7.2 变换
5.7.3 动画效果
5.7.4 FXML
5.7.5 CSS外观描述
5.7.6 Web引擎与网页显示
5.8 使用案例
5.9 小结
第6章 Java 7其他重要更新
6.1 关系数据库访问
6.1.1 使用try-with-resources语句
6.1.2 数据库查询的默认模式
6.1.3 数据库连接超时时间与终止
6.1.4 语句自动关闭
6.1.5 RowSet实现提供者
6.2 java.lang包的更新
6.2.1 基本类型的包装类
6.2.2 进程使用
6.2.3 Thread类的更新
6.3 Java实用工具类
6.3.1 对象操作
6.3.2 正则表达式
6.3.3 压缩文件处理
6.4 JavaBeans组件
6.4.1 获取组件信息
6.4.2 执行语句和表达式
6.4.3 持久化
6.5 小结
第7章 Java虚拟机
7.1 虚拟机基本概念
7.2 内存管理
7.3 引用类型
7.3.1 强引用
7.3.2 引用类型基本概念
7.3.3 软引用
7.3.4 弱引用
7.3.5 幽灵引用
7.3.6 引用队列
7.4 Java本地接口
7.4.1 JNI基本用法
7.4.2 Java程序中集成CC++代码
7.4.3 在CC++程序中启动Java虚拟机
7.5 HotSpot虚拟机
7.5.1 字节代码执行
7.5.2 垃圾回收
7.5.3 启动参数
7.5.4 分析工具
7.5.5 Java虚拟机工具接口
7.6 小结
第8章 Java源代码和字节代码操作
8.1 Java字节代码格式
8.1.1 基本格式
8.1.2 常量池的结构
8.1.3 属性
8.2 动态编译Java源代码
8.2.1 使用javac工具
8.2.2 Java编译器API
8.2.3 使用Eclipse JDT编译器
8.3 字节代码增强
8.3.1 使用ASM
8.3.2 增强代理
8.4 注解
8.4.1 注解类型
8.4.2 创建注解类型
8.4.3 使用注解类型
8.4.4 处理注解
8.5 使用案例
8.6 小结
第9章 Java类加载器
9.1 类加载器概述
9.2 类加载器的层次结构与代理模式
9.3 创建类加载器
9.4 类加载器的隔离作用
9.5 线程上下文类加载器
9.6 Class.forName方法
9.7 加载资源
9.8 Web应用中的类加载器
9.9 OSGi中的类加载器
9.9.1 OSGi基本的类加载器机制
9.9.2 Equinox框架的类加载实现机制
9.9.3 Equinox框架嵌入到Web容器中
9.10 小结
第10章 对象生命周期
10.1 Java类的链接
10.2 Java类的初始化
10.3 对象的创建与初始化
10.4 对象终止
10.5 对象复制
10.6 对象序列化
10.6.1 默认的对象序列化
10.6.2 自定义对象序列化
10.6.3 对象替换
10.6.4 版本更新
10.6.5 安全性
10.6.6 使用Externalizable接口
10.7 小结
第11章 多线程与并发编程实践
11.1 多线程
11.1.1 可见性
11.1.2 Java内存模型
11.1.3 volatile关键词
11.1.4 final关键词
11.1.5 原子操作
11.2 基本线程同步方式
11.2.1 synchronized关键词
11.2.2 Object类的wait、notify和notifyAll方法
11.3 使用Thread类
11.3.1 线程状态
11.3.2 线程中断
11.3.3 线程等待、睡眠和让步
11.4 非阻塞方式
11.5 高级实用工具
11.5.1 高级同步机制
11.5.2 底层同步器
11.5.3 高级同步对象
11.5.4 数据结构
11.5.5 任务执行
11.6 Java SE 7新特性
11.6.1 轻量级任务执行框架forkjoin
11.6.2 多阶段线程同步工具
11.7 ThreadLocal类
11.8 小结
第12章 Java泛型
12.1 泛型基本概念
12.2 类型擦除
12.3 上界和下界
12.4 通配符
12.5 泛型与数组
12.6 类型系统
12.7 覆写与重载
12.7.1 覆写对方法类型签名的要求
12.7.2 覆写对返回值类型的要求
12.7.3 覆写对异常声明的要求
12.7.4 重载
12.8 类型推断和<>操作符
12.9 泛型与反射API
12.10 使用案例
12.11 小结
第13章 Java安全
13.1 Java安全概述
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 守卫对象
113.4 加密与解密、报文摘要和数字签名
13.4.1 Java密码框架
13.4.2 加密与解密
13.4.3 报文摘要
13.4.4 数字签名
13.5 安全套接字连接
13.5.1 SSL协议
13.5.2 HTTPS
13.6 使用案例
13.7 小结
第14章 超越Java 7
14.1 lambda表达式
14.1.1 函数式接口
14.1.2 lambda表达式的语法
14.1.3 目标类型
14.1.4 词法作用域
14.1.5 方法引用
14.1.6 接口的默认方法
14.2 Java平台模块化
14.3 Java SE 8的其他更新
14.4 小结
附录A OpenJDK
附录B Java简史 4483.4 加密与解密、报文摘要和数字签名
13.4.1 Java密码框架
13.4.2 加密与解密
13.4.3 报文摘要
13.4.4 数字签名
13.5 安全套接字连接
13.5.1 SSL协议
13.5.2 HTTPS
13.6 使用案例
13.7 小结
第14章 超越Java 7
14.1 lambda表达式
14.1.1 函数式接口
14.1.2 lambda表达式的语法
14.1.3 目标类型
14.1.4 词法作用域
14.1.5 方法引用
14.1.6 接口的默认方法
14.2 Java平台模块化
14.3 Java SE 8的其他更新
14.4 小结
附录A OpenJDK
附录B Java简史
· · · · · · (收起)

读后感

评分

1. 现在回头看会发现Java7这个版本其实并没有一个很大的亮点出现,所以这本书给人感觉就是缺乏重点,而且有些内容说实话并不能算是核心技术或者说常用的技术,比如国际化、图形界面和安全; 2. 另外感觉作者列的篇幅有些大,涉及的内容有些多,这样就没有突出具体的主题以及深...

评分

1. 现在回头看会发现Java7这个版本其实并没有一个很大的亮点出现,所以这本书给人感觉就是缺乏重点,而且有些内容说实话并不能算是核心技术或者说常用的技术,比如国际化、图形界面和安全; 2. 另外感觉作者列的篇幅有些大,涉及的内容有些多,这样就没有突出具体的主题以及深...

评分

1. 现在回头看会发现Java7这个版本其实并没有一个很大的亮点出现,所以这本书给人感觉就是缺乏重点,而且有些内容说实话并不能算是核心技术或者说常用的技术,比如国际化、图形界面和安全; 2. 另外感觉作者列的篇幅有些大,涉及的内容有些多,这样就没有突出具体的主题以及深...

评分

1. 现在回头看会发现Java7这个版本其实并没有一个很大的亮点出现,所以这本书给人感觉就是缺乏重点,而且有些内容说实话并不能算是核心技术或者说常用的技术,比如国际化、图形界面和安全; 2. 另外感觉作者列的篇幅有些大,涉及的内容有些多,这样就没有突出具体的主题以及深...

评分

1. 现在回头看会发现Java7这个版本其实并没有一个很大的亮点出现,所以这本书给人感觉就是缺乏重点,而且有些内容说实话并不能算是核心技术或者说常用的技术,比如国际化、图形界面和安全; 2. 另外感觉作者列的篇幅有些大,涉及的内容有些多,这样就没有突出具体的主题以及深...

用户评价

评分

我发现这本书的一个显著优点是,它成功地在“理论深度”和“工程实践”之间找到了一个绝佳的平衡点。很多理论书籍读起来让人觉得空中楼阁,但这本书的每一章理论讲解之后,往往都会紧跟着一小节或者一个贯穿始终的案例分析,展示这些理论在实际应用中是如何体现价值的。比如,关于反射(Reflection)机制的性能开销讨论,书中不仅指出了其慢在哪里(主要是通过查找方法表),还提到了Java 7后期为了优化反射性能所做的努力,比如`MethodHandle`的引入背景和基本用法。这使得我们作为应用开发者,能够明确地知道,在追求极致性能的场景下,应该如何规避某些语言特性带来的隐性损耗。这种“知其然,更知其所以然,并知道如何优化”的知识链条,是这本书最实用的地方。它不只是帮你写出能跑的代码,更是帮你写出能高效运行、稳定可靠的代码。

评分

坦白讲,我曾经尝试过阅读一些国外的经典技术手册,那些内容虽然权威,但翻译过来后总有一种生硬和隔阂感,很多微妙的上下文语境丢失了。而这本针对Java 7的深入解读,明显带有作者对本土开发生态的深刻理解和定制化的关怀。它对很多国内开发者在实际工作中遇到的特定场景问题,比如特定Web容器下的类加载冲突,或者特定JDK版本中的JVM Bug,都有着更贴切的讨论视角。我个人对它关于JVM内存布局中对象头(Object Header)的细致描述印象极其深刻,包括Mark Word如何存储GC年龄、锁信息等,分析得细致入微,结合了32位和64位JVM的差异。这种对细节的执着,对于那些需要进行性能调优和内存分析的资深工程师来说,简直是如获至宝。它不是一本速成手册,而是一本值得反复研读、每次都会有新发现的工具书和参考指南。

评分

这套书简直是为我这种对Java虚拟机底层机制好奇已久的开发者量身定做的。我记得我当时翻开它的第一页,就被作者那种抽丝剥茧的叙事方式深深吸引住了。它不像市面上很多教材那样干巴巴地堆砌API和语法,而是真正带你走进了Java运行时世界的“心脏”。比如,书中对垃圾回收器(GC)的剖析,简直是教科书级别的细致。它没有停留在“知道有分代回收”的层面,而是详细阐述了新生代、老年代、Survivor区的晋升机制,以及不同GC算法(如CMS、G1的早期设计思路)是如何权衡吞吐量与延迟的。阅读过程中,我仿佛手里拿着一把精密的手术刀,正在解剖一个复杂的生物体,每一个细节都清晰可见。尤其是一些JVM参数的调优案例,它不是简单地告诉你“把这个值设大点”,而是基于对内存模型和对象生命周期的深刻理解,告诉你为什么这么设会有效,以及在什么场景下可能导致新的问题。对于想从“会用Java”跨越到“精通Java运行原理”的工程师来说,这种深度解读是无价的宝藏。读完后,再去看线上服务的GC日志,那些曾经令人困惑的停顿时间,突然就变得有迹可循了。

评分

这本书的阅读体验非常流畅,虽然它探讨的主题是偏底层的虚拟机和语言规范,但作者的文笔却带着一种老派技术专家的沉稳与洞察力。它不是那种强行灌输知识的风格,更像是一位经验丰富的导师,耐心地引导你探索每一个技术点。例如,在讲解类加载机制时,它不仅限于“加载、验证、准备、解析、初始化”这五个步骤,而是深入剖析了双亲委派模型(Parent Delegation Model)的必要性,以及在OSGi等模块化框架下,这个模型是如何被打破和重构的。这种对“为什么是这样设计”的追问,远比“它是什么”的描述更有价值。我尤其欣赏作者在解释复杂概念时,总是能找到一个恰到好处的比喻或类比,使得原本枯燥的字节码校验和符号解析过程变得生动起来。对于初次接触JVM源码层面的读者来说,这本书的引导性极强,它为后续深入研究JVM源码打下了一个极其坚实和全面的基础。

评分

说实话,我买过不少关于并发编程的书籍,但大多聚焦于`synchronized`、`Lock`这些高层抽象。而这本书,则勇敢地扎进了J.U.C包背后的那位“幕后英雄”——`Unsafe`类,以及它与内存屏障的那些爱恨情仇。作者对`volatile`语义的解释,清晰得让我有种醍醐灌顶的感觉,不再是模棱两可的“保证可见性”,而是结合了JMM(Java内存模型)的happens-before原则,用非常直观的图示展示了写屏障和读屏障是如何协同工作的。更让我惊喜的是,它还涉及了Java 7引入的一些新特性,例如对字符串(String)的某些底层优化,以及对并发集合类内部结构的变化解读。这种对语言版本迭代中“微小但关键”变动的关注,体现了作者极高的专业素养和对知识更新的执着。读这本书,就像是获得了一份内部装修图纸,让你在构建自己的高并发应用时,能够做到心中有数,避免那些只可意会不可言传的隐藏陷阱。

评分

Java7本来就没多少新东西,这本书介绍了一堆Java7之前的特性,没啥可看的

评分

知识点罗列得比较多,内容算是比较丰富,讲Unicode那一部分不错。但是和国内许多技术书籍一样,需要讲透的地方说不清楚,很多以用一幅图可以把问题说明白的地方,啰啰嗦嗦讲了一大堆。另外语言文字怎么像手册一样,味同嚼蜡。

评分

因为Java 7并没有很大的改进,这本书更多介绍了Java 的很多基础知识,所以涉及的东西比较多,需要自己在此基础上整理和继续深入学习。

评分

3星觉得低,4星又觉得有点高,可惜没有3.5星,大而全,觉得比较乱,对虚拟机及并发更多了一些了解,Java7的一些新特性以及泛型收获最大,其他的估计要不了多久就忘了;感觉还是要实践,否则这些看过了要不了多久就还给书了

评分

挺深入的。。。

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

© 2026 book.wenda123.org All Rights Reserved. 图书目录大全 版权所有