编辑推荐
?Java领域具有影响力和价值的著作之一
?曾获Jolt生产效率大奖的Java经典图书新版
?Java平台的权V指南,全面体现JavaSE8的新变化
长期以来,对希望为真是应用编写健壮的Java代码的有经验的程序员而言,《Java核心技术》一直被认为是领先且严谨的教程与参考资料。为了反映万众瞩目、带来很多创新的JavaSE8,《Java核心技术卷II:高级特性(第10版)》做了大量更新。书中的素材经过了重写或重新组织,以说明Java用于企业和桌面开发的强大的新特性、习惯用法和实践。数百个编程示例也做了更新,全部悉心设计,便于读者理解和实际应用。
《Java核心技术 卷II 高级特性(第10版 英文版)(上下册)》为希望解决现实问题的严谨的程序员而编写,作者CayHorstmann希望帮助读者深入理解当今之Java语言和库。《Java核心技术 卷II 高级特性(第10版 英文版)(上下册)》是两卷本《Java核心技术》的第二卷,这一卷深入介绍了新的流API、日期/时间/日历库、高级Swing、安全、代码处理等高级主题。
对于想学习JavaSE8的有经验的程序员,《Java核心技术 卷II 高级特性(第10版 英文版)(上下册)》是通往开发者信任20多年的Java平台的可靠、实用且完备的指南。
通过《Java核心技术 卷II 高级特性(第10版 英文版)(上下册)》读者将学到:
●使用新的流库更灵活、更高效地处理集合;
●高效地访问文件和目录,读写二进制或文本数据,以及序列化对象;
●使用JavaSE8的正则表达式包;
●在Java中充分利用XML:解析、验证、XPath、文档生成和XSL等;
●高效地将Java程序连接到网络服务;
●使用JDBC4.2进行数据库编程;
●借助新的java.timeAPI优雅地克服日期/时间编程的复杂性;
●利用本地化日期/时间、数值、文本和GUI编写国际化程序;
●使用脚本API、编译器API和注解处理器处理代码;
●通过类加载器、字节码验证、安全管理器、权限、用户认证、数字签名、代码签名和加密增强安全性;
●掌握列表、表格、树、文本和进度指示器等高级Swing组件;
●使用Java2DAPI生成高质量图形;
●使用JNI本地方法利用其他语言编写的代码。
内容简介
《Java核心技术 卷II 高级特性(第10版 英文版)(上下册)》是经典图书《Java核心技术卷II:高级特性》的新版。这一版针对JavaSE8平台进行了全面更新,以反映JavaSE8的特性。
书中全面覆盖Java技术的高级主题,包括JavaSE8流库,输入与输出,XML,网络,数据库编程,日期与时间API,国际化,脚本、编译与注解处理,安全,高级Swing,高级AWT,以及本地方法等内容。《Java核心技术 卷II 高级特性(第10版 英文版)(上下册)》对Java技术的阐述精que到位,叙述方式深入浅出,并包含大量程序示例,让读者充分理解Java语言以及Java类库的相关高级特性。
作者简介
CayS.Horstmann是CoreJava?fortheImpatient(2015)、JavaSE8fortheReallyImpatient(2014)和ScalafortheImpatient(2012)等图书的作者。他还有很多写给职业程序员和计算机专业学生的专著。他是圣何塞州立大学的计算机科学教授,还是一名JavaChampion。目录
目录
Chapter1:TheJavaSE8StreamLibrary/JavaSE8流库 1
1.1 FromIteratingtoStreamOperations/从迭代到流操作 2
1.2 StreamCreation/创建流 5
1.3 Thefilter,map,andflatMapMethods/filter、map和flatMap方法 9
1.4 ExtractingSubstreamsandConcatenatingStreams/提取子流和连接流 10
1.5 OtherStreamTransformations/其他流变换 11
1.6 SimpleReductions/简单规约 12
1.7 TheOptionalType/Optional类型 13
1.7.1 HowtoWorkwithOptionalValues/如何使用Optional值 14
1.7.2 HowNottoWorkwithOptionalValues/不使用Optional值会有什么问题 15
1.7.3 CreatingOptionalValues/创建Optional值 16
1.7.4 ComposingOptionalValueFunctionswithflatMap/使用flatMap组合Optional值函数 16
1.8 CollectingResults/收集结果 19
1.9 CollectingintoMaps/收集到Map中 24
1.10 GroupingandPartitioning/分组与分区 28
1.11 DownstreamCollectors/下游的收集器 29
1.12 ReductionOperations/规约操作 33
1.13 PrimitiveTypeStreams/基本类型的流 36
1.14 ParallelStreams/并行流 41
Chapter2:InputandOutput/输入与输出 47
2.1 Input/OutputStreams/输入/输出流 48
2.1.1 ReadingandWritingBytes/读写字节 48
2.1.2 TheCompleteStreamZoo/流谱系概览 51
2.1.3 CombiningInput/OutputStreamFilters/组合输入/输出流过滤器 55
2.2 TextInputandOutput/文本输入与输出 60
2.2.1 HowtoWriteTextOutput/输出文本 60
2.2.2 HowtoReadTextInput/输入文本 62
2.2.3 SavingObjectsinTextFormat/以文本格式保存对象 63
2.2.4 CharacterEncodings/字符编码 67
2.3 ReadingandWritingBinaryData/读写二进制数据 69
2.3.1 TheDataInputandDataOutputinterfaces/DataInput和DataOutput接口 69
2.3.2 Random-AccessFiles/随机访问文件 72
2.3.3 ZIPArchives/ZIP文档 77
2.4 ObjectInput/OutputStreamsandSerialization/对象输入/输出流与序列化 80
2.4.1 SavingandLoadingSerializableObjects/序列化对象的保存与加载 80
2.4.2 UnderstandingtheObjectSerializationFileFormat/理解对象序列化文件格式 85
2.4.3 ModifyingtheDefaultSerializationMechanism/修改默认的序列化机制 92
2.4.4 SerializingSingletonsandTypesafeEnumerations/序列化单例和类型安全的枚举 94
2.4.5 Versioning/版本管理 95
2.4.6 UsingSerializationforCloning/将序列化用于克隆 98
2.5 WorkingwithFiles/处理文件 100
2.5.1 Paths/路径 101
2.5.2 ReadingandWritingFiles/读写文件 104
2.5.3 CreatingFilesandDirectories/创建文件与目录 105
2.5.4 Copying,Moving,andDeletingFiles/复制、移动和删除文件 106
2.5.5 GettingFileInformation/获取文件信息 108
2.5.6 VisitingDirectoryEntries/访问目录条目 110
2.5.7 UsingDirectoryStreams/使用目录流 111
2.5.8 ZIPFileSystems/ZIP文件系统 115
2.6 Memory-MappedFiles/内存映射文件 116
2.6.1 Memory-MappedFilePerformance/内存映射文件的性能 116
2.6.2 TheBufferDataStructure/缓冲区数据结构 124
2.6.3 FileLocking/文件锁 126
2.7 RegularExpressions/正则表达式 128
Chapter3:XML 143
3.1 IntroducingXML/XML简介 144
3.1.1 TheStructureofanXMLDocument/XML文档的结构 146
3.2 ParsinganXMLDocument/解析XML文档 149
3.3 ValidatingXMLDocuments/验证XML文档 162
3.3.1 DocumentTypeDefinitions/文档类型定义 163
3.3.2 XMLSchema/XML模式 172
3.3.3 APracticalExample/实用示例 175
3.4 LocatingInformationwithXPath/使用XPath定位信息 190
3.5 UsingNamespaces/使用命名空间 196
3.6 StreamingParsers/流解析器 199
3.6.1 UsingtheSAXParser/使用SAX解析器 199
3.6.2 UsingtheStAXParser/使用StAX解析器 205
3.7 GeneratingXMLDocuments/生成XML文档 208
3.7.1 DocumentswithoutNamespaces/不带命名空间的文档 209
3.7.2 DocumentswithNamespaces/带命名空间的文档 209
3.7.3 WritingDocuments/写文档 210
3.7.4 AnExample:GeneratinganSVGFile/示例:生成SVG文件 211
3.7.5 WritinganXMLDocumentwithStAX/使用StAX写XML文档 214
3.8 XSLTransformations/XSL转换 222
Chapter4:Networking/网络 233
4.1 ConnectingtoaServer/连接到服务器 233
4.1.1 UsingTelnet/使用Telnet 233
4.1.2 ConnectingtoaServerwithJava/使用Java连接到服务器 236
4.1.3 SocketTimeouts/套接字超时 238
4.1.4 InternetAddresses/因特网地址 239
4.2 ImplementingServers/实现服务器 241
4.2.1 ServerSockets/服务器套接字 242
4.2.2 ServingMultipleClients/为多个客户端服务 245
4.2.3 Half-Close/半关闭 249
4.3 InterruptibleSockets/可中断套接字 250
4.4 GettingWebData/获取Web数据 257
4.4.1 URLsandURIs/URL和URI 257
4.4.2 UsingaURLConnectiontoRetrieveInformation/使用URLConnection获取信息 259
4.4.3 PostingFormData/提交表单数据 267
4.5 SendingE-Mail/发送电子邮件 277
Chapter5:DatabaseProgramming/数据库编程 281
5.1 TheDesignofJDBC/JDBC的设计 282
5.1.1 JDBCDriverTypes/JDBC驱动程序分类 283
5.1.2 TypicalUsesofJDBC/JDBC的典型用法 284
5.2 TheStructuredQueryLanguage/结构化查询语言 285
5.3 JDBCConfiguration/JDBC配置 291
5.3.1 DatabaseURLs/数据库URL 292
5.3.2 DriverJARFiles/驱动程序JAR文件 292
5.3.3 StartingtheDatabase/启动数据库 293
5.3.4 RegisteringtheDriverClass/注册驱动程序类 294
5.3.5 ConnectingtotheDatabase/连接到数据库 294
5.4 WorkingwithJDBCStatements/使用JDBC语句 297
5.4.1 ExecutingSQLStatements/执行SQL语句 298
5.4.2 ManagingConnections,Statements,andResultSets/管理连接、语句和结果集 301
5.4.3 AnalyzingSQLExceptions/分析SQL异常 302
5.4.4 PopulatingaDatabase/填充数据库 305
5.5 QueryExecution/执行查询 309
5.5.1 PreparedStatements/预备语句 309
5.5.2 ReadingandWritingLOBs/读写LOB 316
5.5.3 SQLEscapes/SQL转义 318
5.5.4 MultipleResults/多结果集 319
5.5.5 RetrievingAutogeneratedKeys/获取自动生成的主键 320
5.6 ScrollableandUpdatableResultSets/可滚动和可更新的结果集 321
5.6.1 ScrollableResultSets/可滚动的结果集 321
5.6.2 UpdatableResultSets/可更新的结果集 324
5.7 RowSets/行集 328
5.7.1 ConstructingRowSets/构建行集 329
5.7.2 CachedRowSets/缓存的行集 329
5.8 Metadata/元数据 333
5.9 Transactions/事务 344
5.9.1 ProgrammingTransactionswithJDBC/使用JDBC编程实现事务 344
5.9.2 SavePoints/保存点 345
5.9.3 BatchUpdates/批量更新 345
5.10 AdvancedSQLTypes/高级SQL类型 347
5.11 ConnectionManagementinWebandEnterpriseApplications/Web与企业应用中的连接管理 349
Chapter6:TheDateandTimeAPI/日期与时间API 351
6.1 TheTimeLine/时间线 352
6.2 LocalDates/本地日期 355
6.3 DateAdjusters/日期调整 358
6.4 LocalTime/本地时间 360
6.5 ZonedTime/时区时间 361
6.6 FormattingandParsing/格式化与解析 365
6.7 InteroperatingwithLegacyCode/与遗留代码互操作 369
Chapter7:Internationalization/国际化 371
7.1 Locales/地域 372
7.2 NumberFormats/数字格式 378
7.3 Currencies/货币 384
7.4 DateandTime/日期与时间 385
7.5 CollationandNormalization/排序规则与标准化 393
7.6 MessageFormatting/消息格式化 400
7.6.1 FormattingNumbersandDates/格式化数字和日期 400
7.6.2 ChoiceFormats/choice格式化选项 402
7.7 TextInputandOutput/文本输入与输出 404
7.7.1 TextFiles/文本文件 405
7.7.2 LineEndings/文本行结尾符号 405
7.7.3 TheConsole/控制台 405
7.7.4 LogFiles/日志文件 406
7.7.5 TheUTF-8ByteOrderMark/UTF-8字节顺序标记 406
7.7.6 CharacterEncodingofSourceFiles/源文件的字符编码 407
7.8 ResourceBundles/资源包 408
7.8.1 LocatingResourceBundles/定位资源包 409
7.8.2 PropertyFiles/属性文件 410
7.8.3 BundleClasses/包类 411
7.9 ACompleteExample/完整示例 413
Chapter8:Scripting,Compiling,andAnnotationProcessing/脚本、编译与注解处理 429
8.1 ScriptingfortheJavaPlatform/Java平台的脚本 430
8.1.1 GettingaScriptingEngine/获得脚本引擎 430
8.1.2 ScriptEvaluationandBindings/脚本求值与绑定 431
8.1.3 RedirectingInputandOutput/重定向输入与输出 434
8.1.4 CallingScriptingFunctionsandMethods/调用脚本函数和方法 435
8.1.5 CompilingaScript/编译脚本 437
8.1.6 AnExample:ScriptingGUIEvents/示例:用脚本处理GUI事件 437
8.2 TheCompilerAPI/编译器API 443
8.2.1 CompilingtheEasyWay/编译的简单使用方法 443
8.2.2 UsingCompilationTasks/使用编译任务 443
8.2.3 AnExample:DynamicJavaCodeGeneration/示例:动态Java代码生成 449
8.3 UsingAnnotations/使用注解 455
8.3.1 AnIntroductionintoAnnotations/注解简介 455
8.3.2 AnExample:AnnotatingEventHandlers示例:注解事件处理程序 457
8.4 AnnotationSyntax/注解语法 462
8.4.1 AnnotationInterfaces/注解接口 462
8.4.2 Annotations/注解 464
8.4.3 AnnotatingDeclarations/在声明的地方使用注解 466
8.4.4 AnnotatingTypeUses/在类型使用的地方使用注解 467
8.4.5 Annotating this/对this做注解 468
8.5 StandardAnnotations/标准注解 470
8.5.1 AnnotationsforCompilation/用于编译的注解 471
8.5.2 AnnotationsforManagingResources/用于管理资源的注解 472
8.5.3 Meta-Annotations/元注解 472
8.6 Source-LevelAnnotationProcessing/源码级注解处理 475
8.6.1 AnnotationProcessors/注解处理器 476
8.6.2 TheLanguageModelAPI/语言模型API 476
8.6.3 UsingAnnotationstoGenerateSourceCode/使用注解生成源代码 477
8.7 BytecodeEngineering/字节码引擎 481
8.7.1 ModifyingClassFiles/修改类文件 481
8.7.2 ModifyingBytecodesatLoadTime/在加载时修改字节码 486
Chapter9:Security/安全 491
9.1 ClassLoaders/类加载器 492
9.1.1 TheClassLoadingProcess/类加载流程 492
9.1.2 TheClassLoaderHierarchy/类加载器层次结构 494
9.1.3 UsingClassLoadersasNamespaces/将类加载器作为命名空间 496
9.1.4 WritingYourOwnClassLoader/编写自己的类加载器 497
9.1.5 BytecodeVerification/字节码验证 504
9.2 SecurityManagersandPermissions/安全管理器与权限 509
9.2.1 PermissionChecking/权限检查 509
9.2.2 JavaPlatformSecurity/Java平台安全 510
9.2.3 SecurityPolicyFiles/安全策略文件 514
9.2.4 CustomPermissions/定制权限 522
9.2.5 ImplementationofaPermissionClass/实现权限类 524
9.3 UserAuthentication/用户认证 530
9.3.1 TheJAASFramework/JAAS框架 531
9.3.2 JAASLoginModules/JAAS登录模块 537
9.4 DigitalSignatures/数字签名 546
9.4.1 MessageDigests/消息摘要 547
9.4.2 MessageSigning/消息签名 550
9.4.3 VerifyingaSignature/验证签名 553
9.4.4 TheAuthenticationProblem/认证问题 556
9.4.5 CertificateSigning/证书签名 558
9.4.6 CertificateRequests/证书请求 560
9.4.7 CodeSigning/代码签名 561
9.5 Encryption/加密 567
9.5.1 SymmetricCiphers/对称密码 567
9.5.2 KeyGeneration/生成密钥 569
9.5.3 CipherStreams/加密流 574
9.5.4 PublicKeyCiphers/公钥密码 575
Chapter10:AdvancedSwing/高级Swing 581
10.1 Lists/列表 582
10.1.1 TheJListComponent/JList组件 582
10.1.2 ListModels/列表模式 588
10.1.3 InsertingandRemovingValues/插入和移除值 593
10.1.4 RenderingValues/值的绘制 595
10.2 Tables/表 599
10.2.1 ASimpleTable/简单表 600
10.2.2 TableModels/表模式 604
10.2.3 WorkingwithRowsandColumns/行列操作 608
10.2.3.1 ColumnClasses/列类 609
10.2.3.2 AccessingTableColumns/访问表列 610
10.2.3.3 ResizingColumns/调整列 611
10.2.3.4 ResizingRows/调整行 612
10.2.3.5 SelectingRows,Columns,andCells/选择行、列和单元格 612
10.2.3.6 SortingRows/对行进行排序 614
10.2.3.7 FilteringRows/对行进行过滤 615
10.2.3.8 HidingandDisplayingColumns/隐藏或显示列 617
10.2.4 CellRenderingandEditing/单元格的绘制与编辑 626
10.2.4.1 RenderingCells/绘制单元格 626
10.2.4.2 RenderingtheHeader/绘制表头 627
10.2.4.3 EditingCells/编辑单元格 628
10.2.4.4 CustomEditors/定制编辑器 629
10.3 Trees/树 639
10.3.1 SimpleTrees/简单的树 640
10.3.2 EditingTreesandTreePaths/编辑树和树路径 650
10.3.3 NodeEnumeration/节点枚举 659
10.3.4 RenderingNodes/渲染节点 661
10.3.5 ListeningtoTreeEvents/监听树事件 664
10.3.6 CustomTreeModels/定制树模型 671
10.4 TextComponents/文本组件 681
10.4.1 ChangeTrackinginTextComponents/跟踪文本组件的内容修改 682
10.4.2 FormattedInputFields/将输入的信息格式化 685
10.4.2.1 IntegerInput/整型输入 686
10.4.2.2 BehavioronLossofFocus/丢失焦点时行为 687
10.4.2.3 Filters/过滤器 688
10.4.2.4 Verifiers/验证器 690
10.4.2.5 OtherStandardFormatters/其他标准的格式化器 691
10.4.2.6 CustomFormatters/定制格式化器 693
10.4.3 TheJSpinnerComponent/JSpinner组件 703
10.4.4 DisplayingHTMLwiththeJEditorPane/使用JEditorPane显示HTML 712
10.5 ProgressIndicators/进度指示器 719
10.5.1 ProgressBars/进度条 719
10.5.2 ProgressMonitors/进度监视器 722
10.5.3 MonitoringtheProgressofInputStreams/监视输入流的进度 726
10.6 ComponentOrganizersandDecorators/组件组织器和装饰器 731
10.6.1 SplitPanes/分割面板 732
10.6.2 TabbedPanes/选项卡面板 735
10.6.3 DesktopPanesandInternalFrames/桌面面板与内部框体 741
10.6.3.1 DisplayingInternalFrames/显示内部框体 741
10.6.3.2 CascadingandTiling/级联与平铺 744
10.6.3.3 VetoingPropertySettings/否决属性设置 748
10.6.3.4 DialogsinInternalFrames/内部框体中的对话框 750
10.6.3.5 OutlineDragging/拖曳概述 751
10.6.4 Layers/层次 760
Chapter11:AdvancedAWT/高级AWT 765
11.1 TheRenderingPipeline/绘制图形的流程 766
11.2 Shapes/形状 769
11.2.1 TheShapeClassHierarchy/Shape类层次结构 769
11.2.2 UsingtheShapeClasses/使用各种Shape类 772
11.3 Areas/区域 786
11.4 Strokes/画笔 788
11.5 Paint/着色 797
11.6 CoordinateTransformations/坐标变换 799
11.7 Clipping/剪切 805
11.8 TransparencyandComposition/透明与组合 807
11.9 RenderingHints/绘图提示 817
11.10 ReadersandWritersforImages/图像的读者类和写者类 823
11.10.1 ObtainingReadersandWritersforImageFileTypes/获得图像文件类型的读者类和写者类 824
11.10.2 ReadingandWritingFileswithMultipleImages/多图文件的读写 825
11.11 ImageManipulation/图像处理 834
11.11.1 ConstructingRasterImages/构建光栅图像 835
11.11.2 FilteringImages/图像过滤 842
11.12 Printing/打印 851
11.12.1 GraphicsPrinting/图形打印 852
11.12.2 Multiple-PagePrinting/打印多页文件 862
11.12.3 PrintPreview/打印预览 864
11.12.4 PrintServices/打印服务 874
11.12.5 StreamPrintServices/流打印服务 878
11.12.6 PrintingAttributes/打印属性 879
11.13 TheClipboard/剪贴板 887
11.13.1 ClassesandInterfacesforDataTransfer/用于数据传输的类和接口 888
11.13.2 TransferringText/传输文本 888
11.13.3 TheTransferableInterfaceandDataFlavors/Transferable接口和数据的类型 892
11.13.4 BuildinganImageTransferable/构建可传输的图像 894
11.13.5 TransferringJavaObjectsviatheSystemClipboard/通过系统剪贴板传输Java对象 898
11.13.6 UsingaLocalClipboardtoTransferObjectReferences/使用本地剪贴板传输对象引用 902
11.14 DragandDrop/拖放 903
11.14.1 DataTransferSupportinSwing/Swing对数据传输的支持 904
11.14.2 DragSources/拖曳源 909
11.14.3 DropTargets/放置目标 912
11.15 PlatformIntegration/平台集成 921
11.15.1 SplashScreens/闪屏 921
11.15.2 LaunchingDesktopApplications/启动桌面应用程序 927
11.15.3 TheSystemTray/系统托盘 932
Chapter12:NativeMethods/本地方法 939
12.1 CallingaCFunctionfromaJavaProgram/从Java程序中调用C函数 940
12.2 NumericParametersandReturnValues/数值参数与返回值 947
12.3 StringParameters/字符串参数 949
12.4 AccessingFields/访问字段 956
12.4.1 AccessingInstanceFields/访问实例字段 956
12.4.2 AccessingStaticFields/访问静态字段 960
12.5 EncodingSignatures/编码签名 961
12.6 CallingJavaMethods/调用Java方法 963
12.6.1 InstanceMethods/实例方法 963
12.6.2 StaticMethods/静态方法 964
12.6.3 Constructors/构造器 965
12.6.4 AlternativeMethodInvocations/其他调用方法的手段 966
12.7 AccessingArrayElements/访问数组元素 970
12.8 HandlingErrors/处理错误 974
12.9 UsingtheInvocationAPI/使用InvocationAPI 980
12.10 ACompleteExample:AccessingtheWindowsRegistry/完整示例:访问Windows注册表 985
12.10.1 OverviewoftheWindowsRegistry/Windows注册表简介 985
12.10.2 AJavaPlatformInterfaceforAccessingtheRegistry/访问注册表的Java平台接口 987
12.10.3 ImplementationofRegistryAccessFunctionsasNativeMethods/以本地方法方式实现注册表访问功能 988