《Java核心技术 卷2 高级特性 英文版》PDF下载

  • 购买积分:26 如何计算积分?
  • 作  者:(美)CayS.Horstmann,GaryCornell著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2009
  • ISBN:9787115210586
  • 页数:1032 页
图书介绍:本书全面覆盖了Java技术的高级主题。主要内容包括流与文件、XML、网络、数据库编程、高级Swing、高级AWT、JavaBean构件、安全、分布式对象、脚本、编译与注解处理,同时还介绍了本地化、国际化以及Java SE 6等内容。

1 STREAMS AND FILES 1

Streams 2

Reading and Writing Bytes 2

The Complete Stream Zoo 4

Combining Stream Filters 8

Text Input and Output 11

How to Write Text Output 12

How to Read Text Input 14

Saving Objects in Text Format 14

Character Sets 19

Reading and Writing Binary Data 23

Random-Access Files 26

ZIP Archives 32

Object Streams and Serialization 39

Understanding the Object Serialization File Format 46

Modifying the Default Serialization Mechanism 51

Serializing Singletons and Typesafe Enumerations 53

Versioning 54

Using Serialization for Cloning 56

File Management 59

New I/O 65

Memory-Mapped Files 65

The Buffer Data Structure 72

File Locking 74

Regular Expressions 75

2 XML 87

Introducing XML 88

The Structure of an XML Document 90

Parsing an XML Document 93

Validating XML Documents 105

Document Type Definitions 106

XML Schema 112

A Practical Example 115

Locating Information with XPath 129

Using Namespaces 136

Streaming Parsers 138

Using the SAX Parser 138

Using the StAX Parser 143

Generating XML Documents 146

Writing an XML Document with StAX 150

XSL Transformations 157

3 NETWORKING 169

Connecting to a Server 170

Socket Timeouts 174

Internet Addresses 175

Implementing Servers 177

Serving Multiple Clients 180

Half-Close 184

Interruptible Sockets 184

Sending E-Mail 191

Making URL Connections 196

URLs and URIs 196

Using a URLConnection to Retrieve Information 198

Posting Form Data 207

4 DATABASE PROGRAMMING 217

The Design of JDBC 218

JDBC Driver Types 219

Typical Uses of JDBC 220

The Structured Query Language 222

JDBC Configuration 227

Database URLs 227

Driver JAR Files 228

Starting the Database 228

Registering the Driver Class 229

Connecting to the Database 229

Executing SQL Statements 232

Managing Connections,Statements,and Result Sets 235

Analyzing SQL Exceptions 236

Populating a Database 238

Query Execution 242

Prepared Statements 242

Reading and Writing LOBs 250

SQL Escapes 252

Multiple Results 253

Retrieving Autogenerated Keys 254

Scrollable and Updatable Result Sets 254

Scrollable Result Sets 254

Updatable Result Sets 256

Row Sets 260

Cached Row Sets 261

Metadata 263

Transactions 273

Save Points 274

Batch Updates 274

Advanced SQL Types 276

Connection Management in Web and Enterprise Applications 278

Introduction to LDAP 279

Configuring an LDAP Server 280

Accessing LDAP Directory Information 284

5 INTERNATIONALIZATION 297

Locales 298

Number Formats 303

Currencies 309

Date and Time 310

Collation 318

Collation Strength 318

Decomposition 319

Message Formatting 324

Choice Formats 326

Text Files and Character Sets 328

Character Encoding of Source Files 328

Resource Bundles 329

Locating Resource Bundles 330

Property Files 331

Bundle Classes 331

A Complete Example 333

6 ADVANCED SWING 351

Lists 352

The JList Component 352

List Models 358

Inserting and Removing Values 363

Rendering Values 365

Tables 370

A Simple Table 370

Table Models 374

Working with Rows and Columns 378

Cell Rendering and Editing 392

Trees 405

Simple Trees 406

Node Enumeration 422

Rendering Nodes 424

Listening to Tree Events 427

Custom Tree Models 434

Text Components 442

Change Tracking in Text Components 443

Formatted Input Fields 447

The JSpinner Component 463

Displaying HTML with the JEditorPane 472

Progress Indicators 479

Progress Bars 479

Progress Monitors 483

Monitoring the Progress of Input Streams 487

Component Organizers 492

Split Panes 492

Tabbed Panes 496

Desktop Panes and Internal Frames 502

Cascading and Tiling 505

Vetoing Property Settings 509

7 ADVANCED AWT 521

The Rendering Pipeline 522

Shapes 524

Using the Shape Classes 527

Areas 540

Strokes 542

Paint 550

Coordinate Transformations 552

Clipping 557

Transparency and Composition 559

Rendering Hints 568

Readers and Writers for Images 575

Obtaining Readers and Writers for Image File Types 575

Reading and Writing Files with Multiple Images 576

Image Manipulation 585

Constructing Raster Images 585

Filtering Images 592

Printing 601

Graphics Printing 602

Multiple-Page Printing 611

Print Preview 613

Print Services 623

Stream Print Services 627

Printing Attributes 627

The Clipboard 635

Classes and Interfaces for Data Transfer 636

Transferring Text 636

The Transferable Interface and Data Flavors 640

Building an Image Transferable 642

Transferring Java Objects via the System Clipboard 647

Using a Local Clipboard to Transfer Object References 652

Drag and Drop 652

Data Transfer Support in Swing 654

Drag Sources 658

Drop Targets 660

Platform Integration 668

Splash Screens 668

Launching Desktop Applications 673

The System Tray 679

8 JAVABEANS COMPONENTS 685

Why Beans? 686

The Bean-Writing Process 688

Using Beans to Build an Application 690

Packaging Beans in JAR Files 691

Composing Beans in a Builder Environment 692

Naming Patterns for Bean Properties and Events 698

Bean Property Types 701

Simple Properties 701

Indexed Properties 701

Bound Properties 702

Constrained Properties 703

BeanInfo Classes 710

Property Editors 713

Writing Property Editors 716

Customizers 723

Writing a Customizer Class 725

JavaBeans Persistence 732

Using JavaBeans Persistence for Arbitrary Data 736

A Complete Example for JavaBeans Persistence 742

9 SECURITY 755

Class Loaders 756

The Class Loader Hierarchy 757

Using Class Loaders as Namespaces 759

Writing Your Own Class Loader 761

Bytecode Verification 767

Security Managers and Permissions 771

Java Platform Security 772

Security Policy Files 776

Custom Permissions 783

Implementation of a Permission Class 783

User Authentication 790

JAAS Login Modules 795

Digital Signatures 805

Message Digests 805

Message Signing 812

The X.509 Certificate Format 814

Verifying a Signature 814

The Authentication Problem 818

Certificate Signing 820

Certificate Requests 821

Code Signing 822

JAR File Signing 822

Software Developer Certificates 827

Encryption 828

Symmetric Ciphers 828

Key Generation 830

Cipher Streams 834

Public Key Ciphers 835

10 DISTRIBUTED OBJECTS 841

The Roles of Client and Server 842

Remote Method Calls 845

Stubs and Parameter Marshalling 845

The RMI Programming Model 846

Interfaces and Implementations 846

The RMI Registry 848

Deploying the Program 852

Logging RMI Activity 855

Parameters and Return Values in Remote Methods 856

Transferring Remote Objects 857

Transferring Nonremote Objects 857

Dynamic Class Loading 860

Remote References with Multiple Interfaces 864

Remote Objects and the equals,hashCode,and clone Methods 865

Remote Object Activation 865

Web Services and JAX-WS 871

Using JAX-WS 871

A Web Service Client 874

The Amazon E-Commerce Service 877

11 SCRIPTING,COMPILING,AND ANNOTATION PROCESSING 883

Scripting for the Java Platform 884

Getting a Scripting Engine 884

Script Evaluation and Bindings 885

Redirecting Input and Output 887

Calling Scripting Functions and Methods 888

Compiling a Script 889

An Example:Scripting GUI Events 890

The Compiler API 895

Compiling the Easy Way 895

Using Compilation Tasks 895

An Example:Dynamic Java Code Generation 900

Using Annotations 905

An Example:Annotating Event Handlers 906

Annotation Syntax 911

Standard Annotations 915

Annotations for Compilation 916

Annotations for Managing Resources 917

Meta-Annotations 917

Source-Level Annotation Processing 919

Bytecode Engineering 926

Modifying Bytecodes at Load Time 932

12 NATIVE METHODS 935

Calling a C Function from a Java Program 936

Numeric Parameters and Return Values 942

Using printf for Formatting Numbers 942

String Parameters 944

Accessing Fields 950

Accessing Instance Fields 950

Accessing Static Fields 953

Encoding Signatures 954

Calling Java Methods 956

Instance Methods 956

Static Methods 957

Constructors 958

Alternative Method Invocations 958

Accessing Array Elements 962

Handling Errors 966

Using the Invocation API 970

A Complete Example:Accessing the Windows Registry 975

Overview of the Windows Registry 975

A Java Platform Interface for Accessing the Registry 977

Implementation of Registry Access Functions as Native Methods 977

Index 991