32,99 €
This OCP Oracle Certified Professional Java SE 11 Programmer I Study Guide: Exam 1Z0-815 and the Programmer II Study Guide: Exam 1Z0-816 were published before Oracle announced major changes to its OCP certification program and the release of the new Developer 1Z0-819 exam. No matter the changes, rest assured both of the Programmer I and II Study Guides cover everything you need to prepare for and take Exam 1Z0-819. If you've purchased one of the Programmer Study Guides, purchase the other one and you'll be all set. NOTE: The OCP Java SE 11 Programmer I Exam 1Z0-815 and Programmer II Exam 1Z0-816 have been retired (as of October 1, 2020), and Oracle has released a new Developer Exam 1Z0-819 to replace the previous exams. The Upgrade Exam 1Z0-817 remains the same. The completely-updated preparation guide for the new OCP Oracle Certified Professional Java SE 11 Programmer II exam--covers Exam 1Z0-816 Java, a platform-independent, object-oriented programming language, is used primarily in mobile and desktop application development. It is a popular language for client-side cloud applications and the principal language used to develop Android applications. Oracle has recently updated its Java Programmer certification tracks for Oracle Certified Professional. OCP Oracle Certified Professional Java SE 11 Programmer II Study Guide ensures that you are fully prepared for this difficult certification exam. Covering 100% of exam objectives, this in-depth study guide provides comprehensive coverage of the functional-programming knowledge necessary to succeed. Every exam topic is thoroughly and completely covered including exceptions and assertions, class design, generics and collections, threads, concurrency, IO and NIO, and more. Access to Sybex's superior online interactive learning environment and test bank--including self-assessment tests, chapter tests, bonus practice exam questions, electronic flashcards, and a searchable glossary of important terms--provides everything you need to be fully prepared on exam day. This must-have guide: * Covers all exam objectives such as inheriting abstract classes and interfaces, advanced strings and localization, JDBC, and Object-Oriented design principles and patterns * Explains complex material and reinforces your comprehension and retention of important topics * Helps you master more advanced areas of functional programming * Demonstrates practical methods for building Java solutions OCP Oracle Certified Professional Java SE 11 Programmer II Study Guide will prove invaluable for anyone seeking achievement of this challenging exam, as well as junior- to senior-level programmers who uses Java as their primary programming language.
Sie lesen das E-Book in den Legimi-Apps auf:
Seitenzahl: 1104
Veröffentlichungsjahr: 2020
Cover
Acknowledgments
About the Authors
Introduction
Understanding the Exam
Reading This Book
Preparing for the Exam
Taking the Exam
Objective Map
Taking the Assessment Test
Chapter 1: Java Fundamentals
Applying the
final
Modifier
Working with Enums
Creating Nested Classes
Understanding Interface Members
Introducing Functional Programming
Summary
Exam Essentials
Review Questions
Chapter 2: Annotations
Introducing Annotations
Creating Custom Annotations
Applying Annotations
Declaring Annotation-Specific Annotations
Using Common Annotations
Summary
Exam Essentials
Review Questions
Chapter 3: Generics and Collections
Using Method References
Using Wrapper Classes
Using the Diamond Operator
Using Lists, Sets, Maps, and Queues
Sorting Data
Working with Generics
Summary
Exam Essentials
Review Questions
Chapter 4: Functional Programming
Working with Built-in Functional Interfaces
Returning an
Optional
Using Streams
Working with Primitive Streams
Working with Advanced Stream Pipeline Concepts
Summary
Exam Essentials
Review Questions
Chapter 5: Exceptions, Assertions, and Localization
Reviewing Exceptions
Creating Custom Exceptions
Automating Resource Management
Declaring Assertions
Working with Dates and Times
Supporting Internationalization and Localization
Loading Properties with Resource Bundles
Summary
Exam Essentials
Review Questions
Chapter 6: Modular Applications
Reviewing Module Directives
Comparing Types of Modules
Analyzing JDK Dependencies
Migrating an Application
Creating a Service
Summary
Exam Essentials
Review Questions
Chapter 7: Concurrency
Introducing Threads
Creating Threads with the Concurrency API
Writing Thread-Safe Code
Using Concurrent Collections
Identifying Threading Problems
Working with Parallel Streams
Summary
Exam Essentials
Review Questions
Chapter 8: I/O
Understanding Files and Directories
Introducing I/O Streams
Common I/O Stream Operations
Working with I/O Stream Classes
Interacting with Users
Summary
Exam Essentials
Review Questions
Chapter 9: NIO.2
Introducing NIO.2
Interacting with Paths
Operating on Files and Directories
Managing File Attributes
Applying Functional Programming
Comparing Legacy
java.io.File
and NIO.2 Methods
Summary
Exam Essentials
Review Questions
Chapter 10: JDBC
Introducing Relational Databases and SQL
Introducing the Interfaces of JDBC
Connecting to a Database
Working with a
PreparedStatement
Getting Data from a
ResultSet
Calling a
CallableStatement
Closing Database Resources
Summary
Exam Essentials
Review Questions
Chapter 11: Security
Designing a Secure Object
Introducing Injection and Input Validation
Working with Confidential Information
Serializing and Deserializing Objects
Constructing Sensitive Objects
Preventing Denial of Service Attacks
Summary
Exam Essentials
Review Questions
Appendix A: The Upgrade Exam
Working with Local Variable Type Inference
Introducing Modules
Creating and Running a Modular Program
Updating Our Example for Multiple Modules
Diving into the
module-info
File
Discovering Modules
Reviewing Command-Line Options
Summary
Exam Essentials
Review Questions
Appendix B: Answers to Review Questions
Chapter 1: Java Fundamentals
Chapter 2: Annotations
Chapter 3: Generics and Collections
Chapter 4: Functional Programming
Chapter 5: Exceptions, Assertions, and Localization
Chapter 6: Modular Applications
Chapter 7: Concurrency
Chapter 8: I/O
Chapter 9: NIO.2
Chapter 10: JDBC
Chapter 11: Security
Appendix A: The Upgrade Exam
Index
Online Test Bank
Register and Access the Online Test Bank
End User License Agreement
Chapter 1
TABLE 1.1 Modifiers in nested classes
TABLE 1.2 Members in nested classes
TABLE 1.3 Nested class access rules
TABLE 1.4 Interface member types
TABLE 1.5 Interface member access
Chapter 2
TABLE 2.1 Values for the
@Target
annotation
TABLE 2.2 Values for the @Retention annotation
TABLE 2.3 Annotation-specific annotations
TABLE 2.4 Common @
SuppressWarnings
values
TABLE 2.5 Understanding common annotations
TABLE 2.6 Applying common annotations
Chapter 3
TABLE 3.1 Functional interfaces used in this chapter
TABLE 3.2 Method references
TABLE 3.3 Wrapper classes
TABLE 3.4 Factory methods to create a List
TABLE 3.5 List methods
TABLE 3.6 Queue methods
TABLE 3.7 Map methods
TABLE 3.8 Behavior of the merge() method
TABLE 3.9 Java Collections Framework types
TABLE 3.10 Collection attributes
TABLE 3.11 Comparison of Comparable and Comparator
TABLE 3.12 Helper static methods for building a Comparator
TABLE 3.13 Helper default methods for building a Comparator
TABLE 3.14 Types of bounds
TABLE 3.15 Why we need a lower bound
Chapter 4
TABLE 4.1 Common functional interfaces
TABLE 4.2 Convenience methods
TABLE 4.3
Optional
instance methods
TABLE 4.4 Intermediate vs. terminal operations
TABLE 4.5 Creating a source
TABLE 4.6 Terminal stream operations
TABLE 4.7 Common primitive stream methods
TABLE 4.8 Mapping methods between types of streams
TABLE 4.9 Function parameters when mapping between types of streams
TABLE 4.10 Optional types for primitives
TABLE 4.11 Common functional interfaces for primitives
TABLE 4.12 Primitive-specific functional interfaces
TABLE 4.13 Examples of grouping/partitioning collectors
Chapter 5
TABLE 5.1 Unchecked exceptions
TABLE 5.2 Checked exceptions
TABLE 5.3 Assertion applications
TABLE 5.4 Date and time types
TABLE 5.5 Common date/time symbols
TABLE 5.6 Supported date/time symbols
TABLE 5.7 Factory methods to get a
NumberFormat
TABLE 5.8
DecimalFormat
symbols
TABLE 5.9 Factory methods to get a
DateTimeFormatter
TABLE 5.10
Locale.Category
values
TABLE 5.11 Picking a resource bundle for French/France with default locale En...
TABLE 5.12 Selecting resource bundle properties
Chapter 6
TABLE 6.1 Common module directives
TABLE 6.2 Practicing with automatic module names
TABLE 6.3 Properties of modules types
TABLE 6.4 Common modules
TABLE 6.5 Java modules prefixed with java
TABLE 6.6 Java modules prefixed with jdk
TABLE 6.7 Comparing migration strategies
TABLE 6.8 Reviewing services
Chapter 7
TABLE 7.1
ExecutorService
methods
TABLE 7.2
Future
methods
TABLE 7.3
TimeUnit
values
TABLE 7.4
ScheduledExecutorService
methods
TABLE 7.5
Executors
factory methods
TABLE 7.6 Atomic classes
TABLE 7.7 Common atomic methods
TABLE 7.8
Lock
methods
TABLE 7.9 Concurrent collection classes
TABLE 7.10
BlockingQueue
waiting methods
TABLE 7.11 Synchronized collections methods
Chapter 8
TABLE 8.1 Commonly used java.io.File methods
TABLE 8.2 The java.io abstract stream base classes
TABLE 8.3 The java.io concrete stream classes
TABLE 8.4 Common I/O stream methods
TABLE 8.5 Common print stream format() symbols
Chapter 9
TABLE 9.1 File system symbols
TABLE 9.2 Common NIO.2 method arguments
TABLE 9.3 Path methods
TABLE 9.4
Files
methods
TABLE 9.5 The attributes and view types
TABLE 9.6 Walking a directory with a cycle using breadth-first search
TABLE 9.7 Comparison of
java.io.File
and NIO.2 methods
Chapter 10
TABLE 10.1 CRUD operations
TABLE 10.2 SQL runnable by the
execute
method
TABLE 10.3 Return types of
execute
methods
TABLE 10.4
PreparedStatement
methods
TABLE 10.5
ResultSet get
methods
TABLE 10.6 Sample stored procedures
TABLE 10.7 Stored procedure parameter types
Chapter 11
TABLE 11.1 Types of confidential data
TABLE 11.2 Methods for serialization and deserialization
Appendix A
TABLE A.1 Options you need to know for using modules with
javac
TABLE A.2 Options you need to know for using modules with
java
TABLE A.3 Access control with modules
TABLE A.4 Modes using jmod
TABLE A.5 Comparing command-line operations
TABLE A.6 Options you need to know for the exam:
javac
TABLE A.7 Options you need to know for the exam:
java
TABLE A.8 Options you need to know for the exam:
jar
TABLE A.9 Options you need to know for the exam:
jdeps
Introduction
FIGURE I.1 Past and current Java certifications
FIGURE I.2 Latest Java certification exams
FIGURE I.3 Exam prerequisites
Chapter 1
FIGURE 1.1 Lambda syntax omitting optional parts
FIGURE 1.2 Lambda syntax, including optional parts
Chapter 2
FIGURE 2.1 Annotation declaration
FIGURE 2.2 Using an annotation
Chapter 3
FIGURE 3.1 The
Collection
interface is the root of all collections except ma...
FIGURE 3.2 Example of a
List
FIGURE 3.3 Example of a
Set
FIGURE 3.4 Examples of a
HashSet
and
TreeSet
FIGURE 3.5 Example of a
Queue
FIGURE 3.6 Working with a queue
FIGURE 3.7 Example of a
Map
Chapter 4
FIGURE 4.1
Optional
FIGURE 4.2 Stream pipeline
FIGURE 4.3 Steps in running a stream pipeline
FIGURE 4.4 A stream pipeline with a limit
FIGURE 4.5 Stream pipeline with multiple intermediate operations
Chapter 5
FIGURE 5.1 The syntax of a
try
statement
FIGURE 5.2 The syntax of a try‐with‐resources statement
FIGURE 5.3 Categories of exceptions
FIGURE 5.4 The syntax of
assert
statements
FIGURE 5.5
Locale
formats
Chapter 6
FIGURE 6.1 A named module
FIGURE 6.2 An automatic module
FIGURE 6.3 An unnamed module
FIGURE 6.4 Determining the order
FIGURE 6.5 Determining the order when not unique
FIGURE 6.6 Bottom-up migration
FIGURE 6.7 Top-down migration
FIGURE 6.8 First attempt at decomposition
FIGURE 6.9 Removing the cyclic dependencies
FIGURE 6.10 Modules in the tour application
Chapter 7
FIGURE 7.1 Process model
FIGURE 7.2
ExecutorService
life cycle
FIGURE 7.3 Lack of thread synchronization
FIGURE 7.4 Thread synchronization using atomic operations
FIGURE 7.5 Race condition on user creation
Chapter 8
FIGURE 8.1 Directory and file hierarchy
FIGURE 8.2 Visual representation of a stream
FIGURE 8.3 Serialization process
FIGURE 8.4 Diagram of I/O stream classes
Chapter 9
FIGURE 9.1 File system with a symbolic link
FIGURE 9.2 NIO.2 class and interface relationships
FIGURE 9.3 Relative paths using path symbols
FIGURE 9.4 Comparing file uniqueness
FIGURE 9.5 File and directory as a tree structure
FIGURE 9.6 File system with cycle
Chapter 10
FIGURE 10.1 Tables in our relational database
FIGURE 10.2 Key JDBC interfaces
FIGURE 10.3 The JDBC URL format
FIGURE 10.4 Types of statements
FIGURE 10.5 The
ResultSet
cursor
Chapter 11
FIGURE 11.1
Cloneable
logic
FIGURE 11.2 Hours table
FIGURE 11.3 Directory structure
FIGURE 11.4 Writing and reading an employee
Appendix A
FIGURE A.1 Design of a modular system
FIGURE A.2 Looking inside a module
FIGURE A.3 Contents of
zoo.animal.feeding
FIGURE A.4 Module
zoo.animal.feeding
directory structure
FIGURE A.5 Running a module using
java
FIGURE A.6 Module
zoo.animal.feeding
directory structure with
class
and
jar
...
FIGURE A.7 Modules depending on
zoo.animal.feeding
FIGURE A.8 Contents of
zoo.animal.care
FIGURE A.9 Module
zoo.animal.care
directory structure
FIGURE A.10 Dependencies for
zoo.animal.talks
FIGURE A.11 Contents of
zoo.animal.talks
FIGURE A.12 Contents of
zoo.staff
FIGURE A.13 Dependencies for
zoo.staff
FIGURE A.14 Transitive dependency version of our modules
Cover
Table of Contents
Begin Reading
i
ii
iii
v
vii
xxi
xxii
xxiii
xxiv
xxv
xxvi
xxvii
xxviii
xxix
xxx
xxxi
xxxii
xxxiii
xxxiv
xxxv
xxxvi
xxxvii
xxxviii
xxxix
xl
xli
xlii
xliii
xliv
xlv
xlvi
xlvii
xlviii
xlix
l
li
lii
liii
liv
lv
lvi
lvii
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
Scott Selikoff
Jeanne Boyarsky
Copyright © 2020 by John Wiley & Sons, Inc., Indianapolis, Indiana
Published simultaneously in Canada and the United Kingdom.
ISBN: 978-1-119-61762-4ISBN: 978-1-119-61763-1 (ebk)ISBN: 978-1-119-61758-7 (ebk)
No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, scanning or otherwise, except as permitted under Sections 107 or 108 of the 1976 United States Copyright Act, without either the prior written permission of the Publisher, or authorization through payment of the appropriate per-copy fee to the Copyright Clearance Center, 222 Rosewood Drive, Danvers, MA 01923, (978) 750-8400, fax (978) 646-8600. Requests to the Publisher for permission should be addressed to the Permissions Department, John Wiley & Sons, Inc., 111 River Street, Hoboken, NJ 07030, (201) 748-6011, fax (201) 748-6008, or online at www.wiley.com/go/permissions.
Limit of Liability/Disclaimer of Warranty: The publisher and the author make no representations or warranties with respect to the accuracy or completeness of the contents of this work and specifically disclaim all warranties, including without limitation warranties of fitness for a particular purpose. No warranty may be created or extended by sales or promotional materials. The advice and strategies contained herein may not be suitable for every situation. This work is sold with the understanding that the publisher is not engaged in rendering legal, accounting, or other professional services. If professional assistance is required, the services of a competent professional person should be sought. Neither the publisher nor the author shall be liable for damages arising herefrom. The fact that an organization or Web site is referred to in this work as a citation and/or a potential source of further information does not mean that the author or the publisher endorses the information the organization or Web site may provide or recommendations it may make. Further, readers should be aware that Internet Web sites listed in this work may have changed or disappeared between when this work was written and when it is read.
For general information on our other products and services or to obtain technical support, please contact our Customer Care Department within the U.S. at (877) 762-2974, outside the U.S. at (317) 572-3993 or fax (317) 572-4002.
Wiley publishes in a variety of print and electronic formats and by print-on-demand. Some material included with standard print versions of this book may not be included in e-books or in print-on-demand. If this book refers to media such as a CD or DVD that is not included in the version you purchased, you may download this material at booksupport.wiley.com. For more information about Wiley products, visit www.wiley.com.
Library of Congress Control Number: 2020938185
TRADEMARKS: Wiley, the Wiley logo, and the Sybex logo are trademarks or registered trademarks of John Wiley & Sons, Inc. and/or its affiliates, in the United States and other countries, and may not be used without written permission. Oracle and Java are registered trademarks of Oracle America, Inc. All other trademarks are the property of their respective owners. John Wiley & Sons, Inc. is not associated with any product or vendor mentioned in this book.
For my daughter, Sophia, you're the best combination of super silly and super serious. You always know exactly what you want. May you never lose that trait as you grow into a strong woman.
—Scott
Happy 20th anniversary to NYC FIRST and StuyPulse FRC Team 694.
—Jeanne
Scott and Jeanne would like to thank numerous individuals for their contribution to this book. Thank you to Kathryn Duggan for guiding us through the process and making the book better in so many ways. Thank you to Janeice DelVecchio for being our technical editor as we wrote this book. Janeice pointed out many subtle errors in addition to the big ones. And thank you to Elena Felder for being our technical proofreader and finding the errors that we managed to sneak by Janeice. This book also wouldn't be possible without many people at Wiley, including Kenyon Brown, Pete Gaughan, Christine O'Connor, Kim Wimpsett, Johnna VanHoose Dinse and so many others.
Scott could not have reached this point without his wife, Patti, and family, whose love and support makes this book possible. He would like to thank his twin daughters, Olivia and Sophia, and youngest daughter, Elysia, for their patience and understanding especially when it was “time for Daddy to work in his office!” Scott would like to extend his gratitude to his wonderfully patient co-author, Jeanne, on this, their fifth book. He doesn't know how she puts up with him, but he's glad she does and thrilled at the quality of books we produce. A big thanks to Matt Dalen, who has been a great friend, sounding board, and caring father to Olivia, Adeline, and newborn Henry. Finally, Scott would like to thank his mother and retired teacher, Barbara Selikoff, for teaching him the value of education, and his father, Mark Selikoff, for instilling in him the benefits of working hard.
Jeanne would personally like to thank Chris Kreussling for knowing more than a decade ago that she would someday write a book. He was a great mentor for many years and definitely shaped her career. Sibon Barman was helpful in getting feedback on the modules chapter, and Susanta Chattopadhyay provided real-life use cases for both service locator and serialization. Stuart Dabbs Halloway's 2001 book provided examples of serialPeristentFields. Scott was a great co-author, improving everything Jeanne wrote while writing his own chapters. A big thank-you to everyone at CodeRanch.com who asked and responded to questions and comments about our books. Finally, Jeanne would like to thank all of the new programmers at CodeRanch.com and FIRST robotics teams FRC 694, FTC 310, and FTC 479 for the constant reminders of how new programmers think.
We'd both like to thank Marcus Biel for providing a European's take on our localization content. Last but not least, both Scott and Jeanne would like to give a big thank-you to the readers of all our books. Hearing from all of you who enjoyed the book and passed the exam is a great feeling. We'd also like to thank those who pointed out errors and made suggestions for improvements in the 1Z0-815 Java 11 book. As of April 2020, the top two were Nikolai Vinoku and Edmond Yong. Also, an honorable mention to Jakub Chrobak.
Scott Selikoff is a professional software consultant, author, and owner of Selikoff Solutions, LLC, which provides software development solutions to businesses in the tri-state New York City area. Skilled in a plethora of software languages and platforms, Scott specializes in full-stack database-driven systems, cloud-based applications, microservice architectures, and service-oriented architectures.
A native of Toms River, New Jersey, Scott achieved his Bachelor of Arts degree from Cornell University in Mathematics and Computer Science in 2002, after three years of study. In 2003, he received his Master of Engineering degree in Computer Science, also from Cornell University.
As someone with a deep love of education, Scott has always enjoyed teaching others new concepts. He's given lectures at Cornell University and Rutgers University, as well as conferences including Oracle Code One and The Server Side Java Symposium. Scott lives in New Jersey with his loving wife, Patti; three amazing daughters, twins Olivia and Sophia and little Elysia; and two very playful dogs, Webby and Georgette. You can find out more about Scott at www.linkedin.com/in/selikoff or follow him on Twitter @ScottSelikoff.
Jeanne Boyarsky was selected as a Java Champion in 2019. She has worked as a Java developer for more than 18 years at a bank in New York City where she develops, mentors, and conducts training. Besides being a senior moderator at CodeRanch.com in her free time, she works on the forum code base. Jeanne also mentors the programming division of a FIRST robotics team where she works with students just getting started with Java. She also speaks at several conferences each year.
Jeanne got her Bachelor of Arts degree in 2002 and her Master in Computer Information Technology degree in 2005. She enjoyed getting her Master's degree in an online program while working full-time. This was before online education was cool! Jeanne is also a Distinguished Toastmaster and a Scrum Master. You can find out more about Jeanne at www.jeanneboyarsky.com or follow her on Twitter at @JeanneBoyarsky.
Scott and Jeanne are both moderators on the CodeRanch.com forums and can be reached there for question and comments. They also co-author a technical blog called Down Home Country Coding at www.selikoff.net.
In addition to this book, Scott and Jeanne are also authors of the following best-selling Java 8 certification books: OCA Oracle Certified Associate Java SE 8 Programmer I Study Guide (Sybex, 2015) and OCP Oracle Certified Professional Java SE 8 Programmer II Study Guide (Sybex, 2016). These two books have been combined into the single release: OCA/OCP Java SE 8 Programmer Certification Kit: Exam 1Z0-808 and Exam 1Z0-809 (Sybex 2016). They have also written a book of practice test questions for the Java 8 certification exams: OCA/OCP Java SE 8 Programmer Practice Tests (Sybex, 2017). Their most recent book is OCP Oracle Certified Professional Java SE 11 Programmer I Study Guide: Exam 1Z0-815 (Sybex, 2019).
