Home > Store

Java¿ for Programmers, 2nd Edition

Register your product to gain access to bonus material or receive a coupon.

Java¿ for Programmers, 2nd Edition


  • Sorry, this book is no longer in print.
Not for Sale


  • Copyright 2011
  • Edition: 2nd
  • Book
  • ISBN-10: 0-13-282154-0
  • ISBN-13: 978-0-13-282154-4

The professional programmer’s Deitel® guide to Java development and the powerful Java platform

Written for programmers with a background in high-level language programming, this book applies the Deitel signature live-code approach to teaching programming and explores the Java language and Java APIs in depth. The book presents concepts in the context of fully tested programs, complete with syntax shading, code highlighting, line-by-line code walkthroughs and program outputs. The book features 200+ complete Java programs with 18,000+ lines of proven Java code, and hundreds of tips that will help you build robust applications.

Start with an introduction to Java using an early classes and objects approach, then rapidly move on to more advanced topics, including GUI, graphics, exception handling, generics, collections, JDBC™, web-application development with JavaServer™ Faces, web services and more. You’ll enjoy the Deitels’ classic treatment of object-oriented programming and the OOD/UML® ATM case study, including a complete Java implementation. When you’re finished, you’ll have everything you need to build object-oriented Java applications.

Practical, example-rich coverage of:

  • Java SE 7
  • Classes, Objects, Encapsulation, Inheritance, Polymorphism, Interfaces
  • Integrated OOP Case Studies
  • Industrial-Strength, 95-Page OOD/UML® ATM Case Study
  • JavaServer Faces 2.0, Ajax-Enabled Web Apps, Web Services, Networking
  • JDBC, SQL, Java DB, MySQL®
  • Threads and the Concurrency APIs
  • I/O, Types, Control Statements, Methods
  • Arrays, Generics, Collections
  • Exception Handling, Files
  • GUI, Graphics, GroupLayout, JDIC
  • Using the Debugger and the API Docs
  • Online, Three-Chapter Introduction to Android App Development

Visit www.deitel.com

For information on Deitel’s Dive Into® Series instructor-led training courses offered at customer sites worldwide visit www.deitel.com/training or write to deitel@deitel.com

Download code examples

Check out the growing list of programming Resource Centers

Join the Deitel Twitter (@deitel ) and Facebook (www.deitel.com/DeitelFan) communities.

To receive updates for this book, subscribe to the free Deitel® Buzz Online e-mail newsletter at www.deitel.com/newsletter/subscribe.html

Comments from Recent Editions’ Reviewers

“Introduces good design practices and methodologies right from the beginning. An excellent starting point for developing high-quality robust Java applications.”

–Simon Ritter, Oracle Corporation

“Updated to reflect the state of the art in Java technologies; its deep and crystal clear explanations make it indispensable. Excellent coverage of exception handling. A complete introduction to Java networking. Great coverage of multithreading.”

–José Antonio González Seco, Parliament of Andalusia

“Of immense value to practitioners of the object-oriented approach. Demystifies inheritance and polymorphism, and illustrates their use in getting elegant, simple and maintainable code. The OO design case study presents the object-oriented approach, from requirements to Java code.”

–Vinod Varma, Astra Infotech Private Limited

“ I wish I had this book when I was learning how to program! Good introduction to UML and the software engineering process.”

–Lance Andersen, Oracle

“You’ll be well on your way to becoming a great Java programmer with this book. The polymorphism and generic collections chapters are excellent.”

–Peter Pilgrim, Java Champion, Consultant

“The transition from design to implementation is explained powerfully–the reader can easily understand the design issues and how to implement them in Java.”

–S. Sivakumar, Astra Infotech Private Limited

“Gives programmers the benefit of the wisdom derived from many years of software development experience!”

–Edward F. Gehringer, North Carolina State University

Sample Content

Online Sample Chapter

Object-Oriented Programming: Polymorphism

Table of Contents

Preface          xxi

Before You Begin         xxix

Chapter 1: Introduction         1

1.1  Introduction    2

1.2  Introduction to Object Technology   2

1.3  Open Source Software   5

1.4  Java and a Typical Java Development Environment   7

1.5  Test-Driving a Java Application   11

1.6  Web 2.0: Going Social   15

1.7  Software Technologies  18

1.8  Keeping Up to Date with Information Technologies   20

1.9  Wrap-Up   21

Chapter 2: Introduction to Java Applications         22

2.1  Introduction   23

2.2  Your First Program in Java: Printing a Line of Text  23

2.3  Modifying Your First Java Program  27

2.4  Displaying Text with printf   29

2.5  Another Application: Adding Integers  30

2.6  Arithmetic   34

2.7  Decision Making: Equality and Relational Operators  35

2.8  Wrap-Up  38

Chapter 3: Introduction to Classes, Objects, Methods and Strings         39

3.1  Introduction  40

3.2  Declaring a Class with a Method and Instantiating an Object of a Class 40

3.3  Declaring a Method with a Parameter 44

3.4  Instance Variables, set Methods and get Methods 47

3.5  Primitive Types vs. Reference Types 52

3.6  Initializing Objects with Constructors 53

3.7  Floating-Point Numbers and Type double  56

3.8  Wrap-Up 60

Chapter 4: Control Statements: Part 1         61

4.1   Introduction   62

4.2   Control Structures   62

4.3   if Single-Selection Statement   64

4.4   if…else Double-Selection Statement   65

4.5   while Repetition Statement   68

4.6   Counter-Controlled Repetition   70

4.7   Sentinel-Controlled Repetition   73

4.8   Nested Control Statements   78

4.9   Compound Assignment Operators   81

4.10 Increment and Decrement Operators   82

4.11 Primitive Types 85 4.12 Wrap-Up   85

Chapter 5: Control Statements: Part 2         86

5.1  Introduction    87

5.2  Essentials of Counter-Controlled Repetition   87

5.3  for Repetition Statement   89

5.4  Examples Using the for Statement   92

5.5  do…while Repetition Statement   96

5.6  switch Multiple-Selection Statement   98

5.7  break and continue Statements    105

5.8  Logical Operators   107

5.9  Wrap-Up   113

Chapter 6: Methods: A Deeper Look          114

6.1   Introduction   115

6.2   Program Modules in Java  115

6.3   static Methods, static Fields and Class Math  115

6.4   Declaring Methods with Multiple Parameters  118

6.5   Notes on Declaring and Using Methods  121

6.6   Argument Promotion and Casting  122

6.7   Java API Packages  123

6.8   Case Study: Random-Number Generation  125

6.9   Case Study: A Game of Chance; Introducing Enumerations  130

6.10 Scope of Declarations   134

6.11 Method Overloading   137

6.12 Wrap-Up   139

Chapter 7: Arrays and ArrayLists         140

7.1   Introduction    141

7.2   Arrays   141

7.3   Declaring and Creating Arrays   143

7.4   Examples Using Arrays    144

7.5   Case Study: Card Shuffling and Dealing Simulation   153

7.6   Enhanced for Statement   157

7.7   Passing Arrays to Methods   159

7.8   Case Study: Class GradeBook Using an Array to Store Grades   162

7.9   Multidimensional Arrays   167

7.10 Case Study: Class GradeBook Using a Two-Dimensional Array   171

7.11 Variable-Length Argument Lists   177

7.12 Using Command-Line Arguments    178

7.13 Class Arrays   180

7.14 Introduction to Collections and Class ArrayList    183

7.15 Wrap-Up   186

Chapter 8: Classes and Objects: A Deeper Look         187

8.1   Introduction   188

8.2   Time Class Case Study   188

8.3   Controlling Access to Members   192

8.4   Referring to the Current Object’s Members with the this Reference   193

8.5   Time Class Case Study: Overloaded Constructors   195

8.6   Default and No-Argument Constructors   201

8.7   Notes on Set and Get Methods    202

8.8   Composition    203

8.9   Enumerations    206

8.10 Garbage Collection and Method finalize    209

8.11 static Class Members   210

8.12 static Import   213

8.13 final Instance Variables   214

8.14 Time Class Case Study: Creating Packages   215

8.15 Package Access   221

8.16 Wrap-Up   222

Chapter 9: Object-Oriented Programming: Inheritance         224

9.1  Introduction    225

9.2  Superclasses and Subclasses   226

9.3  protected Members   228

9.4  Relationship between Superclasses and Subclasses   228

9.5  Constructors in Subclasses   250

9.6  Software Engineering with Inheritance   251

9.7  Class Object   252

9.8  Wrap-Up   253

Chapter 10: Object-Oriented Programming: Polymorphism         254

10.1   Introduction   255

10.2   Polymorphism Examples   257

10.3   Demonstrating Polymorphic Behavior    258

10.4   Abstract Classes and Methods   260

10.5   Case Study: Payroll System Using Polymorphism   262

10.6   final Methods and Classes   278

10.7   Case Study: Creating and Using Interfaces   279

10.8   Wrap-Up   290

Chapter 11: Exception Handling: A Deeper Look          292

11.1   Introduction   293

11.2   Example: Divide by Zero without Exception Handling   293

11.3   Example: Handling ArithmeticExceptions and InputMismatchExceptions   296

11.4   When to Use Exception Handling   301

11.5   Java Exception Hierarchy   301

11.6   finally Block   304

11.7   Stack Unwinding and Obtaining Information from an Exception Object   308

11.8   Chained Exceptions   311

11.9   Declaring New Exception Types   313

11.10 Preconditions and Postconditions   314

11.11 Assertions    315

11.12 (New in Java SE 7) Multi-catch: Handling Multiple Exceptions in One catch   316

11.13 (New in Java SE 7) try-with-Resources: Automatic Resource Deallocation   316

11.14 Wrap-Up   317

Chapter 12: ATM Case Study, Part 1: Object-Oriented Design with the UML         318

12.1  Case Study Introduction   319

12.2  Examining the Requirements Document   319

12.3  Identifying the Classes in a Requirements Document   327

12.4  Identifying Class Attributes   333

12.5  Identifying Objects’ States and Activities   338

12.6  Identifying Class Operations   342

12.7  Indicating Collaboration Among Objects   348

12.8  Wrap-Up   355

Chapter 13: ATM Case Study Part 2: Implementing an Object-Oriented Design         359

13.1  Introduction 3  60

13.2  Starting to Program the Classes of the ATM System   360

13.3  Incorporating Inheritance and Polymorphism into the ATM System   365

13.4  ATM Case Study Implementation   371

13.5  Wrap-Up   395

Chapter 14: GUI Components: Part 1          398

14.1   Introduction   399

14.2   Java’s New Nimbus Look-and-Feel   400

14.3   Simple GUI-Based Input/Output with JOptionPane   401

14.4   Overview of Swing Components   404

14.5   Displaying Text and Images in a Window   406

14.6   Text Fields and an Introduction to Event Handling with Nested Classes   410

14.7   Common GUI Event Types and Listener Interfaces   416

14.8   How Event Handling Works   418

14.9   JButton   420

14.10 Buttons That Maintain State   423

14.11 JComboBox; Using an Anonymous Inner Class for Event Handling   429

14.12 JList 433

14.13 Multiple-Selection Lists   435

14.14 Mouse Event Handling   438

14.15 Adapter Classes   443

14.16 JPanel Subclass for Drawing with the Mouse   446

14.17 Key Event Handling   450

14.18 Introduction to Layout Managers   453

14.19 Using Panels to Manage More Complex Layouts   462

14.20 JTextArea  464

14.21 Wrap-Up   467

Chapter 15: Graphics and Java 2D         468

15.1  Introduction   469

15.2  Graphics Contexts and Graphics Objects   471

15.3  Color Control   472

15.4  Manipulating Fonts   479

15.5  Drawing Lines, Rectangles and Ovals   484

15.6  Drawing Arcs   488

15.7  Drawing Polygons and Polylines   491

15.8  Java 2D API   494

15.9  Wrap-Up   501

Chapter 16: Strings, Characters and Regular Expressions         502

16.1  Introduction   503

16.2  Fundamentals of Characters and Strings  503

16.3  Class String  504

16.4  Class StringBuilder    517

16.5  Class Character   524

16.6  Tokenizing Strings   529

16.7  Regular Expressions, Class Pattern and Class Matcher   530

16.8  Wrap-Up   538

Chapter 17: Files, Streams and Object Serialization         539

17.1  Introduction   540

17.2  Files and Streams   540

17.3  Class File   542

17.4  Sequential-Access Text Files   546

17.5  Object Serialization   562

17.6  Additional java.io Classes   571

17.7  Opening Files with JFileChooser   574

17.8  Wrap-Up   577

Chapter 18: Generic Collections         578

18.1   Introduction   579

18.2   Collections Overview   579

18.3   Type-Wrapper Classes for Primitive Types   580

18.4   Autoboxing and Auto-Unboxing   581

18.5   Interface Collection and Class Collections   581

18.6   Lists   582

18.7   Collections Methods  590

18.8   Stack Class of Package java.util 602

18.9   Class PriorityQueue and Interface Queue  604

18.10 Sets   605

18.11 Maps   608

18.12   Properties Class 612

18.13 Synchronized Collections   615

18.14 Unmodifiable Collections   615

18.15 Abstract Implementations   616

18.16 Wrap-Up   616

Chapter 19: Generic Classes and Methods         618

19.1   Introduction   619

19.2   Motivation for Generic Methods   619

19.3   Generic Methods: Implementation and Compile-Time Translation   622

19.4   Additional Compile-Time Translation Issues: Methods That Use a Type Parameter as the Return Type   625

19.5   Overloading Generic Methods   628

19.6   Generic Classes  628

19.7   Raw Types  636

19.8   Wildcards in Methods That Accept Type Parameters   640

19.9   Generics and Inheritance: Notes   644

19.10 Wrap-Up   645

Chapter 20: Applets and Java Web Start         646

20.1  Introduction  647

20.2  Sample Applets Provided with the JDK  648

20.3  Simple Java Applet: Drawing a String  652

20.4  Applet Life-Cycle Methods   656

20.5  Initialization with Method init  657

20.6  Sandbox Security Model   659

20.7  Java Web Start and the Java Network Launch Protocol (JNLP)   661

20.8  Wrap-Up   666

Chapter 21: Multimedia: Applets and Applications         667

21.1  Introduction   668

21.2  Loading, Displaying and Scaling Images  669

21.3  Animating a Series of Images   675

21.4  Image Maps   682

21.5  Loading and Playing Audio Clips   685

21.6  Playing Video and Other Media with Java Media Framework   688

21.7  Wrap-Up   692

21.8  Web Resources   692

Chapter 22: GUI Components: Part 2         694

22.1   Introduction   695

22.2   JSlider   695

22.3   Windows: Additional Notes   699

22.4   Using Menus with Frames   700

22.5   JPopupMenu   708

22.6   Pluggable Look-and-Feel   711

22.7   JDesktopPane and JInternalFrame   716

22.8   JTabbedPane   720

22.9   Layout Managers: BoxLayout and GridBagLayout   722

22.10 Wrap-Up  734

Chapter 23: Multithreading         735

23.1   Introduction   736

23.2   Thread States: Life Cycle of a Thread   738

23.3   Creating and Executing Threads with Executor Framework   741

23.4   Thread Synchronization   744

23.5   Producer/Consumer Relationship without Synchronization   752

23.6   Producer/Consumer Relationship: ArrayBlockingQueue   760

23.7   Producer/Consumer Relationship with Synchronization   763

23.8   Producer/Consumer Relationship: Bounded Buffers   769

23.9   Producer/Consumer Relationship: The Lock and Condition Interfaces   776

23.10 Concurrent Collections Overview   783

23.11 Multithreading with GUI   785

23.12 Interfaces Callable and Future   799

23.13 Java SE 7: Fork/Join Framework  799

23.14 Wrap-Up   800

Chapter 24: Networking         801

24.1   Introduction   802

24.2   Manipulating URLs   803

24.3   Reading a File on a Web Server   808

24.4   Establishing a Simple Server Using Stream Sockets   811

24.5   Establishing a Simple Client Using Stream Sockets  813

24.6   Client/Server Interaction with Stream Socket Connections   813

24.7   Datagrams: Connectionless Client/Server Interaction   825

24.8   Client/Server Tic-Tac-Toe Using a Multithreaded Server   833

24.9   [Web Bonus] Case Study: DeitelMessenger   848

24.10 Wrap-Up   848

Chapter 25: Accessing Databases with JDBC          849

25.1   Introduction   850

25.2   Relational Databases   851

25.3   Relational Database Overview: The books Database   852

25.4   SQL   855

25.5   Instructions for Installing MySQL and MySQL Connector/J   864

25.6   Instructions for Setting Up a MySQL User Account   865

25.7   Creating Database books in MySQL   866

25.8   Manipulating Databases with JDBC   867

25.9   RowSet Interface   885

25.10 Java DB/Apache Derby   887

25.11 PreparedStatements   889

25.12 Stored Procedures   904

25.13 Transaction Processing   905

25.14 Wrap-Up   905

25.15 Web Resources   906

Chapter 26: JavaServer™ Faces Web Apps: Part 1         907

26.1 Introduction   908

26.2 HyperText Transfer Protocol (HTTP) Transactions   909

26.3 Multitier Application Architecture   912

26.4 Your First JSF Web App   913

26.5 Model-View-Controller Architecture of JSF Apps   922

26.6 Common JSF Components   922

26.7 Validation Using JSF Standard Validators   926

26.8 Session Tracking   933

26.9 Wrap-Up   941

Chapter 27: JavaServer™ Faces Web Apps: Part 2         942

27.1 Introduction   943

27.2 Accessing Databases in Web Apps   943

27.3 Ajax   956

27.4 Adding Ajax Functionality to the Validation App   958

27.5 Wrap-Up   961

Chapter 28: Web Services          962

28.1   Introduction   963

28.2   Web Service Basics   965

28.3   Simple Object Access Protocol (SOAP)   965

28.4   Representational State Transfer (REST)   965

28.5   JavaScript Object Notation (JSON)   966

28.6   Publishing and Consuming SOAP-Based Web Services   966

28.7   Publishing and Consuming REST-Based XML Web Services  978

28.8   Publishing and Consuming REST-Based JSON Web Services  983

28.9   Session Tracking in a SOAP Web Service  987

28.10 Consuming a Database-Driven SOAP Web Service  1002

28.11 Equation Generator: Returning User-Defined Types  1009

28.12 Wrap-Up  1020

Appendix A: Operator Precedence Chart         1022

Appendix B: ASCII Character Set         1024

Appendix C: Keywords and Reserved Words         1025

Appendix D: Primitive Types         1026

Appendix E: Using the Java API Documentation          1027

E.1 Introduction   1027

E.2 Navigating the Java API   1028

Appendix F: Using the Debugger         1036

F.1 Introduction   1037

F.2 Breakpoints and the run, stop, cont and print Commands   1037

F.3 The print and set Commands   1041

F.4 Controlling Execution Using the step, step up and next Commands   1043

F.5 The watch Command   1046

F.6 The clear Command   1049

F.7 Wrap-Up   1051

Appendix G: Formatted Output        1052

G.1   Introduction   1053

G.2   Streams   1053

G.3   Formatting Output with printf   1053

G.4   Printing Integers   1054

G.5   Printing Floating-Point Numbers   1055

G.6   Printing Strings and Characters   1057

G.7   Printing Dates and Times   1058

G.8   Other Conversion Characters   1060

G.9   Printing with Field Widths and Precisions   1062

G.10 Using Flags in the printf Format String  1064

G.11 Printing with Argument Indices  1068

G.12 Printing Literals and Escape Sequences  1068

G.13 Formatting Output with Class Formatter   1069

G.14 Wrap-Up   1070

Appendix H: GroupLayout         1071

H.1 Introduction   1071

H.2 GroupLayout Basics   1071

H.3 Building a ColorChooser   1072

H.4 GroupLayout Web Resources   1082

Appendix I: Java Desktop Integration Components         1083

I.1 Introduction   1083

I.2 Splash Screens   1083

I.3 Desktop Class  1085

I.4 Tray Icons   1087

Appendix J: UML 2: Additional Diagram Types         1089

J.1 Introduction  1089

J.2 Additional Diagram Types 1089

Index         1091


Submit Errata

More Information

InformIT Promotional Mailings & Special Offers

I would like to receive exclusive offers and hear about products from InformIT and its family of brands. I can unsubscribe at any time.


Pearson Education, Inc., 221 River Street, Hoboken, New Jersey 07030, (Pearson) presents this site to provide information about products and services that can be purchased through this site.

This privacy notice provides an overview of our commitment to privacy and describes how we collect, protect, use and share personal information collected through this site. Please note that other Pearson websites and online products and services have their own separate privacy policies.

Collection and Use of Information

To conduct business and deliver products and services, Pearson collects and uses personal information in several ways in connection with this site, including:

Questions and Inquiries

For inquiries and questions, we collect the inquiry or question, together with name, contact details (email address, phone number and mailing address) and any other additional information voluntarily submitted to us through a Contact Us form or an email. We use this information to address the inquiry and respond to the question.

Online Store

For orders and purchases placed through our online store on this site, we collect order details, name, institution name and address (if applicable), email address, phone number, shipping and billing addresses, credit/debit card information, shipping options and any instructions. We use this information to complete transactions, fulfill orders, communicate with individuals placing orders or visiting the online store, and for related purposes.


Pearson may offer opportunities to provide feedback or participate in surveys, including surveys evaluating Pearson products, services or sites. Participation is voluntary. Pearson collects information requested in the survey questions and uses the information to evaluate, support, maintain and improve products, services or sites, develop new products and services, conduct educational research and for other purposes specified in the survey.

Contests and Drawings

Occasionally, we may sponsor a contest or drawing. Participation is optional. Pearson collects name, contact information and other information specified on the entry form for the contest or drawing to conduct the contest or drawing. Pearson may collect additional personal information from the winners of a contest or drawing in order to award the prize and for tax reporting purposes, as required by law.


If you have elected to receive email newsletters or promotional mailings and special offers but want to unsubscribe, simply email information@informit.com.

Service Announcements

On rare occasions it is necessary to send out a strictly service related announcement. For instance, if our service is temporarily suspended for maintenance we might send users an email. Generally, users may not opt-out of these communications, though they can deactivate their account information. However, these communications are not promotional in nature.

Customer Service

We communicate with users on a regular basis to provide requested services and in regard to issues relating to their account we reply via email or phone in accordance with the users' wishes when a user submits their information through our Contact Us form.

Other Collection and Use of Information

Application and System Logs

Pearson automatically collects log data to help ensure the delivery, availability and security of this site. Log data may include technical information about how a user or visitor connected to this site, such as browser type, type of computer/device, operating system, internet service provider and IP address. We use this information for support purposes and to monitor the health of the site, identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents and appropriately scale computing resources.

Web Analytics

Pearson may use third party web trend analytical services, including Google Analytics, to collect visitor information, such as IP addresses, browser types, referring pages, pages visited and time spent on a particular site. While these analytical services collect and report information on an anonymous basis, they may use cookies to gather web trend information. The information gathered may enable Pearson (but not the third party web trend services) to link information with application and system log data. Pearson uses this information for system administration and to identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents, appropriately scale computing resources and otherwise support and deliver this site and its services.

Cookies and Related Technologies

This site uses cookies and similar technologies to personalize content, measure traffic patterns, control security, track use and access of information on this site, and provide interest-based messages and advertising. Users can manage and block the use of cookies through their browser. Disabling or blocking certain cookies may limit the functionality of this site.

Do Not Track

This site currently does not respond to Do Not Track signals.


Pearson uses appropriate physical, administrative and technical security measures to protect personal information from unauthorized access, use and disclosure.


This site is not directed to children under the age of 13.


Pearson may send or direct marketing communications to users, provided that

  • Pearson will not use personal information collected or processed as a K-12 school service provider for the purpose of directed or targeted advertising.
  • Such marketing is consistent with applicable law and Pearson's legal obligations.
  • Pearson will not knowingly direct or send marketing communications to an individual who has expressed a preference not to receive marketing.
  • Where required by applicable law, express or implied consent to marketing exists and has not been withdrawn.

Pearson may provide personal information to a third party service provider on a restricted basis to provide marketing solely on behalf of Pearson or an affiliate or customer for whom Pearson is a service provider. Marketing preferences may be changed at any time.

Correcting/Updating Personal Information

If a user's personally identifiable information changes (such as your postal address or email address), we provide a way to correct or update that user's personal data provided to us. This can be done on the Account page. If a user no longer desires our service and desires to delete his or her account, please contact us at customer-service@informit.com and we will process the deletion of a user's account.


Users can always make an informed choice as to whether they should proceed with certain services offered by InformIT. If you choose to remove yourself from our mailing list(s) simply visit the following page and uncheck any communication you no longer want to receive: www.informit.com/u.aspx.

Sale of Personal Information

Pearson does not rent or sell personal information in exchange for any payment of money.

While Pearson does not sell personal information, as defined in Nevada law, Nevada residents may email a request for no sale of their personal information to NevadaDesignatedRequest@pearson.com.

Supplemental Privacy Statement for California Residents

California residents should read our Supplemental privacy statement for California residents in conjunction with this Privacy Notice. The Supplemental privacy statement for California residents explains Pearson's commitment to comply with California law and applies to personal information of California residents collected in connection with this site and the Services.

Sharing and Disclosure

Pearson may disclose personal information, as follows:

  • As required by law.
  • With the consent of the individual (or their parent, if the individual is a minor)
  • In response to a subpoena, court order or legal process, to the extent permitted or required by law
  • To protect the security and safety of individuals, data, assets and systems, consistent with applicable law
  • In connection the sale, joint venture or other transfer of some or all of its company or assets, subject to the provisions of this Privacy Notice
  • To investigate or address actual or suspected fraud or other illegal activities
  • To exercise its legal rights, including enforcement of the Terms of Use for this site or another contract
  • To affiliated Pearson companies and other companies and organizations who perform work for Pearson and are obligated to protect the privacy of personal information consistent with this Privacy Notice
  • To a school, organization, company or government agency, where Pearson collects or processes the personal information in a school setting or on behalf of such organization, company or government agency.


This web site contains links to other sites. Please be aware that we are not responsible for the privacy practices of such other sites. We encourage our users to be aware when they leave our site and to read the privacy statements of each and every web site that collects Personal Information. This privacy statement applies solely to information collected by this web site.

Requests and Contact

Please contact us about this Privacy Notice or if you have any requests or questions relating to the privacy of your personal information.

Changes to this Privacy Notice

We may revise this Privacy Notice through an updated posting. We will identify the effective date of the revision in the posting. Often, updates are made to provide greater clarity or to comply with changes in regulatory requirements. If the updates involve material changes to the collection, protection, use or disclosure of Personal Information, Pearson will provide notice of the change through a conspicuous notice on this site or other appropriate way. Continued use of the site after the effective date of a posted revision evidences acceptance. Please contact us if you have questions or concerns about the Privacy Notice or any objection to any revisions.

Last Update: November 17, 2020