100% found this document useful (5 votes)
609 views37 pages

(FREE PDF Sample) Java: The Complete Reference, Eleventh Edition Herbert Schildt Ebooks

Schildt

Uploaded by

yeisertaiyeb
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (5 votes)
609 views37 pages

(FREE PDF Sample) Java: The Complete Reference, Eleventh Edition Herbert Schildt Ebooks

Schildt

Uploaded by

yeisertaiyeb
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 37

Download the full version of the textbook now at textbookfull.

com

Java: The Complete Reference, Eleventh


Edition Herbert Schildt

https://textbookfull.com/product/java-the-
complete-reference-eleventh-edition-herbert-
schildt/

Explore and download more textbook at https://textbookfull.com


Recommended digital products (PDF, EPUB, MOBI) that
you can download immediately if you are interested.

Java: A Beginner’s Guide 7th Edition Herbert Schildt

https://textbookfull.com/product/java-a-beginners-guide-7th-edition-
herbert-schildt/

textbookfull.com

Java: A Beginner’s Guide, Eighth Edition Herbert Schildt

https://textbookfull.com/product/java-a-beginners-guide-eighth-
edition-herbert-schildt/

textbookfull.com

Biota Grow 2C gather 2C cook Loucas

https://textbookfull.com/product/biota-grow-2c-gather-2c-cook-loucas/

textbookfull.com

The new histories of international criminal law : retrials


First Edition Tallgren

https://textbookfull.com/product/the-new-histories-of-international-
criminal-law-retrials-first-edition-tallgren/

textbookfull.com
Global Journalism in Comparative Perspective 1st Edition
Jerald Hage Joseph J Valadez Wilbur C Hadden

https://textbookfull.com/product/global-journalism-in-comparative-
perspective-1st-edition-jerald-hage-joseph-j-valadez-wilbur-c-hadden/

textbookfull.com

The Dynamics of Small Solar System Bodies Jeremy Wood

https://textbookfull.com/product/the-dynamics-of-small-solar-system-
bodies-jeremy-wood/

textbookfull.com

Algal Biofuels First Edition Leonel Pereira

https://textbookfull.com/product/algal-biofuels-first-edition-leonel-
pereira/

textbookfull.com

Modern Robotics Mechanics Planning and Control Frank C.


Park

https://textbookfull.com/product/modern-robotics-mechanics-planning-
and-control-frank-c-park/

textbookfull.com

You May Ask Yourself An Introduction to Thinking like a


Sociologist Sixth Edition Dalton Conley

https://textbookfull.com/product/you-may-ask-yourself-an-introduction-
to-thinking-like-a-sociologist-sixth-edition-dalton-conley/

textbookfull.com
Gear Drive Systems Peter Lynwander

https://textbookfull.com/product/gear-drive-systems-peter-lynwander/

textbookfull.com
About the Author
Best-selling author Herbert Schildt has written extensively about
programming for over three decades and is a leading authority on
the Java language. His books have sold millions of copies worldwide
and have been translated into all major foreign languages. He is the
author of numerous books on Java, including Java: A Beginner’s
Guide, Herb Schildt’s Java Programming Cookbook, Introducing
JavaFX 8 Programming, and Swing: A Beginner’s Guide. He has also
written extensively about C, C++, and C#. Although interested in all
facets of computing, his primary focus is computer languages.
Schildt holds both graduate and undergraduate degrees from the
University of Illinois. His website is www.HerbSchildt.com.

About the Technical Editor


Dr. Danny Coward has worked on all editions of the Java platform.
He led the definition of Java Servlets into the first version of the Java
EE platform and beyond, web services into the Java ME platform,
and the strategy and planning for Java SE 7. He founded JavaFX
technology and, most recently, designed the largest addition to the
Java EE 7 standard, the Java WebSocket API. From coding in Java,
to designing APIs with industry experts, to serving for several years
as an executive to the Java Community Process, he has a uniquely
broad perspective into multiple aspects of Java technology. In
addition, he is the author of two books on Java programming: Java
WebSocket Programming and Java EE: The Big Picture. Most
recently, he has been applying his knowledge of Java to solving
problems in the field of robotics. Dr. Coward holds a bachelor’s,
master’s, and doctorate in mathematics from the University of
Oxford.
Copyright © 2019 by McGraw-Hill Education (Publisher). All rights
reserved. Except as permitted under the United States Copyright Act
of 1976, no part of this publication may be reproduced or distributed
in any form or by any means, or stored in a database or retrieval
system, without the prior written permission of the publisher.

ISBN: 978-1-26-044024-9
MHID: 1-26-044024-9

The material in this eBook also appears in the print version of this
title: ISBN: 978-1-26-044023-2, MHID: 1-26-044023-0.

eBook conversion by codeMantra


Version 1.0

All trademarks are trademarks of their respective owners. Rather


than put a trademark symbol after every occurrence of a
trademarked name, we use names in an editorial fashion only, and
to the benefit of the trademark owner, with no intention of
infringement of the trademark. Where such designations appear in
this book, they have been printed with initial caps.

McGraw-Hill Education eBooks are available at special quantity


discounts to use as premiums and sales promotions or for use in
corporate training programs. To contact a representative, please visit
the Contact Us page at www.mhprofessional.com.

Oracle and Java are registered trademarks of Oracle Corporation


and/or its affiliates. All other trademarks are the property of their
respective owners, and McGraw-Hill Education makes no claim of
ownership by the mention of products that contain these marks.

Screen displays of copyrighted Oracle software programs have been


reproduced herein with the permission of Oracle Corporation and/or
its affiliates.
Information has been obtained by Publisher from sources believed to
be reliable. However, because of the possibility of human or
mechanical error by our sources, Publisher, or others, Publisher does
not guarantee to the accuracy, adequacy, or completeness of any
information included in this work and is not responsible for any
errors or omissions or the results obtained from the use of such
information.

Oracle Corporation does not make any representations or warranties


as to the accuracy, adequacy, or completeness of any information
contained in this Work, and is not responsible for any errors or
omissions.

TERMS OF USE

This is a copyrighted work and McGraw-Hill Education and its


licensors reserve all rights in and to the work. Use of this work is
subject to these terms. Except as permitted under the Copyright Act
of 1976 and the right to store and retrieve one copy of the work,
you may not decompile, disassemble, reverse engineer, reproduce,
modify, create derivative works based upon, transmit, distribute,
disseminate, sell, publish or sublicense the work or any part of it
without McGraw-Hill Education’s prior consent. You may use the
work for your own noncommercial and personal use; any other use
of the work is strictly prohibited. Your right to use the work may be
terminated if you fail to comply with these terms.

THE WORK IS PROVIDED “AS IS.” McGRAW-HILL EDUCATION AND


ITS LICENSORS MAKE NO GUARANTEES OR WARRANTIES AS TO
THE ACCURACY, ADEQUACY OR COMPLETENESS OF OR RESULTS
TO BE OBTAINED FROM USING THE WORK, INCLUDING ANY
INFORMATION THAT CAN BE ACCESSED THROUGH THE WORK VIA
HYPERLINK OR OTHERWISE, AND EXPRESSLY DISCLAIM ANY
WARRANTY, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
TO IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR
A PARTICULAR PURPOSE. McGraw-Hill Education and its licensors do
not warrant or guarantee that the functions contained in the work
will meet your requirements or that its operation will be
uninterrupted or error free. Neither McGraw-Hill Education nor its
licensors shall be liable to you or anyone else for any inaccuracy,
error or omission, regardless of cause, in the work or for any
damages resulting therefrom. McGraw-Hill Education has no
responsibility for the content of any information accessed through
the work. Under no circumstances shall McGraw-Hill Education
and/or its licensors be liable for any indirect, incidental, special,
punitive, consequential or similar damages that result from the use
of or inability to use the work, even if any of them has been advised
of the possibility of such damages. This limitation of liability shall
apply to any claim or cause whatsoever whether such claim or cause
arises in contract, tort or otherwise.
Contents at a Glance
Part I The Java Language
1 The History and Evolution of Java
2 An Overview of Java
3 Data Types, Variables, and Arrays
4 Operators
5 Control Statements
6 Introducing Classes
7 A Closer Look at Methods and Classes
8 Inheritance
9 Packages and Interfaces
10 Exception Handling
11 Multithreaded Programming
12 Enumerations, Autoboxing, and Annotations
13 I/O, Try-with-Resources, and Other Topics
14 Generics
15 Lambda Expressions
16 Modules
Part II The Java Library
17 String Handling
18 Exploring java.lang
19 java.util Part 1: The Collections Framework
20 java.util Part 2: More Utility Classes
21 Input/Output: Exploring java.io
22 Exploring NIO
23 Networking
24 Event Handling
25 Introducing the AWT: Working with Windows, Graphics,
and Text
26 Using AWT Controls, Layout Managers, and Menus
27 Images
28 The Concurrency Utilities
29 The Stream API
30 Regular Expressions and Other Packages
Part III Introducing GUI Programming with Swing
31 Introducing Swing
32 Exploring Swing
33 Introducing Swing Menus
Part IV Applying Java
34 Java Beans
35 Introducing Servlets
Part V Appendixes
A Using Java’s Documentation Comments
B Introducing JShell
C Compile and Run Simple Single-File Programs in One Step

Index
Contents
Preface

Part I The Java Language


Chapter 1 The History and Evolution of Java
Java’s Lineage
The Birth of Modern Programming: C
C++: The Next Step
The Stage Is Set for Java
The Creation of Java
The C# Connection
How Java Impacted the Internet
Java Applets
Security
Portability
Java’s Magic: The Bytecode
Moving Beyond Applets
A Faster Release Schedule
Servlets: Java on the Server Side
The Java Buzzwords
Simple
Object-Oriented
Robust
Multithreaded
Architecture-Neutral
Interpreted and High Performance
Distributed
Dynamic
The Evolution of Java
A Culture of Innovation
Chapter 2 An Overview of Java
Object-Oriented Programming
Two Paradigms
Abstraction
The Three OOP Principles
A First Simple Program
Entering the Program
Compiling the Program
A Closer Look at the First Sample Program
A Second Short Program
Two Control Statements
The if Statement
The for Loop
Using Blocks of Code
Lexical Issues
Whitespace
Identifiers
Literals
Comments
Separators
The Java Keywords
The Java Class Libraries
Chapter 3 Data Types, Variables, and Arrays
Java Is a Strongly Typed Language
Visit https://textbookfull.com
now to explore a rich
collection of eBooks, textbook
and enjoy exciting offers!
The Primitive Types
Integers
byte
short
int
long
Floating-Point Types
float
double
Characters
Booleans
A Closer Look at Literals
Integer Literals
Floating-Point Literals
Boolean Literals
Character Literals
String Literals
Variables
Declaring a Variable
Dynamic Initialization
The Scope and Lifetime of Variables
Type Conversion and Casting
Java’s Automatic Conversions
Casting Incompatible Types
Automatic Type Promotion in Expressions
The Type Promotion Rules
Arrays
One-Dimensional Arrays
Multidimensional Arrays
Alternative Array Declaration Syntax
Introducing Type Inference with Local Variables
Some var Restrictions
A Few Words About Strings
Chapter 4 Operators
Arithmetic Operators
The Basic Arithmetic Operators
The Modulus Operator
Arithmetic Compound Assignment Operators
Increment and Decrement
The Bitwise Operators
The Bitwise Logical Operators
The Left Shift
The Right Shift
The Unsigned Right Shift
Bitwise Operator Compound Assignments
Relational Operators
Boolean Logical Operators
Short-Circuit Logical Operators
The Assignment Operator
The ? Operator
Operator Precedence
Using Parentheses
Chapter 5 Control Statements
Java’s Selection Statements
if
switch
Iteration Statements
while
do-while
for
The For-Each Version of the for Loop
Local Variable Type Inference in a for Loop
Nested Loops
Jump Statements
Using break
Using continue
Chapter 6 Introducing Classes
Class Fundamentals
The General Form of a Class
A Simple Class
Declaring Objects
A Closer Look at new
Assigning Object Reference Variables
Introducing Methods
Adding a Method to the Box Class
Returning a Value
Adding a Method That Takes Parameters
Constructors
Parameterized Constructors
The this Keyword
Instance Variable Hiding
Garbage Collection
A Stack Class
Chapter 7 A Closer Look at Methods and Classes
Overloading Methods
Overloading Constructors
Using Objects as Parameters
A Closer Look at Argument Passing
Returning Objects
Recursion
Introducing Access Control
Understanding static
Introducing final
Arrays Revisited
Introducing Nested and Inner Classes
Exploring the String Class
Using Command-Line Arguments
Varargs: Variable-Length Arguments
Overloading Vararg Methods
Varargs and Ambiguity
Local Variable Type Inference with Reference Types
Chapter 8 Inheritance
Inheritance Basics
Member Access and Inheritance
A More Practical Example
A Superclass Variable Can Reference a Subclass
Object
Using super
Using super to Call Superclass Constructors
A Second Use for super
Creating a Multilevel Hierarchy
When Constructors Are Executed
Method Overriding
Dynamic Method Dispatch
Why Overridden Methods?
Applying Method Overriding
Using Abstract Classes
Using final with Inheritance
Using final to Prevent Overriding
Using final to Prevent Inheritance
Local Variable Type Inference and Inheritance
The Object Class
Chapter 9 Packages and Interfaces
Packages
Defining a Package
Finding Packages and CLASSPATH
A Short Package Example
Packages and Member Access
An Access Example
Importing Packages
Interfaces
Defining an Interface
Implementing Interfaces
Nested Interfaces
Applying Interfaces
Variables in Interfaces
Interfaces Can Be Extended
Default Interface Methods
Default Method Fundamentals
A More Practical Example
Multiple Inheritance Issues
Use static Methods in an Interface
Private Interface Methods
Final Thoughts on Packages and Interfaces
Chapter 10 Exception Handling
Exception-Handling Fundamentals
Exception Types
Uncaught Exceptions
Using try and catch
Displaying a Description of an Exception
Multiple catch Clauses
Nested try Statements
throw
throws
finally
Java’s Built-in Exceptions
Creating Your Own Exception Subclasses
Chained Exceptions
Three Additional Exception Features
Using Exceptions
Chapter 11 Multithreaded Programming
The Java Thread Model
Thread Priorities
Synchronization
Messaging
The Thread Class and the Runnable Interface
The Main Thread
Creating a Thread
Implementing Runnable
Extending Thread
Choosing an Approach
Creating Multiple Threads
Using isAlive( ) and join( )
Thread Priorities
Synchronization
Using Synchronized Methods
The synchronized Statement
Interthread Communication
Deadlock
Suspending, Resuming, and Stopping Threads
Obtaining a Thread’s State
Using a Factory Method to Create and Start a Thread
Using Multithreading
Chapter 12 Enumerations, Autoboxing, and Annotations
Enumerations
Enumeration Fundamentals
The values( ) and valueOf( ) Methods
Java Enumerations Are Class Types
Enumerations Inherit Enum
Another Enumeration Example
Type Wrappers
Character
Boolean
The Numeric Type Wrappers
Autoboxing
Autoboxing and Methods
Autoboxing/Unboxing Occurs in Expressions
Autoboxing/Unboxing Boolean and Character Values
Autoboxing/Unboxing Helps Prevent Errors
A Word of Warning
Annotations
Annotation Basics
Specifying a Retention Policy
Obtaining Annotations at Run Time by Use of
Reflection
The AnnotatedElement Interface
Using Default Values
Marker Annotations
Single-Member Annotations
The Built-In Annotations
Type Annotations
Repeating Annotations
Some Restrictions
Chapter 13 I/O, Try-with-Resources, and Other Topics
I/O Basics
Streams
Byte Streams and Character Streams
The Predefined Streams
Reading Console Input
Reading Characters
Reading Strings
Writing Console Output
The PrintWriter Class
Reading and Writing Files
Automatically Closing a File
The transient and volatile Modifiers
Using instanceof
strictfp
Native Methods
Using assert
Assertion Enabling and Disabling Options
Static Import
Invoking Overloaded Constructors Through this( )
A Word About Compact API Profiles
Chapter 14 Generics
What Are Generics?
A Simple Generics Example
Generics Work Only with Reference Types
Generic Types Differ Based on Their Type
Arguments
How Generics Improve Type Safety
A Generic Class with Two Type Parameters
The General Form of a Generic Class
Bounded Types
Using Wildcard Arguments
Bounded Wildcards
Creating a Generic Method
Generic Constructors
Generic Interfaces
Raw Types and Legacy Code
Generic Class Hierarchies
Using a Generic Superclass
A Generic Subclass
Run-Time Type Comparisons Within a Generic
Hierarchy
Casting
Overriding Methods in a Generic Class
Type Inference with Generics
Local Variable Type Inference and Generics
Erasure
Bridge Methods
Ambiguity Errors
Some Generic Restrictions
Type Parameters Can’t Be Instantiated
Restrictions on Static Members
Generic Array Restrictions
Generic Exception Restriction
Chapter 15 Lambda Expressions
Introducing Lambda Expressions
Lambda Expression Fundamentals
Functional Interfaces
Some Lambda Expression Examples
Block Lambda Expressions
Generic Functional Interfaces
Passing Lambda Expressions as Arguments
Lambda Expressions and Exceptions
Lambda Expressions and Variable Capture
Method References
Method References to static Methods
Method References to Instance Methods
Method References with Generics
Constructor References
Predefined Functional Interfaces
Chapter 16 Modules
Module Basics
A Simple Module Example
Compile and Run the First Module Example
A Closer Look at requires and exports
java.base and the Platform Modules
Legacy Code and the Unnamed Module
Visit https://textbookfull.com
now to explore a rich
collection of eBooks, textbook
and enjoy exciting offers!
Exporting to a Specific Module
Using requires transitive
Use Services
Service and Service Provider Basics
The Service-Based Keywords
A Module-Based Service Example
Module Graphs
Three Specialized Module Features
Open Modules
The opens Statement
requires static
Introducing jlink and Module JAR Files
Linking Files in an Exploded Directory
Linking Modular JAR Files
JMOD Files
A Brief Word About Layers and Automatic Modules
Final Thoughts on Modules

Part II The Java Library


Chapter 17 String Handling
The String Constructors
String Length
Special String Operations
String Literals
String Concatenation
String Concatenation with Other Data Types
String Conversion and toString( )
Character Extraction
charAt( )
getChars( )
getBytes( )
toCharArray( )
String Comparison
equals( ) and equalsIgnoreCase( )
regionMatches( )
startsWith( ) and endsWith( )
equals( ) Versus ==
compareTo( )
Searching Strings
Modifying a String
substring( )
concat( )
replace( )
trim( ) and strip( )
Data Conversion Using valueOf( )
Changing the Case of Characters Within a String
Joining Strings
Additional String Methods
StringBuffer
StringBuffer Constructors
length( ) and capacity( )
ensureCapacity( )
setLength( )
charAt( ) and setCharAt( )
getChars( )
append( )
insert( )
reverse( )
delete( ) and deleteCharAt( )
replace( )
substring( )
Additional StringBuffer Methods
StringBuilder
Chapter 18 Exploring java.lang
Primitive Type Wrappers
Number
Double and Float
Understanding isInfinite( ) and isNaN( )
Byte, Short, Integer, and Long
Character
Additions to Character for Unicode Code Point
Support
Boolean
Void
Process
Runtime
Memory Management
Executing Other Programs
Runtime.Version
ProcessBuilder
System
Using currentTimeMillis( ) to Time Program
Execution
Using arraycopy( )
Environment Properties
System.Logger and System.LoggerFinder
Object
Using clone( ) and the Cloneable Interface
Class
ClassLoader
Math
Trigonometric Functions
Exponential Functions
Rounding Functions
Miscellaneous Math Methods
StrictMath
Compiler
Thread, ThreadGroup, and Runnable
The Runnable Interface
Thread
ThreadGroup
ThreadLocal and InheritableThreadLocal
Package
Module
ModuleLayer
RuntimePermission
Throwable
SecurityManager
StackTraceElement
StackWalker and StackWalker.StackFrame
Enum
ClassValue
The CharSequence Interface
The Comparable Interface
The Appendable Interface
The Iterable Interface
The Readable Interface
The AutoCloseable Interface
The Thread.UncaughtExceptionHandler Interface
The java.lang Subpackages
java.lang.annotation
java.lang.instrument
java.lang.invoke
java.lang.management
java.lang.module
java.lang.ref
java.lang.reflect
Chapter 19 java.util Part 1: The Collections Framework
Collections Overview
The Collection Interfaces
The Collection Interface
The List Interface
The Set Interface
The SortedSet Interface
The NavigableSet Interface
The Queue Interface
The Deque Interface
The Collection Classes
The ArrayList Class
The LinkedList Class
The HashSet Class
The LinkedHashSet Class
The TreeSet Class
The PriorityQueue Class
The ArrayDeque Class
Random documents with unrelated
content Scribd suggests to you:
medium on which they may be stored, may contain “Defects,”
such as, but not limited to, incomplete, inaccurate or corrupt
data, transcription errors, a copyright or other intellectual
property infringement, a defective or damaged disk or other
medium, a computer virus, or computer codes that damage or
cannot be read by your equipment.

1.F.2. LIMITED WARRANTY, DISCLAIMER OF DAMAGES -


Except for the “Right of Replacement or Refund” described in
paragraph 1.F.3, the Project Gutenberg Literary Archive
Foundation, the owner of the Project Gutenberg™ trademark,
and any other party distributing a Project Gutenberg™ electronic
work under this agreement, disclaim all liability to you for
damages, costs and expenses, including legal fees. YOU
AGREE THAT YOU HAVE NO REMEDIES FOR NEGLIGENCE,
STRICT LIABILITY, BREACH OF WARRANTY OR BREACH
OF CONTRACT EXCEPT THOSE PROVIDED IN PARAGRAPH
1.F.3. YOU AGREE THAT THE FOUNDATION, THE
TRADEMARK OWNER, AND ANY DISTRIBUTOR UNDER
THIS AGREEMENT WILL NOT BE LIABLE TO YOU FOR
ACTUAL, DIRECT, INDIRECT, CONSEQUENTIAL, PUNITIVE
OR INCIDENTAL DAMAGES EVEN IF YOU GIVE NOTICE OF
THE POSSIBILITY OF SUCH DAMAGE.

1.F.3. LIMITED RIGHT OF REPLACEMENT OR REFUND - If


you discover a defect in this electronic work within 90 days of
receiving it, you can receive a refund of the money (if any) you
paid for it by sending a written explanation to the person you
received the work from. If you received the work on a physical
medium, you must return the medium with your written
explanation. The person or entity that provided you with the
defective work may elect to provide a replacement copy in lieu
of a refund. If you received the work electronically, the person or
entity providing it to you may choose to give you a second
opportunity to receive the work electronically in lieu of a refund.
If the second copy is also defective, you may demand a refund
in writing without further opportunities to fix the problem.
1.F.4. Except for the limited right of replacement or refund set
forth in paragraph 1.F.3, this work is provided to you ‘AS-IS’,
WITH NO OTHER WARRANTIES OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR
ANY PURPOSE.

1.F.5. Some states do not allow disclaimers of certain implied


warranties or the exclusion or limitation of certain types of
damages. If any disclaimer or limitation set forth in this
agreement violates the law of the state applicable to this
agreement, the agreement shall be interpreted to make the
maximum disclaimer or limitation permitted by the applicable
state law. The invalidity or unenforceability of any provision of
this agreement shall not void the remaining provisions.

1.F.6. INDEMNITY - You agree to indemnify and hold the


Foundation, the trademark owner, any agent or employee of the
Foundation, anyone providing copies of Project Gutenberg™
electronic works in accordance with this agreement, and any
volunteers associated with the production, promotion and
distribution of Project Gutenberg™ electronic works, harmless
from all liability, costs and expenses, including legal fees, that
arise directly or indirectly from any of the following which you do
or cause to occur: (a) distribution of this or any Project
Gutenberg™ work, (b) alteration, modification, or additions or
deletions to any Project Gutenberg™ work, and (c) any Defect
you cause.

Section 2. Information about the Mission of


Project Gutenberg™
Project Gutenberg™ is synonymous with the free distribution of
electronic works in formats readable by the widest variety of
computers including obsolete, old, middle-aged and new
computers. It exists because of the efforts of hundreds of
volunteers and donations from people in all walks of life.

Volunteers and financial support to provide volunteers with the


assistance they need are critical to reaching Project
Gutenberg™’s goals and ensuring that the Project Gutenberg™
collection will remain freely available for generations to come. In
2001, the Project Gutenberg Literary Archive Foundation was
created to provide a secure and permanent future for Project
Gutenberg™ and future generations. To learn more about the
Project Gutenberg Literary Archive Foundation and how your
efforts and donations can help, see Sections 3 and 4 and the
Foundation information page at www.gutenberg.org.

Section 3. Information about the Project


Gutenberg Literary Archive Foundation
The Project Gutenberg Literary Archive Foundation is a non-
profit 501(c)(3) educational corporation organized under the
laws of the state of Mississippi and granted tax exempt status by
the Internal Revenue Service. The Foundation’s EIN or federal
tax identification number is 64-6221541. Contributions to the
Project Gutenberg Literary Archive Foundation are tax
deductible to the full extent permitted by U.S. federal laws and
your state’s laws.

The Foundation’s business office is located at 809 North 1500


West, Salt Lake City, UT 84116, (801) 596-1887. Email contact
links and up to date contact information can be found at the
Foundation’s website and official page at
www.gutenberg.org/contact

Section 4. Information about Donations to


the Project Gutenberg Literary Archive
Foundation
Project Gutenberg™ depends upon and cannot survive without
widespread public support and donations to carry out its mission
of increasing the number of public domain and licensed works
that can be freely distributed in machine-readable form
accessible by the widest array of equipment including outdated
equipment. Many small donations ($1 to $5,000) are particularly
important to maintaining tax exempt status with the IRS.

The Foundation is committed to complying with the laws


regulating charities and charitable donations in all 50 states of
the United States. Compliance requirements are not uniform
and it takes a considerable effort, much paperwork and many
fees to meet and keep up with these requirements. We do not
solicit donations in locations where we have not received written
confirmation of compliance. To SEND DONATIONS or
determine the status of compliance for any particular state visit
www.gutenberg.org/donate.

While we cannot and do not solicit contributions from states


where we have not met the solicitation requirements, we know
of no prohibition against accepting unsolicited donations from
donors in such states who approach us with offers to donate.

International donations are gratefully accepted, but we cannot


make any statements concerning tax treatment of donations
received from outside the United States. U.S. laws alone swamp
our small staff.

Please check the Project Gutenberg web pages for current


donation methods and addresses. Donations are accepted in a
number of other ways including checks, online payments and
credit card donations. To donate, please visit:
www.gutenberg.org/donate.

Section 5. General Information About Project


Gutenberg™ electronic works
Professor Michael S. Hart was the originator of the Project
Gutenberg™ concept of a library of electronic works that could
be freely shared with anyone. For forty years, he produced and
distributed Project Gutenberg™ eBooks with only a loose
network of volunteer support.

Project Gutenberg™ eBooks are often created from several


printed editions, all of which are confirmed as not protected by
copyright in the U.S. unless a copyright notice is included. Thus,
we do not necessarily keep eBooks in compliance with any
particular paper edition.

Most people start at our website which has the main PG search
facility: www.gutenberg.org.

This website includes information about Project Gutenberg™,


including how to make donations to the Project Gutenberg
Literary Archive Foundation, how to help produce our new
eBooks, and how to subscribe to our email newsletter to hear
about new eBooks.

You might also like