Mastering Lambdas: Java programming in a multicore world ; [best practices for using lambda expressions and streams]
Gespeichert in:
Beteilige Person: | |
---|---|
Format: | Buch |
Sprache: | Englisch |
Veröffentlicht: |
New York, NY [u.a.]
McGraw-Hill
2015
|
Schlagwörter: | |
Links: | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=027546937&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
Umfang: | XVII, 185 S. Ill., graph. Darst. |
ISBN: | 9780071829625 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV042106419 | ||
003 | DE-604 | ||
005 | 20141218 | ||
007 | t| | ||
008 | 141007s2015 xx ad|| |||| 00||| eng d | ||
016 | 7 | |a 016635430 |2 DE-101 | |
020 | |a 9780071829625 |c pbk. |9 978-0-07-182962-5 | ||
035 | |a (OCoLC)896997742 | ||
035 | |a (DE-599)BSZ414053877 | ||
040 | |a DE-604 |b ger | ||
041 | 0 | |a eng | |
049 | |a DE-29T |a DE-898 | ||
084 | |a ST 250 |0 (DE-625)143626: |2 rvk | ||
100 | 1 | |a Naftalin, Maurice |e Verfasser |4 aut | |
245 | 1 | 0 | |a Mastering Lambdas |b Java programming in a multicore world ; [best practices for using lambda expressions and streams] |c Maurice Naftalin |
264 | 1 | |a New York, NY [u.a.] |b McGraw-Hill |c 2015 | |
300 | |a XVII, 185 S. |b Ill., graph. Darst. | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
650 | 0 | 7 | |a Java |g Programmiersprache |0 (DE-588)4401313-9 |2 gnd |9 rswk-swf |
689 | 0 | 0 | |a Java |g Programmiersprache |0 (DE-588)4401313-9 |D s |
689 | 0 | |5 DE-604 | |
856 | 4 | 2 | |m HBZ Datenaustausch |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=027546937&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
943 | 1 | |a oai:aleph.bib-bvb.de:BVB01-027546937 |
Datensatz im Suchindex
_version_ | 1819303260458057728 |
---|---|
adam_text | Titel: Mastering Lambdas
Autor: Naftalin, Maurice
Jahr: 2015
Foreword............................................................................................................xi
Acknowledgments..............................................................................................xiii
Introduction........................................................................................................xv
1 Taking Java to the Next Level........................................................................1
1.1 From External to Internal Iteration..........................................................2
1.1.1 Internal Iteration........................................................................4
1.1.2 The Command Pattern................................................................5
1.1.3 Lambda Expressions..................................................................7
1.2 From Collections to Streams..................................................................9
1.3 From Sequential to Parallel....................................................................12
1.4 Composing Behaviors............................................................................15
1.5 Conclusion............................................................................................17
2 The Basics of Java Lambda Expressions..........................................................19
2.1 What Is a Lambda Expression?..............................................................20
2.1.1 The Syntax of Lambdas..............................................................20
2.2 Lambdas vs. Anonymous Inner Classes..................................................21
2.2.1 No Identity Crisis........................................................................22
2.2.2 Scoping Rules for Lambdas........................................................22
2.3 Variable Capture....................................................................................23
2.4 Functional Interfaces..............................................................................26
2.5 Using Lambda Expressions....................................................................30
2.6 Method and Constructor References......................................................31
2.6.1 Static Method References..........................................................32
2.6.2 Instance Method References......................................................33
2.6.3 Constructor References..............................................................35
VII
Vlii Mastering Lambdas
2.7 Type Checking...........................................
2.7.1 What Exactly Is a Function Type? ..............................................36
2.7.2 Matching a Function Type..........................................................36
2.8 Overload Resolution..............................................................................38
2.8.1 Overloading with Lambda Expressions......................................39
2.8.2 Overloading with Method References........................................41
2.9 Conclusion............................................................................................42
3 Introduction to Streams and Pipelines..........................................................43
3.1 Stream Fundamentals............................................................................44
3.1.1 Parallel-Ready Code..................................................................47
3.1.2 Primitive Streams........................................................................48
3.2 Anatomy of a Pipeline ..........................................................................49
3.2.1 Starting Pipelines........................................................................50
3.2.2 Transforming Pipelines..............................................................51
3.2.3 Non-interference........................................................................60
3.2.4 Ending Pipelines........................................................................62
3.3 Conclusion............................................................................................71
4 Ending Streams: Collection and Reduction....................................................73
4.1 Using Collectors....................................................................................76
4.1.1 Stand-alone Predefined Collectors..............................................76
4.1.2 Composing Collectors................................................................80
4.1.3 Chaining Pipelines ....................................................................84
4.1.4 Worked Example: Most Popular Topics......................................86
4.2 Anatomy of a Collector..........................................................................88
4.2.1 Concurrent Collection................................................................90
4.3 Writing a Collector................................................................................90
4.3.1 Finishers....................................................................................94
4.3.2 Worked Example: Finding My Books..........................................97
4.3.3 Rules for Collectors..................................101
4.4 Reduction...............................................102
4.4.1 Reduction over Primitives.............................102
4.4.2 Reduction over Reference Streams ......................104
4.4.3 Composing Collectors with Reduction....................108
4.5 Conclusion..............................................109
5 Starting Streams: Sources and Spliterators..........................111
5.1 Creating Streams..........................................112
5.2 Spliterators and Fork/Join ...................................119
5.2.1 Streams from Spliterators..................................122
5.3 Exceptions....................................................................123
Contents ix
5.4 Worked Example: Recursive grep.............................127
5.5 Conclusion..............................................136
6 Stream Performance...........................................137
6.1 Microbenchmarking.......................................140
6.1.1 Measuring a Dynamic Runtime.........................140
6.1.2 The Java Microbenchmarking Harness....................142
6.1.3 Experimental Method................................143
6.2 Choosing Execution Mode..................................146
6.3 Stream Characteristics......................................148
6.4 Ordering................................................151
6.5 Statefu I and Stateless Operations .............................153
6.6 Boxing and Unboxing......................................153
6.7 Spliterator Performance.....................................154
6.8 Collector Performance.....................................155
6.8.1 Concurrent Map Merge...............................156
6.8.2 Performance Analysis: Point Grouping ...................157
6.8.3 Performance Analysis: Finding My Books.................157
6.9 Conclusion..............................................158
7 API Evolution with Default Methods ..............................159
7.1 Using Default Methods.....................................162
7.2 What Role for Abstract Classes?..............................164
7.3 Default Method Syntax.....................................165
7.4 Default Methods and Inheritance.............................166
7.4.1 Compatibility Problems...............................170
7.5 Static Methods in Interfaces .................................172
7.5.1 Using Static Methods.................................173
7.6 Conclusion..............................................173
Conclusion..................................................175
Index......................................................177
|
any_adam_object | 1 |
author | Naftalin, Maurice |
author_facet | Naftalin, Maurice |
author_role | aut |
author_sort | Naftalin, Maurice |
author_variant | m n mn |
building | Verbundindex |
bvnumber | BV042106419 |
classification_rvk | ST 250 |
ctrlnum | (OCoLC)896997742 (DE-599)BSZ414053877 |
discipline | Informatik |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>01305nam a2200325 c 4500</leader><controlfield tag="001">BV042106419</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20141218 </controlfield><controlfield tag="007">t|</controlfield><controlfield tag="008">141007s2015 xx ad|| |||| 00||| eng d</controlfield><datafield tag="016" ind1="7" ind2=" "><subfield code="a">016635430</subfield><subfield code="2">DE-101</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9780071829625</subfield><subfield code="c">pbk.</subfield><subfield code="9">978-0-07-182962-5</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)896997742</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BSZ414053877</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-29T</subfield><subfield code="a">DE-898</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 250</subfield><subfield code="0">(DE-625)143626:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Naftalin, Maurice</subfield><subfield code="e">Verfasser</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Mastering Lambdas</subfield><subfield code="b">Java programming in a multicore world ; [best practices for using lambda expressions and streams]</subfield><subfield code="c">Maurice Naftalin</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">New York, NY [u.a.]</subfield><subfield code="b">McGraw-Hill</subfield><subfield code="c">2015</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XVII, 185 S.</subfield><subfield code="b">Ill., graph. Darst.</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Java</subfield><subfield code="g">Programmiersprache</subfield><subfield code="0">(DE-588)4401313-9</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">Java</subfield><subfield code="g">Programmiersprache</subfield><subfield code="0">(DE-588)4401313-9</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">HBZ Datenaustausch</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=027546937&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="943" ind1="1" ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-027546937</subfield></datafield></record></collection> |
id | DE-604.BV042106419 |
illustrated | Illustrated |
indexdate | 2024-12-20T17:02:27Z |
institution | BVB |
isbn | 9780071829625 |
language | English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-027546937 |
oclc_num | 896997742 |
open_access_boolean | |
owner | DE-29T DE-898 DE-BY-UBR |
owner_facet | DE-29T DE-898 DE-BY-UBR |
physical | XVII, 185 S. Ill., graph. Darst. |
publishDate | 2015 |
publishDateSearch | 2015 |
publishDateSort | 2015 |
publisher | McGraw-Hill |
record_format | marc |
spellingShingle | Naftalin, Maurice Mastering Lambdas Java programming in a multicore world ; [best practices for using lambda expressions and streams] Java Programmiersprache (DE-588)4401313-9 gnd |
subject_GND | (DE-588)4401313-9 |
title | Mastering Lambdas Java programming in a multicore world ; [best practices for using lambda expressions and streams] |
title_auth | Mastering Lambdas Java programming in a multicore world ; [best practices for using lambda expressions and streams] |
title_exact_search | Mastering Lambdas Java programming in a multicore world ; [best practices for using lambda expressions and streams] |
title_full | Mastering Lambdas Java programming in a multicore world ; [best practices for using lambda expressions and streams] Maurice Naftalin |
title_fullStr | Mastering Lambdas Java programming in a multicore world ; [best practices for using lambda expressions and streams] Maurice Naftalin |
title_full_unstemmed | Mastering Lambdas Java programming in a multicore world ; [best practices for using lambda expressions and streams] Maurice Naftalin |
title_short | Mastering Lambdas |
title_sort | mastering lambdas java programming in a multicore world best practices for using lambda expressions and streams |
title_sub | Java programming in a multicore world ; [best practices for using lambda expressions and streams] |
topic | Java Programmiersprache (DE-588)4401313-9 gnd |
topic_facet | Java Programmiersprache |
url | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=027546937&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT naftalinmaurice masteringlambdasjavaprogramminginamulticoreworldbestpracticesforusinglambdaexpressionsandstreams |