Home > Store

Java for Programmers

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

Java for Programmers


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


  • Copyright 2009
  • Dimensions: 7" x 9-1/8"
  • Edition: 1st
  • Book
  • ISBN-10: 0-13-700129-0
  • ISBN-13: 978-0-13-700129-3


  • Classes, Objects, Encapsulation, Inheritance, Polymorphism, Interfaces, Nested Classes
  • Integrated OOP Case Studies: Time, GradeBook, Employee
  • Industrial-Strength, 95-Page OOD/UML® 2 ATM Case Study
  • JavaServer™ Faces, Ajax-Enabled Web Applications, 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
  • And more…
  • For information on Deitel’s Dive Into® Series corporate training courses offered at customer sites worldwide (or write to deitel@deitel.com)
  • Download code examples
  • Check out the growing list of programming, Web 2.0, and software-related Resource Centers
  • To receive updates for this book, subscribe to the free DEITEL® BUZZ ONLINE e-mail newsletter at  www.deitel.com/newsletter/subscribe.html
  • Read archived issues of the DEITEL® BUZZ ONLINE
The practicing 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 the concepts in the context of fully tested programs, complete with syntax shading, code highlighting, line-by-line code descriptions and program outputs. The book features 220 Java applications with over 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.

The DEITEL® Developer Series is designed for practicing programmers. The series presents focused treatments of emerging technologies, including Java™, C++, .NET, web services, Internet and web development and more.
“Presenting software engineering side by side with core Java concepts is highly refreshing; gives readers insight into how professional software is developed.”—Clark Richey (Java Champion), RABA Technologies, LLC.

“The quality of the design and code examples is second to none!”—Terrell Hull, Enterprise Architect

“The JDBC chapter is very hands on. I like the fact that Java DB/Apache Derby is used in the examples, which makes it really simple to learn and understand JDBC.”—Sandeep Konchady, Sun Microsystems

“Equips you with the latest web application technologies. Examples are impressive and real! Want to develop a simple address locator with Ajax and JSF? Jump to Chapter 22.”—Vadiraj Deshpande, Sun Microsystems

“Covers web services with Java SE 6 and Java EE 5 in a real-life, example-based, friendly approach. The Deitel Web Services Resource Center is really good, even for advanced developers.”—Sanjay Dhamankar, Sun Microsystems

“Mandatory book for any serious Java EE developer looking for improved productivity: JSF development, visual web development and web services development have never been easier.”—Ludovic Chapenois, Sun Microsystems

“I teach Java programming and object-oriented analysis and design. The OOD/UML 2 case study is the best presentation of the ATM example I have seen.”—Craig W. Slinkman, University of Texas–Arlington

“Introduces OOP and UML 2 early. The conceptual level is perfect. No other book comes close to its quality of organization and presentation. The live-code approach to presenting exemplary code makes a big difference in the learning outcome.”—Walt Bunch, Chapman University/

Sample Content

Online Sample Chapter

Object-Oriented Programming: Polymorphism

Table of Contents

Preface      xxiii
Before You Begin      xxxiii

Chapter 1: Introduction      1
1.1   Introduction 2
1.2   The Internet and the World Wide Web 3
1.3   History of C and C++ 3
1.4   History of Java 4
1.5   Java Class Libraries 4
1.6   Typical Java Development Environment 5
1.7   Notes about Java and Java for Programmers 8
1.8   Test-Driving a Java Application 9
1.9   Software Engineering Case Study: Introduction to Object Technology and the UML 13
1.10 Web 2.0    17
1.11 Software Technologies 18
1.12 Wrap-Up 19
1.13 Web Resources 20

Chapter 2: Introduction to Java Applications      22
2.1 Introduction 23
2.2 A First Program in Java: Printing a Line of Text 23
2.3 Modifying Our First Java Program 29
2.4 Displaying Text with printf 32
2.5 Another Java Application: Adding Integers 33
2.6 Arithmetic 37
2.7 Decision Making: Equality and Relational Operators 39
2.8 (Optional) Software Engineering Case Study: Examining the Requirements Document 44
2.9 Wrap-Up 53

Chapter 3: Introduction to Classes and Objects      54
3.1   Introduction 55
3.2   Classes, Objects, Methods and Instance Variables 55
3.3   Declaring a Class with a Method and Instantiating an Object of a Class 57
3.4   Declaring a Method with a Parameter 61
3.5   Instance Variables, set Methods and get Methods 64
3.6   Primitive Types vs. Reference Types 69
3.7   Initializing Objects with Constructors 70
3.8   Floating-Point Numbers and Type double 73
3.9   (Optional) Software Engineering Case Study: Identifying the Classes in a Requirements Document 78
3.10 Wrap-Up 86

Chapter 4: Control Statements: Part 1      87
4.1   Introduction 88
4.2   Control Structures 88
4.3   if Single-Selection Statement 91
4.4   if…else Double-Selection Statement 91
4.5   while Repetition Statement 95
4.6   Counter-Controlled Repetition 96
4.7   Sentinel-Controlled Repetition 100
4.8   Nested Control Statements 106
4.9   Compound Assignment Operators 109
4.10 Increment and Decrement Operators 109
4.11 Primitive Types 112
4.12 (Optional) Software Engineering Case Study: Identifying Class Attributes 113
4.13 Wrap-Up 118

Chapter 5: Control Statements: Part 2     119
5.1   Introduction 120
5.2   Essentials of Counter-Controlled Repetition 120
5.3   for Repetition Statement 122
5.4   Examples Using the for Statement 125
5.5   do…while Repetition Statement 130
5.6   switch Multiple-Selection Statement 132
5.7   break and continue Statements 139
5.8   Logical Operators 141
5.9   (Optional) Software Engineering Case Study: Identifying Objects’ States and Activities 147
5.10 Wrap-Up 152

Chapter 6: Methods: A Deeper Look      153
6.1   Introduction 154
6.2   Program Modules in Java 155
6.3   static Methods, static Fields and Class Math 155
6.4   Declaring Methods with Multiple Parameters 158
6.5   Notes on Declaring and Using Methods 162
6.6   Method-Call Stack and Activation Records 163
6.7   Argument Promotion and Casting 164
6.8   Java API Packages 165
6.9   Case Study: Random-Number Generation 167
6.10 Case Study: A Game of Chance (Introducing Enumerations) 173
6.11 Scope of Declarations 177
6.12 Method Overloading 180
6.13 Introduction to Recursion 183
6.14 Recursion Concepts 184
6.15 Example Using Recursion: Factorials 184
6.16 Example Using Recursion: Fibonacci Series 187
6.17 Recursion and the Method-Call Stack 190
6.18 Recursion vs. Iteration 192
6.19 (Optional) Software Engineering Case Study: Identifying Class Operations 194
6.20 Wrap-Up 201

Chapter 7: Arrays      202
7.1   Introduction 203
7.2   Arrays 203
7.3   Declaring and Creating Arrays 205
7.4   Examples Using Arrays 206
7.5   Case Study: Card Shuffling and Dealing Simulation 215
7.6   Enhanced for Statement 219
7.7   Passing Arrays to Methods 220
7.8   Case Study: Class GradeBook Using an Array to Store Grades 224
7.9   Multidimensional Arrays 229
7.10 Case Study: Class GradeBook Using a Two-Dimensional Array 233
7.11 Variable-Length Argument Lists 239
7.12 Using Command-Line Arguments 240
7.13 (Optional) Software Engineering Case Study: Collaboration Among Objects 242
7.14 Wrap-Up 249

Chapter 8: Classes and Objects: A Deeper Look      251
8.1   Introduction 252
8.2   Time Class Case Study 253
8.3   Controlling Access to Members 256
8.4   Referring to the Current Object’s Members with the this Reference 257
8.5   Time Class Case Study: Overloaded Constructors 259
8.6   Default and No-Argument Constructors 265
8.7   Notes on Set and Get Methods 266
8.8   Composition 267
8.9   Enumerations 270
8.10 Garbage Collection and Method finalize 273
8.11 static Class Members 274
8.12 static Import 278
8.13 final Instance Variables 279
8.14 Software Reusability 282
8.15 Data Abstraction and Encapsulation 283
8.16 Time Class Case Study: Creating Packages 284
8.17 Package Access 290
8.18 (Optional) Software Engineering Case Study: Starting to Program the Classes of the ATM System 291
8.19 Wrap-Up 297

Chapter 9: Object-Oriented Programming: Inheritance      298
9.1 Introduction 299
9.2 Superclasses and Subclasses 300
9.3 protected Members 302
9.4 Relationship between Superclasses and Subclasses 303
9.5 Constructors in Subclasses 327
9.6 Software Engineering with Inheritance 333
9.7 Object Class 333
9.8 Wrap-Up 335

Chapter 10: Object-Oriented Programming: Polymorphism      336
10.1 Introduction 337
10.2 Polymorphism Examples 339
10.3 Demonstrating Polymorphic Behavior 340
10.4 Abstract Classes and Methods 342
10.5 Case Study: Payroll System Using Polymorphism 345
10.6 final Methods and Classes 360
10.7 Case Study: Creating and Using Interfaces 361
10.8 (Optional) Software Engineering Case Study: Incorporating Inheritance into the ATM System 373
10.9 Wrap-Up 380

Chapter 11: GUI Components: Part 1      381
11.1   Introduction 382
11.2   Simple GUI-Based Input/Output with JOptionPane 383
11.3   Overview of Swing Components 386
11.4   Displaying Text and Images in a Window 389
11.5   Text Fields and an Introduction to Event Handling with Nested Classes 393
11.6   Common GUI Event Types and Listener Interfaces 400
11.7   How Event Handling Works 401
11.8   JButton 404
11.9   Buttons That Maintain State 407
11.10 JComboBox and Using an Anonymous Inner Class for Event Handling 413
11.11 JList 417
11.12 Multiple-Selection Lists 420
11.13 Mouse Event Handling 422
11.14 Adapter Classes 427
11.15 JPanel Subclass for Drawing with the Mouse 430
11.16 Key-Event Handling 434
11.17 Layout Managers 438
11.18 Using Panels to Manage More Complex Layouts 447
11.19 JTextArea 449
11.20 Wrap-Up 452

Chapter 12: Graphics and Java 2D™      453
12.1 Introduction 454
12.2 Graphics Contexts and Graphics Objects 456
12.3 Color Control 457
12.4 Font Control 464
12.5 Drawing Lines, Rectangles and Ovals 470
12.6 Drawing Arcs 474
12.7 Drawing Polygons and Polylines 476
12.8 Java 2D API 479
12.9 Wrap-Up 486

Chapter 13: Exception Handling     487
13.1   Introduction 488
13.2   Exception-Handling Overview 489
13.3   Example: Divide by Zero without Exception Handling 490
13.4   Example: Handling ArithmeticExceptions and InputMismatchExceptions 492
13.5   When to Use Exception Handling 497
13.6   Java Exception Hierarchy 498
13.7   finally Block 500
13.8   Stack Unwinding 505
13.9   printStackTrace, getStackTrace and getMessage 506
13.10 Chained Exceptions 509
13.11 Declaring New Exception Types 511
13.12 Preconditions and Postconditions 512
13.13 Assertions 512
13.14 Wrap-Up 514

Chapter 14: Files and Streams      515
14.1 Introduction 516
14.2 Data Hierarchy 517
14.3 Files and Streams 519
14.4 Class File 520
14.5 Sequential-Access Text Files 525
14.6 Object Serialization 540
14.7 Additional java.io Classes 550
14.8 Opening Files with JFileChooser 552
14.9 Wrap-Up 555

Chapter 15: Generics      556
15.1   Introduction 557
15.2   Motivation for Generic Methods 558
15.3   Generic Methods: Implementation and Compile-Time Translation 560
15.4   Additional Compile-Time Translation Issues: Methods That Use a Type Parameter as the Return Type 563
15.5   Overloading Generic Methods 566
15.6   Generic Classes 567
15.7   Raw Types 577
15.8   Wildcards in Methods That Accept Type Parameters 581
15.9   Generics and Inheritance: Notes 585
15.10 Wrap-Up 586
15.11 Internet and Web Resources 586

Chapter 16: Collections      587
16.1   Introduction 588
16.2   Collections Overview 589
16.3   Class Arrays 590
16.4   Interface Collection and Class Collections 593
16.5   Lists 594
16.6   Collections Algorithms 605
16.7   Stack Class of Package java.util 618
16.8   Class PriorityQueue and Interface Queue 621
16.9   Sets 622
16.10 Maps 625
16.11 Properties Class 629
16.12 Synchronized Collections 632
16.13 Unmodifiable Collections 633
16.14 Abstract Implementations 634
16.15 Wrap-Up 634

Chapter 17: GUI Components: Part 2      635
17.1   Introduction 636
17.2   JSlider 636
17.3   Windows: Additional Notes 640
17.4   Using Menus with Frames 641
17.5   JPopupMenu 649
17.6   Pluggable Look-and-Feel 652
17.7   JDesktopPane and JInternalFrame 656
17.8   JTabbedPane 660
17.9   Layout Managers: BoxLayout and GridBagLayout 662
17.10 Wrap-Up 675

Chapter 18: Multithreading      676
18.1   Introduction 677
18.2   Thread States: Life Cycle of a Thread 679
18.3   Thread Priorities and Thread Scheduling 681
18.4   Creating and Executing Threads 683
18.5   Thread Synchronization 687
18.6   Producer/Consumer Relationship without Synchronization 696
18.7   Producer/Consumer Relationship: ArrayBlockingQueue 703
18.8   Producer/Consumer Relationship with Synchronization 706
18.9   Producer/Consumer Relationship: Bounded Buffers 712
18.10 Producer/Consumer Relationship: The Lock and Condition Interfaces 720
18.11 Multithreading with GUI 726
18.12 Other Classes and Interfaces in java.util.concurrent 741
18.13 Wrap-Up 741

Chapter 19: Networking      743
19.1   Introduction 744
19.2   Manipulating URLs 745
19.3   Reading a File on a Web Server 750
19.4   Establishing a Simple Server Using Stream Sockets 753
19.5   Establishing a Simple Client Using Stream Sockets 755
19.6   Client/Server Interaction with Stream Socket Connections 756
19.7   Connectionless Client/Server Interaction with Datagrams 768
19.8   Client/Server Tic-Tac-Toe Using a Multithreaded Server 775
19.9   Security and the Network 790
19.10 [Web Bonus] Case Study: DeitelMessenger Server and Client 790
19.11 Wrap-Up 790

Chapter 20: Accessing Databases with JDBC      791
20.1   Introduction 792
20.2   Relational Databases 793
20.3   Relational Database Overview: The books Database 794
20.4   SQL 797
20.5   Instructions for Installing MySQL and MySQL Connector/J 806
20.6   Instructions for Setting Up a MySQL User Account 807
20.7   Creating Database books in MySQL 808
20.8   Manipulating Databases with JDBC 809
20.9   RowSet Interface 825
20.10 Java DB/Apache Derby 828
20.11 PreparedStatements 829
20.12 Stored Procedures 844
20.13 Transaction Processing 845
20.14 Wrap-Up 846
20.15 Web Resources 846

Chapter 21: JavaServer™ Faces Web Applications       847
21.1 Introduction 848
21.2 Simple HTTP Transactions 849
21.3 Multitier Application Architecture 852
21.4 Java Web Technologies 853
21.5 Creating and Running a Simple Application in Netbeans 857
21.6 JSF Components 870
21.7 Session Tracking 883
21.8 Wrap-Up 905

Chapter 22: Ajax-Enabled JavaServer™ Faces Web Applications       906
22.1 Introduction 907
22.2 Accessing Databases in Web Applications 907
22.3 Ajax-Enabled JSF Components 920
22.4 Creating an Autocomplete Text Field and Using Virtual Forms 922
22.5 Wrap-Up 932

Chapter 23: JAX-WS Web Services       933
23.1 Introduction 934
23.2 Java Web Services Basics 936
23.3 Creating, Publishing, Testing and Describing a Web Service 936
23.4 Consuming a Web Service 946
23.5 SOAP 955
23.6 Session Tracking in Web Services 957
23.7 Consuming a Database-Driven Web Service from a Web Application 973
23.8 Passing an Object of a User-Defined Type to a Web Service 982
23.9 Wrap-Up 992

Chapter 24: Formatted Output       993
24.1   Introduction 994
24.2   Streams 994
24.3   Formatting Output with printf 994
24.4   Printing Integers 995
24.5   Printing Floating-Point Numbers 996
24.6   Printing Strings and Characters 998
24.7   Printing Dates and Times 999
24.8   Other Conversion Characters 1002
24.9   Printing with Field Widths and Precisions 1003
24.10 Using Flags in the printf Format String 1005
24.11 Printing with Argument Indices 1009
24.12 Printing Literals and Escape Sequences 1010
24.13 Formatting Output with Class Formatter 1010
24.14 Wrap-Up 1012

Chapter 25: Strings, Characters and Regular Expressions      1013
25.1 Introduction 1014
25.2 Fundamentals of Characters and Strings 1014
25.3 Class String 1015
25.4 Class StringBuilder 1028
25.5 Class Character 1035
25.6 Class StringTokenizer 1039
25.7 Regular Expressions, Class Pattern and Class Matcher 1041
25.8 Wrap-Up 1049

Appendix A: Operator Precedence Chart      1050
A.1 Operator Precedence 1050

Appendix B: ASCII Character Set      1052

Appendix C: Keywords and Reserved Words      1053

Appendix D: Primitive Types       1054

Appendix E: GroupLayout       1055
E.1 Introduction 1055
E.2 GroupLayout Basics 1055
E.3 Building a ColorChooser 1056
E.4 GroupLayout Web Resources 1066

Appendix F: Java Desktop Integration Components (JDIC)     1067
F.1 Introduction 1067
F.2 Splash Screens 1067
F.3 Desktop Class 1069
F.4 Tray Icons 1072
F.5 JDIC Incubator Projects 1072
F.6 JDIC Demos 1072

Appendix G: Using the Java API Documentation       1073
G.1 Introduction 1073
G.2 Navigating the Java API 1074

Appendix H: ATM Case Study Code       1082
H.1   ATM Case Study Implementation 1082
H.2   Class ATM 1083
H.3   Class Screen 1088
H.4   Class Keypad 1089
H.5   Class CashDispenser 1090
H.6   Class DepositSlot 1091
H.7   Class Account 1092
H.8   Class BankDatabase 1094
H.9   Class Transaction 1097
H.10 Class BalanceInquiry 1098
H.11 Class Withdrawal 1098
H.12 Class Deposit 1103
H.13 Class ATMCaseStudy 1106
H.14 Wrap-Up 1106

Appendix I: UML 2: Additional Diagram Types      1107
I.1 Introduction 1107
I.2 Additional Diagram Types 1107

Appendix J: Using the Debugger       1109
J.1 Introduction 1110
J.2 Breakpoints and the run, stop, cont and print Commands 1110
J.3 The print and set Commands 1114
J.4 Controlling Execution Using the step, step up and next Commands 1116
J.5 The watch Command 1119
J.6 The clear Command 1121
J.7 Wrap-Up 1124

Index      1125


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