Preface xiii
About the Author xv
Chapter 1: Lambda Expressions 1
1.1 Why Lambdas? 2
1.2 The Syntax of Lambda Expressions 4
1.3 Functional Interfaces 6
1.4 Method References 8
1.5 Constructor References 9
1.6 Variable Scope 10
1.7 Default Methods 14
1.8 Static Methods in Interfaces 16
Exercises 18
Chapter 2: The Stream API 21
2.1 From Iteration to
Stream Operations 22
2.2 Stream Creation 24
2.3 The filter, map, and flatMap Methods 25
2.4 Extracting Substreams and Combining Streams 26
2.5 Stateful Transformations 27
2.6 Simple Reductions 28
2.7 The Optional Type 29
2.8 Reduction Operations 31
2.9 Collecting Results 33
2.10 Collecting into Maps 34
2.11 Grouping and Partitioning 36
2.12 Primitive Type Streams 39
2.13 Parallel Streams 40
2.14 Functional Interfaces 42
Exercises 44
Chapter 3: Programming with Lambdas 47
3.1 Deferred
Execution 48
3.2 Parameters of Lambda Expressions 49
3.3 Choosing a Functional Interface 50
3.4 Returning Functions 53
3.5 Composition 54
3.6 Laziness 56
3.7 Parallelizing Operations 57
3.8 Dealing with Exceptions 58
3.9 Lambdas and Generics 61
3.10 Monadic Operations 63
Exercises 64
Chapter 4: JavaFX 69
4.1 A Brief History of Java GUI
Programming 70
4.2 Hello, JavaFX! 71
4.3 Event Handling 72
4.4 JavaFX Properties 73
4.5 Bindings 75
4.6 Layout 80
4.7 FXML 86
4.8 CSS 90
4.9 Animations and Special Effects 91
4.10 Fancy Controls 94
Exercises 97
Chapter 5: The New Date and Time API 101
5.1 The Time
Line 102
5.2 Local Dates 104
5.3 Date Adjusters 107
5.4 Local Time 108
5.5 Zoned Time 109
5.6 Formatting and Parsing 112
5.7 Interoperating with Legacy Code 115
Exercises 116
Chapter 6: Concurrency Enhancements 119
6.1 Atomic
Values 120
6.2 ConcurrentHashMap Improvements 123
6.3 Parallel Array Operations 128
6.4 Completable Futures 130
Exercises 134
Chapter 7: The Nashorn Javascript Engine 137
7.1
Running Nashorn from the Command Line 138
7.2 Running Nashorn from Java 139
7.3 Invoking Methods 140
7.4 Constructing Objects 141
7.5 Strings 142
7.6 Numbers 143
7.7 Working with Arrays 144
7.8 Lists and Maps 145
7.9 Lambdas 146
7.10 Extending Java Classes and Implementing Java Interfaces
146
7.11 Exceptions 148
7.12 Shell Scripting 148
7.13 Nashorn and JavaFX 152
Exercises 154
Chapter 8: Miscellaneous Goodies 157
8.1 Strings
158
8.2 Number Classes 158
8.3 New Mathematical Functions 159
8.4 Collections 160
8.5 Working with Files 163
8.6 Annotations 167
8.7 Miscellaneous Minor Changes 171
Exercises 174
Chapter 9: Java 7 Features That You May Have Missed
179
9.1 Exception Handling Changes 180
9.2 Working with Files 183
9.3 Implementing the equals, hashCode, and compareTo Methods
188
9.4 Security Requirements 190
9.5 Miscellaneous Changes 193
Exercises 196
Index 199
Cay S. Horstmann is the author of Scala for the Impatient (Addison-Wesley, 2012), is principal author of Core Java™, Volumes I and II, Ninth Edition (Prentice Hall, 2013), and has written a dozen other books for professional programmers and computer science students. He is a professor of computer science at San Jose State University and is a Java Champion.
Ask a Question About this Product More... |