《Java核心技术 卷I 基础知识 第11版 英文版 上下册》PDF电子书免费下载

作者:  [美]凯·S. 霍斯特曼(Cay S. Horstmann)

出版社: 人民邮电出版社

出版年: 2019年05月

ISBN: 9787115504920

~~滚到底部有网盘下载链接~~

内容简介

目录

Chapter 1: An Introduction to Java Java概述 1
1.1 Java as a Programming Platform Java程序设计平台 1
1.2 The Java“White Paper”Buzzwords Java“白皮书”中的口号 2
1.2.1 Simple 简单 3
1.2.2 Object-Oriented 面向对象 4
1.2.3 Distributed 分布式 4
1.2.4 Robust 健壮 4
1.2.5 Secure 安全 5
1.2.6 Architecture-Neutral 体系结构中立 6
1.2.7 Portable 可移植 6
1.2.8 Interpreted 解释型 7
1.2.9 High-Performance 高性能 7
1.2.10 Multithreaded 多线程 8
1.2.11 Dynamic 动态 8
1.3 Java Applets and the Internet Java Applet与Internet 9
1.4 A Short History of Java Java简史 10
1.5 Common Misconceptions about Java 对Java的常见误解 13

Chapter 2: The Java Programming Environment Java编程环境 17
2.1 Installing the Java Development Kit 安装Java开发包(JDK) 18
2.1.1 Downloading the JDK 下载JDK 18
2.1.2 Setting up the JDK 设置JDK 20
2.1.3 Installing Source Files and Documentation 安装源文件和文档 22
2.2 Using the Command-Line Tools 使用命令行工具 23
2.3 Using an Integrated Development Environment 使用集成开发环境 29
2.4 JShell 32

Chapter 3: Fundamental Programming Structures in Java Java的基本编程结构 37
3.1 A Simple Java Program 一个简单的Java程序 38
3.2 Comments 注释 41
3.3 Data Types 数据类型 42
3.3.1 Integer Types 整型 43
3.3.2 Floating-Point Types 浮点型 44
3.3.3 The char Type char类型 46
3.3.4 Unicode and the char Type Unicode与char类型 47
3.3.5 The boolean Type boolean类型 48
3.4 Variables and Constants 变量和常量 48
3.4.1 Declaring Variables 声明变量 48
3.4.2 Initializing Variables 初始化变量 50
3.4.3 Constants 常量 51
3.4.4 Enumerated Types 枚举类型 52
3.5 Operators 运算符 52
3.5.1 Arithmetic Operators 算术运算符 52
3.5.2 Mathematical Functions and Constants 数学函数和常量 54
3.5.3 Conversions between Numeric Types 数值类型之间的转换 56
3.5.4 Casts 强制类型转换 57
3.5.5 Combining Assignment with Operators 组合赋值运算符 58
3.5.6 Increment and Decrement Operators 自增与自减运算符 58
3.5.7 Relational and boolean Operators 关系与boolean运算符 59
3.5.8 Bitwise Operators 位运算符 60
3.5.9 Parentheses and Operator Hierarchy 括号与运算符优先级 61
3.6 Strings 字符串 62
3.6.1 Substrings 子串 62
3.6.2 Concatenation 拼接 63
3.6.3 Strings Are Immutable String是不可变的 63
3.6.4 Testing Strings for Equality 测试字符串是否相等 65
3.6.5 Empty and Null Strings 空串与null串 66
3.6.6 Code Points and Code Units 码位与编码单元 66
3.6.7 The String API String API 68
3.6.8 Reading the Online API Documentation 阅读在线API文档 71
3.6.9 Building Strings 构建字符串 74
3.7 Input and Output 输入和输出 75
3.7.1 Reading Input 读取输入 75
3.7.2 Formatting Output 格式化输出 78
3.7.3 File Input and Output 文件输入和输出 83
3.8 Control Flow 控制流 86
3.8.1 Block Scope 块作用域 86
3.8.2 Conditional Statements 条件语句 87
3.8.3 Loops 循环 91
3.8.4 Determinate Loops 确定性循环 95
3.8.5 Multiple Selections—The switch Statement 多重选择:switch语句 99
3.8.6 Statements That Break Control Flow 用于跳出控制流的语句 102
3.9 Big Numbers 大数 105
3.10 Arrays 数组 108
3.10.1 Declaring Arrays 声明数组 108
3.10.2 Accessing Array Elements 访问数组元素 109
3.10.3 The “for each” Loop “for each”循环 110
3.10.4 Array Copying 数组复制 111
3.10.5 Command-Line Parameters 命令行参数 112
3.10.6 Array Sorting 数组排序 113
3.10.7 Multidimensional Arrays 多维数组 116
3.10.8 Ragged Arrays 不规则数组 120

Chapter 4: Objects and Classes 对象与类 125
4.1 Introduction to Object-Oriented Programming 面向对象编程简介 126
4.1.1 Classes 类 127
4.1.2 Objects 对象 128
4.1.3 Identifying Classes 识别类 129
4.1.4 Relationships between Classes 类之间的关系 129
4.2 Using Predefined Classes 使用预定义类 131
4.2.1 Objects and Object Variables 对象与对象变量 132
4.2.2 The LocalDate Class of the Java Library Java库中的LocalDate类 135
4.2.3 Mutator and Accessor Methods 更改器方法与访问器方法 138
4.3 Defining Your Own Classes 定义自己的类 141
4.3.1 An Employee Class Employee类 142
4.3.2 Use of Multiple Source Files 使用多个源文件 145
4.3.3 Dissecting the Employee Class 分析Employee类 146
4.3.4 First Steps with Constructors 从构造器开始 146
4.3.5 Declaring Local Variables with var 使用var声明局部变量 148
4.3.6 Working with null References 使用null引用 148
4.3.7 Implicit and Explicit Parameters 隐式参数与显式参数 150
4.3.8 Benefits of Encapsulation 封装的好处 151
4.3.9 Class-Based Access Privileges 基于类的访问权限 154
4.3.10 Private Methods 私有方法 155
4.3.11 Final Instance Fields final实例字段 155
4.4 Static Fields and Methods 静态的字段与方法 156
4.4.1 Static Fields 静态字段 156
4.4.2 Static Constants 静态常量 157
4.4.3 Static Methods 静态方法 158
4.4.4 Factory Methods 工厂方法 159
4.4.5 The main Method main方法 160
4.5 Method Parameters 方法参数 163
4.6 Object Construction 对象构建 170
4.6.1 Overloading 重载 170
4.6.2 Default Field Initialization 默认字段初始化 171
4.6.3 The Constructor with No Arguments 无参构造器 172
4.6.4 Explicit Field Initialization 显式字段初始化 173
4.6.5 Parameter Names 参数名 174
4.6.6 Calling Another Constructor 调用另一个构造器 175
4.6.7 Initialization Blocks 初始化块 175
4.6.8 Object Destruction and the finalize Method 对象析构与finalize方法 180
4.7 Packages 包 180
4.7.1 Package Names 包名 181
4.7.2 Class Importation 导入类 181
4.7.3 Static Imports 静态导入 183
4.7.4 Addition of a Class into a Package 将类添加到某个包中 184
4.7.5 Package Access 包访问权限 187
4.7.6 The Class Path 类路径 189
4.7.7 Setting the Class Path 设置类路径 191
4.8 JAR Files JAR文件 192
4.8.1 Creating JAR files 创建JAR文件 192
4.8.2 The Manifest 清单文件 193
4.8.3 Executable JAR Files 可执行的JAR文件 194
4.8.4 Multi-Release JAR Files 支持多个Java版本的JAR文件 195
4.8.5 A Note about Command-Line Options 关于命令行选项的说明 197
4.9 Documentation Comments 文档注释 198
4.9.1 Comment Insertion 插入注释 199
4.9.2 Class Comments 类注释 199
4.9.3 Method Comments 方法注释 200
4.9.4 Field Comments 字段注释 201
4.9.5 General Comments 通用注释 201
4.9.6 Package Comments 包注释 202
4.9.7 Comment Extraction 提取注释 203
4.10 Class Design Hints 类设计建议 204

Chapter 5: Inheritance 继承 207
5.1 Classes, Superclasses, and Subclasses 类、超类与子类 208
5.1.1 Defining Subclasses 定义子类 208
5.1.2 Overriding Methods 覆盖方法 210
5.1.3 Subclass Constructors 子类构造器 211
5.1.4 Inheritance Hierarchies 继承层次 216
5.1.5 Polymorphism 多态 217
5.1.6 Understanding Method Calls 理解方法调用 218
5.1.7 Preventing Inheritance: Final Classes and Methods 阻止继承:final修饰的类和方法 221
5.1.8 Casting 强制类型转换 223
5.1.9 Abstract Classes 抽象类 225
5.1.10 Protected Access 受保护访问 231
5.2 Object: The Cosmic Superclass Object:所有类的超类 232
5.2.1 Variables of Type Object Object类型的变量 232
5.2.2 The equals Method equals方法 233
5.2.3 Equality Testing and Inheritance 相等测试与继承 234
5.2.4 The hashCode Method hashCode方法 238
5.2.5 The toString Method toString方法 241
5.3 Generic Array Lists 泛型数组列表 248
5.3.1 Declaring Array Lists 声明数组列表 248
5.3.2 Accessing Array List Elements 访问数组列表的元素 251
5.3.3 Compatibility between Typed and Raw Array Lists 类型化和原始数组列表的兼容性 255
5.4 Object Wrappers and Autoboxing 对象包装器与自动装箱 256
5.5 Methods with a Variable Number of Parameters 参数数量可变的方法 260
5.6 Enumeration Classes 枚举类 261
5.7 Reflection 反射 264
5.7.1 The Class Class Class类 264
5.7.2 A Primer on Declaring Exceptions 初步了解如何声明异常 267
5.7.3 Resources 资源 268
5.7.4 Using Reflection to Analyze the Capabilities of Classes 使用反射分析类的能力 271
5.7.5 Using Reflection to Analyze Objects at Runtime 使用反射在运行时分析对象 277
5.7.6 Using Reflection to Write Generic Array Code 使用反射编写泛型数组代码 283
5.7.7 Invoking Arbitrary Methods and Constructors 调用任意方法和构造器 286
5.8 Design Hints for Inheritance 继承的设计建议 290

Chapter 6: Interfaces, Lambda Expressions, and Inner Classes 接口、Lambda表达式和内部类 295
6.1 Interfaces 接口 296
6.1.1 The Interface Concept 接口的概念 296
6.1.2 Properties of Interfaces 接口的特性 303
6.1.3 Interfaces and Abstract Classes 接口与抽象类 305
6.1.4 Static and Private Methods 静态和私有方法 306
6.1.5 Default Methods 默认方法 307
6.1.6 Resolving Default Method Conflicts 解决默认方法的冲突 308
6.1.7 Interfaces and Callbacks 接口与回调 310
6.1.8 The Comparator Interface Comparator接口 313
6.1.9 Object Cloning 对象克隆 314
6.2 Lambda Expressions Lambda表达式 322
6.2.1 Why Lambdas 为什么引入Lambda表达式 322
6.2.2 The Syntax of Lambda Expressions Lambda表达式的语法 323
6.2.3 Functional Interfaces 函数式接口 326
6.2.4 Method References 方法引用 328
6.2.5 Constructor References 构造器引用 332
6.2.6 Variable Scope 变量作用域 333
6.2.7 Processing Lambda Expressions 处理Lambda表达式 335
6.2.8 More about Comparators 再谈Comparator 339
6.3 Inner Classes 内部类 340
6.3.1 Use of an Inner Class to Access Object State 使用内部类访问对象状态 341
6.3.2 Special Syntax Rules for Inner Classes 内部类的特殊语法规则 345
6.3.3 Are Inner Classes Useful Actually Necessary Secure 内部类是否有用、必要和安全 346
6.3.4 Local Inner Classes 局部内部类 349
6.3.5 Accessing Variables from Outer Methods 从外部方法访问变量 350
6.3.6 Anonymous Inner Classes 匿名内部类 352
6.3.7 Static Inner Classes 静态内部类 356
6.4 Service Loaders 服务加载器 360
6.5 Proxies 代理 362
6.5.1 When to Use Proxies 何时使用代理 363
6.5.2 Creating Proxy Objects 创建代理对象 363
6.5.3 Properties of Proxy Classes 代理类的特性 368

Chapter 7: Exceptions, Assertions, and Logging 异常、断言与日志 371
7.1 Dealing with Errors 处理错误 372
7.1.1 The Classification of Exceptions 异常分类 373
7.1.2 Declaring Checked Exceptions 声明检查型异常 375
7.1.3 How to Throw an Exception 如何抛出异常 378
7.1.4 Creating Exception Classes 创建异常类 380
7.2 Catching Exceptions 捕获异常 381
7.2.1 Catching an Exception 捕获一个异常 381
7.2.2 Catching Multiple Exceptions 捕获多个异常 383
7.2.3 Rethrowing and Chaining Exceptions 再次抛出异常与异常链 384
7.2.4 The finally Clause finally子句 386
7.2.5 The try-with-Resources Statement try-with-resources语句 389
7.2.6 Analyzing Stack Trace Elements 分析栈轨迹元素 391
7.3 Tips for Using Exceptions 异常使用技巧 396
7.4 Using Assertions 使用断言 399
7.4.1 The Assertion Concept 断言的概念 399
7.4.2 Assertion Enabling and Disabling 启用和禁用断言 400
7.4.3 Using Assertions for Parameter Checking 使用断言检查参数 401
7.4.4 Using Assertions for Documenting Assumptions 使用断言保证文档中假定成立的条件 402
7.5 Logging 日志 403
7.5.1 Basic Logging 基本日志 404
7.5.2 Advanced Logging 高级日志 405
7.5.3 Changing the Log Manager Configuration 修改日志管理器配置 407
7.5.4 Localization 本地化 409
7.5.5 Handlers 处理器 410
7.5.6 Filters 过滤器 414
7.5.7 Formatters 格式化器 415
7.5.8 A Logging Recipe 常见日志操作总结 415
7.6 Debugging Tips 调试技巧 425

Chapter 8: Generic Programming 泛型编程 431
8.1 Why Generic Programming 为什么要使用泛型编程 432
8.1.1 The Advantage of Type Parameters 类型参数的好处 432
8.1.2 Who Wants to Be a Generic Programmer 哪些人想成为泛型程序员 433
8.2 Defining a Simple Generic Class 定义简单的泛型类 434
8.3 Generic Methods 泛型方法 437
8.4 Bounds for Type Variables 类型变量的绑定 438
8.5 Generic Code and the Virtual Machine 泛型代码与虚拟机 441
8.5.1 Type Erasure 类型擦除 441
8.5.2 Translating Generic Expressions 翻译泛型表达式 442
8.5.3 Translating Generic Methods 翻译泛型方法 443
8.5.4 Calling Legacy Code 调用遗留代码 445
8.6 Restrictions and Limitations 约束与局限性 447
8.6.1 Type Parameters Cannot Be Instantiated with Primitive Types 类型参数不能用基本类型来实例化 447
8.6.2 Runtime Type Inquiry Only Works with Raw Types 运行时类型查询只适用于原始类型 447
8.6.3 You Cannot Create Arrays of Parameterized Types 不能创建参数化类型的数组 448
8.6.4 Varargs Warnings 注意变长参数情况 448
8.6.5 You Cannot Instantiate Type Variables 不能实例化类型变量 450
8.6.6 You Cannot Construct a Generic Array 不能构造泛型数组 451
8.6.7 Type Variables Are Not Valid in Static Contexts of Generic Classes 类型变量在泛型类的静态上下文中无效 452
8.6.8 You Cannot Throw or Catch Instances of a Generic Class 不能抛出或捕获泛型类的实例 453
8.6.9 You Can Defeat Checked Exception Checking 可以打破“检查型异常必须检查”的规则 454
8.6.10 Beware of Clashes after Erasure 意类型擦除后的冲突 455
8.7 Inheritance Rules for Generic Types 泛型类型的继承规则 457
8.8 Wildcard Types 通配符类型 459
8.8.1 The Wildcard Concept 通配符的概念 459
8.8.2 Supertype Bounds for Wildcards 通配符的超类型限定 461
8.8.3 Unbounded Wildcards 无限定通配符 464
8.8.4 Wildcard Capture 通配符捕获 465
8.9 Reflection and Generics 反射与泛型 467
8.9.1 The Generic Class Class 泛型的Class类 467
8.9.2 Using Class Parameters for Type Matching 使用Class参数进行类型匹配 469
8.9.3 Generic Type Information in the Virtual Machine 虚拟机中的泛型类型信息 469
8.9.4 Type Literals TypeLiteral 473

Chapter 9: Collections 集合类 481
9.1 The Java Collections Framework Java集合类框架 482
9.1.1 Separating Collection Interfaces and Implementation 将集合类的接口与实现分离 482
9.1.2 The Collection Interface Collection接口 485
9.1.3 Iterators 迭代器 485
9.1.4 Generic Utility Methods 泛型的实用方法 489
9.2 Interfaces in the Collections Framework 集合类框架中的接口 492
9.3 Concrete Collections 具体的集合类 494
9.3.1 Linked Lists 链表 496
9.3.2 Array Lists 数组列表 507
9.3.3 Hash Sets 散列集 507
9.3.4 Tree Sets 树形集 511
9.3.5 Queues and Deques 队列与双端队列 516
9.3.6 Priority Queues 优先级队列 518
9.4 Maps 映射 519
9.4.1 Basic Map Operations 基本映射操作 519
9.4.2 Updating Map Entries 更新映射表项 523
9.4.3 Map Views 映射视图 525
9.4.4 Weak Hash Maps 弱散列映射 526
9.4.5 Linked Hash Sets and Maps LinkedHashSet与LinkedHashMap 527
9.4.6 Enumeration Sets and Maps EnumSet与EnumMap 529
9.4.7 Identity Hash Maps IdentityHashMap 530
9.5 Views and Wrappers 视图与包装器 532
9.5.1 Small Collections 小型集合 532
9.5.2 Subranges 子范围 534
9.5.3 Unmodifiable Views 不可修改视图 535
9.5.4 Synchronized Views 同步视图 536
9.5.5 Checked Views 检查用视图 536
9.5.6 A Note on Optional Operations 可选操作说明 537
9.6 Algorithms 算法 541
9.6.1 Why Generic Algorithms 为什么要使用泛型算法 541
9.6.2 Sorting and Shuffling 排序与混排 543
9.6.3 Binary Search 二分查找 546
9.6.4 Simple Algorithms 简单算法 547
9.6.5 Bulk Operations 主要操作 549
9.6.6 Converting between Collections and Arrays 集合与数组之间的转换 550
9.6.7 Writing Your Own Algorithms 编写自己的算法 551
9.7 Legacy Collections 遗留的集合类 552
9.7.1 The Hashtable Class Hashtable类 553
9.7.2 Enumerations Enumeration 553
9.7.3 Property Maps 属性映射 555
9.7.4 Stacks 栈 558
9.7.5 Bit Sets 位集 559

Chapter 10: Graphical User Interface Programming 图形用户界面编程 565
10.1 A History of Java User Interface Toolkits Java用户界面工具包的历史 565
10.2 Displaying Frames 显示框架 567
10.2.1 Creating a Frame 创建框架 568
10.2.2 Frame Properties 框架属性 570
10.3 Displaying Information in a Component 在组件中显示信息 574
10.3.1 Working with 2D Shapes 处理2D图形 579
10.3.2 Using Color 使用颜色 587
10.3.3 Using Fonts 使用字体 589
10.3.4 Displaying Images 显示图片 597
10.4 Event Handling 事件处理 598
10.4.1 Basic Event Handling Concepts 事件处理的基本概念 598
10.4.2 Example: Handling a Button Click 示例:处理按钮点击事件 600
10.4.3 Specifying Listeners Concisely 设置监听器的简洁方法 604
10.4.4 Adapter Classes 适配器类 605
10.4.5 Actions 动作 608
10.4.6 Mouse Events 鼠标事件 614
10.4.7 The AWT Event Hierarchy AWT事件层次 620
10.5 The Preferences API Preferences API 624

Chapter 11: User Interface Components with Swing Swing用户界面组件 631
11.1 Swing and the Model-View-Controller Design Pattern Swing与模型-视图-控制器设计模式 632
11.2 Introduction to Layout Management 布局管理简介 636
11.2.1 Layout Managers 布局管理器 637
11.2.2 Border Layout 边框布局 639
11.2.3 Grid Layout 网格布局 642
11.3 Text Input 文本输入 643
11.3.1 Text Fields 文本框 643
11.3.2 Labels and Labeling Components 标签与标签组件 645
11.3.3 Password Fields 密码框 647
11.3.4 Text Areas 文本区域 647
11.3.5 Scroll Panes 滚动窗格 648
11.4 Choice Components 选择组件 651
11.4.1 Checkboxes 复选框 651
11.4.2 Radio Buttons 单选按钮 654
11.4.3 Borders 边框 658
11.4.4 Combo Boxes 组合框 661
11.4.5 Sliders 滑动条 665
11.5 Menus 菜单 671
11.5.1 Menu Building 菜单构建 672
11.5.2 Icons in Menu Items 菜单项中的图标 675
11.5.3 Checkbox and Radio Button Menu Items 复选框和单选按钮菜单项 676
11.5.4 Pop-Up Menus 弹出菜单 677
11.5.5 Keyboard Mnemonics and Accelerators 键盘助记符与快捷键 679
11.5.6 Enabling and Disabling Menu Items 启用和禁用菜单项 682
11.5.7 Toolbars 工具栏 687
11.5.8 Tooltips 工具提示 689
11.6 Sophisticated Layout Management 复杂的布局管理 690
11.6.1 The Grid Bag Layout 网格袋布局 691
11.6.2 Custom Layout Managers 定制布局管理器 702
11.7 Dialog Boxes 对话框 706
11.7.1 Option Dialogs 选项对话框 707
11.7.2 Creating Dialogs 创建对话框 712
11.7.3 Data Exchange 数据交换 716
11.7.4 File Dialogs 文件对话框 723

Chapter 12: Concurrency 并发 733
12.1 What Are Threads 什么是线程 734
12.2 Thread States 线程状态 739
12.2.1 New Threads 新创建线程 740
12.2.2 Runnable Threads 可运行线程 740
12.2.3 Blocked and Waiting Threads 被阻塞线程与等待线程 741
12.2.4 Terminated Threads 被终止的线程 742
12.3 Thread Properties 线程属性 743
12.3.1 Interrupting Threads 中断线程 743
12.3.2 Daemon Threads 守护线程 746
12.3.3 Thread Names 线程名 747
12.3.4 Handlers for Uncaught Exceptions 未捕获异常的处理器 747
12.3.5 Thread Priorities 线程优先级 749
12.4 Synchronization 同步 750
12.4.1 An Example of a Race Condition 竞争条件的一个案例 750
12.4.2 The Race Condition Explained 竞争条件详解 752
12.4.3 Lock Objects 锁对象 755
12.4.4 Condition Objects 条件对象 758
12.4.5 The synchronized Keyword synchronized关键字 764
12.4.6 Synchronized Blocks 同步块 768
12.4.7 The Monitor Concept 监视器概念 770
12.4.8 Volatile Fields volatile字段 771
12.4.9 Final Variables final变量 772
12.4.10 Atomics 原子 773
12.4.11 Deadlocks 死锁 775
12.4.12 Thread-Local Variables 线程局部变量 778
12.4.13 Why the stop and suspend Methods Are Deprecated 为什么弃用stop和suspend方法 779
12.5 Thread-Safe Collections 线程安全的集合 781
12.5.1 Blocking Queues 阻塞队列 781
12.5.2 Efficient Maps, Sets, and Queues 高效的映射、集和队列 789
12.5.3 Atomic Update of Map Entries 映射表项的原子更新 790
12.5.4 Bulk Operations on Concurrent Hash Maps 并发散列映射上的主要操作 794
12.5.5 Concurrent Set Views 并发的集视图 796
12.5.6 Copy on Write Arrays 写时复制的数组 797
12.5.7 Parallel Array Algorithms 并行数组算法 797
12.5.8 Older Thread-Safe Collections 较早的线程安全的集合 799
12.6 Tasks and Thread Pools 任务和线程池 800
12.6.1 Callables and Futures Callable与Future 800
12.6.2 Executors 执行器 802
12.6.3 Controlling Groups of Tasks 控制任务组 806
12.6.4 The Fork-Join Framework Fork-Join框架 811
12.7 Asynchronous Computations 异步计算 814
12.7.1 Completable Futures CompletableFuture 815
12.7.2 Composing Completable Futures 组合CompletableFuture 817
12.7.3 Long-Running Tasks in User Interface Callbacks 用户界面回调中的长期运行任务 823
12.8 Processes 进程 831
12.8.1 Building a Process 构建进程 832
12.8.2 Running a Process 运行进程 834
12.8.3 Process Handles 进程handle 835

Appendix 附录 839

显示部分信息

下载价格:免费
立即下载
登入/注册
知识就是力量
没有账号? 忘记密码?