Java Secrets
Preface
About the Author
Part I—How Java Works
Chapter 1—Introducing Java SECRETS
A Little Knowledge Can Be a Dangerous Thing
What’s in This Book?
Part I: How Java Works
Part II: The sun Classes
Part III: Platform-Dependent Java
Why Java Secrets?
Broader applicability
More power
Inspiration
Where Did the Secrets Come From?
Where is the documentation?
The source code
The API documentation
What Versions of Java Are Covered?
Some Objections
Java is supposed to be platform independent
Why aren’t these things documented?
FUD (fear, uncertainty, and doubt)
How secret is this, anyway?
Summary
Chapter 2—Primitive Data Types
Bytes in Memory
Variables, Values, and Identifiers
Place-Value Number Systems
Binary notation
Hexadecimal notation
Octal notation
Integers
ints
Long, short, and byte
Floating-Point Numbers
Representing floating-point numbers in binary code
Special values
Denormalized floating-point numbers
CHAR
ASCII
ISO Latin-1
Unicode
UTF8
Boolean
Cross-Platform Issues
Byte order
Unsigned integers
Integer widths
Conversions and Casting
Using a cast
The mechanics of conversion
Bit-Level Operators
Some terminology
Bitwise operators
Bit shift operators
Summary
Chapter 2—Primitive Data Types
Bytes in Memory
Variables, Values, and Identifiers
Place-Value Number Systems
Binary notation
Hexadecimal notation
Octal notation
Integers
ints
Long, short, and byte
Floating-Point Numbers
Representing floating-point numbers in binary code
Special values
Denormalized floating-point numbers
CHAR
ASCII
ISO Latin-1
Unicode
UTF8
Boolean
Cross-Platform Issues
Byte order
Unsigned integers
Integer widths
Conversions and Casting
Using a cast
The mechanics of conversion
Bit-Level Operators
Some terminology
Bitwise operators
Bit shift operators
Summary
Chapter 3—Classes, Strings, and Arrays
The Heap
Pointers, Handles, and References
What is a pointer?
What is a handle?
What is a reference?
The Class Class
The Object Class
Cloning
Equality
Finalization
Runtime type information
Hash codes
Threading
Strings
Arrays
Multidimensional arrays
Array classes and objects
System.arraycopy()
Strings
String implementation
StringBuffers
java.util Data Structures
Vectors
Bitsets
Stack
Summary
Chapter 4—The Java Virtual Machine
Reading Compiled Files
Reading Class Files
Magic number
Minor version
Major version
Constant pool
Access flags
thisClass
Superclass
Interfaces
Attributes
Fields
Methods
Putting It All Together
Import statements
Access specifiers
Class and superclass
Interfaces
Fields
Methods
Legal Issues
Accessing Class Files
Copying .class files
Zip files
Jar files
Summary
Chapter 5—Java Byte Code
Byte Code Mnemonics
Using Mnemonics in the Disassembler
Stacks, Frames, and Pools
The Opcodes
Nop
Pushing values onto the stack
Stack manipulation
The local variable array
Arithmetic
Bit manipulation
The iinc instruction
Conversion codes
Comparison instructions
Unconditional branching
Switching
Objects
Arrays
Exceptions
Type checking
Threads: monitorenter and monitorexit
Decompilers and Other Tools
Summary
Part II—The Sun Classes
Chapter 6—Threads and Garbage Collection
Threads
Cooperative versus preemptive threads
Native versus emulated threads
Garbage Collection
Reference counting
Mark and sweep
Generational garbage collection
Summary
Chapter 7—Controlling Applets
What Is An Applet?
Applets Are Components Too
main() methods for applets
Including applets in non-applets
Dynamically loading applets
Stubs and Context
Writing applet contexts
Writing applet stubs
Better main() methods for applets
Loading Classes
Setting Security Policies
Loading Applets from Web Pages
Summary
Chapter 8—Introducing the Sun Classes
What the Sun Classes Are
Why the Sun Classes Exist
Using the Sun Classes Safely
Put the classes you use on your Web server
Distribute the classes with your application
Write an equivalent class
Legal issues
Checking for the presence of the sun classes
Checking for methods and fields
Summary
Chapter 9—Using the sun.applet Classes to View Applets
The sun.applet Package
The AppletViewer Class
The constructor
Other methods
The AppletContext methods
The AppletPanel and AppletViewerPanel Classes
The AppletClassLoader Class
The AppletSecurity Class
Network security
Host security
Runtime security
Class system security
File system security
Support Classes
AppletAudioClip
AppletThreadGroup
AppletCopyright
AppletProps
TextFrame
Summary
Chapter 10—Controlling Audio Playback with sun.audio
AppletAudioClip
AudioData
AudioPlayer
The Audio Streams
AudioStream
NativeAudioStream
AudioTranslatorStream
AudioDataStream
ContinuousAudioDataStream
AudioStreamSequence
AudioDevice
The Process
Putting It All Together
Summary
Chapter 11—Controlling the AWT with the sun.awt Package
Aligning Objects with the sun.awt LayoutManagers
HorizBagLayout
VerticalBagLayout
VariableGridLayout
OrientableFlowLayout
FocusingTextField
Controlling Screen Updating
Summary
Chapter 12—Encoding and Decoding Data with the sun.misc Package
Coding Binary Data in ASCII
The CharacterEncoder and CharacterDecoder Classes
HexDump Encoding
Base64 Encoding
UUEncoding
UCEncoding
Creating New Encodings
The CRC class
Summary
Chapter 13—Network Servers and Clients in the sun.net Package
Writing Network Servers
The sun.net.NetworkServer Class
Subclassing NetworkServer
Writing Network Clients
The sun.net.NetworkClient class
Subclassing NetworkClient
TransferProtocolClient
The TransferProtocolClient class
Subclassing TransferProtocolClient
Summary
Chapter 14—Sending Mail with the sun.net.smtp Package
SmtpClient
The constructors
The methods
Exceptions
Choosing an SMTP Server
Summary
Chapter 15—Reading News via NNTP with the sun.net.nntp Package
NewsgroupInfo
Creating NewsGroupInfo objects
Resetting article numbers
NntpClient
Opening a connection to the server
Reading articles
Posting news
Other commands
Summary
Chapter 16—Transferring Files with the sun.net.ftp Package
Overview of the sun.net.ftp Package
The FTP Protocol
The FtpClient Class
Subclassing FtpClient
IftpClient
DebugFtpClient
FullFtpClient
Summary
Chapter 17—Communicating with Web Servers
Message Formats
MessageHeader
HeaderParser
MIME types
Tracking Downloads: Metered Streams
sun.net.www.URLConnection
sun.net.www.http
HttpClient
KeepAliveCache
KeepAliveKey
ClientVector
KeepAliveStream
sun.net.www.httpd and the BasicHttpServer
Content Handlers
The text content handlers
The image content handlers
Protocol Handlers
appletresource
doc
file
FTP
gopher
HTTP
mailto
netdoc
The netdoc.Handler class
systemresource
verbatim
Summary
Part III—Platform-Dependent Java
Chapter 18—Character Conversion with sun.io
Available Conversions
Using the Converters
Direct Conversions
The convertAll() method
The convert() method
Substitution Mode
Summary
Chapter 19—Mixed Language Programming with Native Methods
Disadvantages
Code in Java First
Profiling
Hand-Optimizing
The Java Native Method Interface
Returning primitive values from native methods
Passing primitive data type arguments to native methods
Using Objects in Native Methods
Invoking instance methods
Calling Java methods from C
Passing arguments to Java methods
Using strings in native methods
Using arrays in native methods
Accessing fields from native methods
Static methods and fields in native methods
Errors and exceptions in native methods
Garbage collection and native methods
Threading and native methods
Determining at Runtime Whether Native Code Is Available
Summary
Chapter 20—Creating Stand-Alone Programs
Writing Stand-Alone Programs for UNIX
Creating Stand-alone Programs for the MacOS
The Macintosh DDEncoder class
Using type and creator codes
The Macintosh Runtime for Java
Creating Stand-Alone Windows Programs
Summary
Appendix A
Appendix B
Appendix C
Appendix D
Appendix E
Appendix F
Appendix G
Appendix H
本文地址:http://com.8s8s.com/it/it18490.htm