Wonder Club world wonders pyramid logo
×

Component Development for the Java Platform Book

Component Development for the Java Platform
Component Development for the Java Platform, Java™ is an object-oriented language, but it is also a component-oriented platform. Java's class-loading model and rich type information makes it possible to build flexible and reusable binary components. COMPONENT DEVELOPMENT FOR THE JAVA™ PLATFORM</b, Component Development for the Java Platform has a rating of 3 stars
   2 Ratings
X
Component Development for the Java Platform, Java™ is an object-oriented language, but it is also a component-oriented platform. Java's class-loading model and rich type information makes it possible to build flexible and reusable binary components. COMPONENT DEVELOPMENT FOR THE JAVA™ PLATFORM 3 out of 5 stars based on 2 reviews
5
50 %
4
0 %
3
0 %
2
0 %
1
50 %
Digital Copy
PDF format
1 available   for $99.99
Original Magazine
Physical Format

Sold Out

Buy Digital  USD$99.99

WonderClub View Cart Button

WonderClub Add to Inventory Button
WonderClub Add to Wishlist Button
WonderClub Add to Collection Button

Book Categories

Authors

Forewordxiii
Prefacexv
1From Objects to Components1
2The Class Loader Architecture11
2.1Assembling an Application11
2.2Goals of the Class Loader Architecture14
2.2.1Transparency15
2.2.2Extensibility15
2.2.3Capability16
2.2.4Configurability16
2.2.5Handling Name and Version Conflicts16
2.2.6Security17
2.3Explicit and Implicit Class Loading17
2.3.1Explicit Loading with URL ClassLoader18
2.3.2Implicit Class Loading19
2.3.3Reference Type versus Referenced Class20
2.3.4ClassLoader.loadClass versus Class.forName21
2.3.5Loading Nonclass Resources22
2.4The Class Loader Rules23
2.4.1The Consistency Rule23
2.4.2The Delegation Rule24
2.4.3The Visibility Rule25
2.4.4Delegations as Namespaces27
2.4.5Static Fields Are Not Singletons28
2.4.6Implicit Loading Hides Most Details29
2.5Hot Deployment29
2.5.1Using Hot Deployment33
2.6Unloading Classes35
2.6.1Making Sure Classes Are Collectable35
2.7Bootclasspath, Extensions Path, and Classpath36
2.7.1The Classpath37
2.7.2The Extensions Path39
2.7.3The Bootclasspath41
2.8Debugging Class Loading43
2.8.1Instrumenting an Application44
2.8.2Using--verbose:class45
2.8.3Instrumenting the Core API46
2.9Inversion and the Context Class Loader49
2.10Onward55
2.11Resources56
3Type Information and Reflection57
3.1The Binary Class Format58
3.1.1Binary Compatibility58
3.1.2Binary Class Metadata63
3.1.3From Binary Classes to Reflection66
3.2Reflection66
3.2.1Reflecting on Fields68
3.2.2The Difference between get and getDeclared68
3.2.3Type Errors Occur at Runtime70
3.2.4Reflecting on Methods71
3.3Reflective Invocation72
3.3.1A Reflective Launcher73
3.3.2Wrapping Primitive Types74
3.3.3Bypassing Language Access Rules76
3.3.4Exceptions Caused by Reflective Invocation81
3.4Dynamic Proxies83
3.4.1Delegation instead of Implementation Inheritance83
3.4.2Dynamic Proxies Make Delegation Generic84
3.4.3Implementing InvocationHandler85
3.4.4Implementing a Forwarding Handler86
3.4.5The InvocationHandler as Generic Service87
3.4.6Handling Exceptions in an InvocationHandler89
3.4.7Either Client or Server Can Install a Proxy90
3.4.8Advantages of Dynamic Proxies91
3.5Reflection Performance92
3.6Package Reflection94
3.6.1Setting Package Metadata95
3.6.2Accessing Package Metadata96
3.6.3Sealing Packages97
3.6.4Weaknesses of the Versioning Mechanism97
3.7Custom Metadata98
3.8Onward103
3.9Resources103
4Serialization105
4.1Serialization and Metadata105
4.2Serialization Basics106
4.2.1Serialization Skips Some Fields109
4.2.2Serialization and Class Constructors110
4.3Using readObject and writeObject111
4.4Matching Streams with Classes113
4.4.1The serialVersionUID114
4.4.2Overriding the Default SUID115
4.4.3Compatible and Incompatible Changes117
4.5Explicitly Managing Serializable Fields119
4.5.1ObjectInputStream. GetField Caveats120
4.5.2Writer Makes Right121
4.5.3Overriding Class Metadata122
4.5.4Performance Problems123
4.5.5Custom Class Descriptors124
4.6Abandoning Metadata124
4.6.1Writing Custom Data after defaultWriteObject124
4.6.2Externalizable125
4.6.3Using writeObject to Write Raw Data Only: Bad Idea128
4.7Object Graphs130
4.7.1Pruning Graphs with Transient131
4.7.2Preserving Identity131
4.7.3Encouraging the Garbage Collector with reset132
4.8Object Replacement133
4.8.1Stream-Controlled Replacement134
4.8.2Class-Controlled Replacement137
4.8.3Ordering Rules for Replacement139
4.8.4Taking Control of Graph Ordering145
4.9Finding Class Code147
4.9.1Annotation in RMI148
4.9.2RMI MarshalledObjects150
4.10Onward150
4.11Resources151
5Customizing Class Loading153
5.1Java 2 Security155
5.1.1The Role of Class Loaders157
5.2Custom Class Loaders159
5.2.1Pre-Java 2 Custom Class Loaders159
5.2.2Class Loading since SDK 1.2160
5.2.3A Transforming Class Loader162
5.3Protocol Handlers168
5.3.1Implementing a Handler169
5.3.2Installing a Custom Handler171
5.3.3Choosing between Loaders and Handlers174
5.4Getting Past Security to the Loader You Need175
5.5Reading Custom Metadata177
5.5.1Example: Version Attributes178
5.5.2Serializable Classes as Attributes179
5.5.3Reading Attributes during Class Loading183
5.5.4Debugging Support188
5.6Onward189
5.7Resources190
6Interop 1: JNI191
6.1Why Interoperate?191
6.2The Dangers of Native Code193
6.3Finding and Loading Native Code194
6.3.1Name Mappings195
6.3.2Type Mappings195
6.3.3Overloaded Names198
6.3.4Loading Native Libraries199
6.3.5Class Loaders and JNI202
6.3.6Common Errors Loading Native Libraries205
6.3.7Troubleshooting Native Loading207
6.4Calling Java from C++208
6.4.1Minimizing Round Trips211
6.4.2Performance Comparisons214
6.4.3Differences between JNI and Reflective Invocation214
6.5Error Handling in JNI217
6.5.1Failures in Native Code217
6.5.2Handling C++ Exceptions218
6.5.3Handling Java Exceptions from Native Code219
6.5.4Throwing Java Exceptions from Native Code222
6.6Resource Management223
6.6.1Interacting with the Garbage Collector224
6.6.2Managing Native Resources231
6.6.3Managing Arrays233
6.6.4Managing Strings239
6.7Onward240
6.8Resources241
7Generative Programming243
7.1Why Generate Code?243
7.1.1Object-Oriented Approaches to Modeling Variabilities244
7.1.2Thinking in Terms of Bind Time246
7.1.3Separating Specification from Bind Time247
7.1.4Choosing a Specification Language249
7.1.5Reuse Requires More Than One Use249
7.1.6A Little Domain Analysis Is a Dangerous Thing250
7.2Why Generate Code with Java?250
7.2.1Type Information Acts as a Free Specification Document250
7.2.2Class Loading Supports Flexible Binding Modes251
7.2.3Java Source Is Easy to Generate251
7.2.4Java Binary Classes Are Easy to Generate252
7.2.5Code Generation Boosts Performance252
7.2.6Levels of Commitment to Code Generation252
7.3A Taxonomy of Bind Times and Modes253
7.4Code Generation in RMI255
7.5Code Generation in JSP257
7.6Code Generation in EJB260
7.6.1The Deployment Descriptor263
7.6.2Alternate Implementations265
7.7Generating Strongly Typed Collections267
7.7.1Code Generation Language versus Target Language270
7.8Generating Custom Serialization Code271
7.9Onward276
7.10Resources279
8Onward281
8.1Where We Are281
8.2Where We Are Going282
8.3Resources283
AInterop 2: Bridging Java and Win32/COM285
Index319


Login

  |  

Complaints

  |  

Blog

  |  

Games

  |  

Digital Media

  |  

Souls

  |  

Obituary

  |  

Contact Us

  |  

FAQ

CAN'T FIND WHAT YOU'RE LOOKING FOR? CLICK HERE!!!

X
WonderClub Home

This item is in your Wish List

Component Development for the Java Platform, Java™ is an object-oriented language, but it is also a component-oriented platform. Java's class-loading model and rich type information makes it possible to build flexible and reusable binary components. COMPONENT DEVELOPMENT FOR THE JAVA™ PLATFORM</b, Component Development for the Java Platform

X
WonderClub Home

This item is in your Collection

Component Development for the Java Platform, Java™ is an object-oriented language, but it is also a component-oriented platform. Java's class-loading model and rich type information makes it possible to build flexible and reusable binary components. COMPONENT DEVELOPMENT FOR THE JAVA™ PLATFORM</b, Component Development for the Java Platform

Component Development for the Java Platform

X
WonderClub Home

This Item is in Your Inventory

Component Development for the Java Platform, Java™ is an object-oriented language, but it is also a component-oriented platform. Java's class-loading model and rich type information makes it possible to build flexible and reusable binary components. COMPONENT DEVELOPMENT FOR THE JAVA™ PLATFORM</b, Component Development for the Java Platform

Component Development for the Java Platform

WonderClub Home

You must be logged in to review the products

E-mail address:

Password: