100% found this document useful (4 votes)
20 views

Java 9 Recipes: A Problem-Solution Approach 3rd Edition Josh Juneau instant download

Java 9 Recipes: A Problem-Solution Approach, 3rd Edition by Josh Juneau provides a comprehensive guide to Java 9, covering enhancements, object-oriented programming, concurrency, and more. The book includes practical solutions to common programming problems, making it a valuable resource for developers. It features detailed chapters on various topics, from strings and numbers to JavaFX and web applications.

Uploaded by

clerebaffar3
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (4 votes)
20 views

Java 9 Recipes: A Problem-Solution Approach 3rd Edition Josh Juneau instant download

Java 9 Recipes: A Problem-Solution Approach, 3rd Edition by Josh Juneau provides a comprehensive guide to Java 9, covering enhancements, object-oriented programming, concurrency, and more. The book includes practical solutions to common programming problems, making it a valuable resource for developers. It features detailed chapters on various topics, from strings and numbers to JavaFX and web applications.

Uploaded by

clerebaffar3
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 65

Java 9 Recipes: A Problem-Solution Approach 3rd

Edition Josh Juneau download

https://textbookfull.com/product/java-9-recipes-a-problem-
solution-approach-3rd-edition-josh-juneau/

Download more ebook from https://textbookfull.com


We believe these products will be a great fit for you. Click
the link to download now, or visit textbookfull.com
to discover even more!

Java EE 7 Recipes A Problem Solution Approach 1st


Edition Juneau Josh

https://textbookfull.com/product/java-ee-7-recipes-a-problem-
solution-approach-1st-edition-juneau-josh/

Java 7 Recipes A Problem Solution Approach Juneau Josh


Beaty Mark Dea Carl Guime Freddy Oconner John

https://textbookfull.com/product/java-7-recipes-a-problem-
solution-approach-juneau-josh-beaty-mark-dea-carl-guime-freddy-
oconner-john/

Java 8 Recipes 2nd Edition Josh Juneau

https://textbookfull.com/product/java-8-recipes-2nd-edition-josh-
juneau/

MATLAB Machine Learning Recipes: A Problem-Solution


Approach 3rd Edition Michael Paluszek

https://textbookfull.com/product/matlab-machine-learning-recipes-
a-problem-solution-approach-3rd-edition-michael-paluszek/
Android Recipes A Problem-Solution Approach Dave Smith

https://textbookfull.com/product/android-recipes-a-problem-
solution-approach-dave-smith/

Raku Recipes: A Problem-Solution Approach J.J. Merelo

https://textbookfull.com/product/raku-recipes-a-problem-solution-
approach-j-j-merelo/

C Recipes - A Problem-Solution Approach 1st Edition


Shirish Chavan

https://textbookfull.com/product/c-recipes-a-problem-solution-
approach-1st-edition-shirish-chavan/

JavaScript Recipes: A Problem-Solution Approach 1st


Edition Russ Ferguson

https://textbookfull.com/product/javascript-recipes-a-problem-
solution-approach-1st-edition-russ-ferguson/

wxPython Recipes: A Problem - Solution Approach 1st


Edition Mike Driscoll

https://textbookfull.com/product/wxpython-recipes-a-problem-
solution-approach-1st-edition-mike-driscoll/
Java 9
Recipes
A Problem-Solution Approach

Third Edition

Josh Juneau
Java 9 Recipes
A Problem-Solution Approach

Third Edition

Josh Juneau
Java 9 Recipes: A Problem-Solution Approach
Josh Juneau
Hinckley, Illinois, USA
ISBN-13 (pbk): 978-1-4842-1975-1 ISBN-13 (electronic): 978-1-4842-1976-8
DOI 10.1007/978-1-4842-1976-8
Library of Congress Control Number: 2017943502
Copyright © 2017 by Josh Juneau
This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the
material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation,
broadcasting, reproduction on microfilms or in any other physical way, and transmission or information
storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now
known or hereafter developed.
Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol
with every occurrence of a trademarked name, logo, or image we use the names, logos, and images only
in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the
trademark.
The use in this publication of trade names, trademarks, service marks, and similar terms, even if they are
not identified as such, is not to be taken as an expression of opinion as to whether or not they are subject to
proprietary rights.
While the advice and information in this book are believed to be true and accurate at the date of publication,
neither the authors nor the editors nor the publisher can accept any legal responsibility for any errors or
omissions that may be made. The publisher makes no warranty, express or implied, with respect to the
material contained herein.
Managing Director: Welmoed Spahr
Editorial Director: Todd Green
Acquisitions Editor: Jonathan Gennick
Development Editor: Laura Berendson
Technical Reviewer: Vinay Kumar
Coordinating Editor: Jill Balzano
Copy Editor: Brendan Frost
Compositor: SPi Global
Indexer: SPi Global
Artist: SPi Global
Distributed to the book trade worldwide by Springer Science+Business Media New York,
233 Spring Street, 6th Floor, New York, NY 10013. Phone 1-800-SPRINGER, fax (201) 348-4505, e-mail
orders-ny@springer-sbm.com, or visit www.springeronline.com. Apress Media, LLC is a California LLC
and the sole member (owner) is Springer Science + Business Media Finance Inc (SSBM Finance Inc).
SSBM Finance Inc is a Delaware corporation.
For information on translations, please e-mail rights@apress.com, or visit http://www.apress.com/
rights-permissions.
Apress titles may be purchased in bulk for academic, corporate, or promotional use. eBook versions and
licenses are also available for most titles. For more information, reference our Print and eBook Bulk Sales
web page at http://www.apress.com/bulk-sales.
Any source code or other supplementary material referenced by the author in this book is available to
readers on GitHub via the book’s product page, located at www.apress.com/9781484219751. For more
detailed information, please visit http://www.apress.com/source-code.
Printed on acid-free paper
This book is dedicated to my wife and children.
Contents at a Glance

About the Author�������������������������������������������������������������������������������������������������� xliii


About the Technical Reviewer��������������������������������������������������������������������������������xlv
Acknowledgments������������������������������������������������������������������������������������������������xlvii
Introduction�����������������������������������������������������������������������������������������������������������xlix


■Chapter 1: Getting Started with Java 9����������������������������������������������������������������� 1

■Chapter 2: Java 9 Enhancements������������������������������������������������������������������������ 35

■Chapter 3: Strings����������������������������������������������������������������������������������������������� 47

■Chapter 4: Numbers and Dates���������������������������������������������������������������������������� 65

■Chapter 5: Object-Oriented Java������������������������������������������������������������������������� 99

■Chapter 6: Lambda Expressions������������������������������������������������������������������������ 137

■Chapter 7: Data Sources and Collections���������������������������������������������������������� 159

■Chapter 8: Input and Output������������������������������������������������������������������������������ 195

■Chapter 9: Exceptions and Logging������������������������������������������������������������������� 221

■Chapter 10: Concurrency����������������������������������������������������������������������������������� 239

■Chapter 11: Debugging and Unit Testing����������������������������������������������������������� 267

■Chapter 12: Unicode, Internationalization, and Currency Codes����������������������� 285

■Chapter 13: Working with Databases���������������������������������������������������������������� 305

■Chapter 14: JavaFX Fundamentals�������������������������������������������������������������������� 355

■Chapter 15: Graphics with JavaFX�������������������������������������������������������������������� 429

■Chapter 16: Media with JavaFX������������������������������������������������������������������������� 471

v
■ Contents at a Glance


■Chapter 17: Java Web Applications with JavaServer Faces������������������������������ 499

■Chapter 18: Nashorn and Scripting������������������������������������������������������������������� 529

■Chapter 19: E-mail��������������������������������������������������������������������������������������������� 553

■Chapter 20: JSON and XML Processing������������������������������������������������������������� 563

■Chapter 21: Networking������������������������������������������������������������������������������������ 585

■Chapter 22: Java Modularity����������������������������������������������������������������������������� 605

Index��������������������������������������������������������������������������������������������������������������������� 615

vi
Contents

About the Author�������������������������������������������������������������������������������������������������� xliii


About the Technical Reviewer��������������������������������������������������������������������������������xlv
Acknowledgments������������������������������������������������������������������������������������������������xlvii
Introduction�����������������������������������������������������������������������������������������������������������xlix


■Chapter 1: Getting Started with Java 9����������������������������������������������������������������� 1
1-1. Creating a Development Environment���������������������������������������������������������������������� 1
Problem�������������������������������������������������������������������������������������������������������������������������������������������������� 1
Solution�������������������������������������������������������������������������������������������������������������������������������������������������� 1
How It Works������������������������������������������������������������������������������������������������������������������������������������������� 2
1-2. Getting to “Hello, World”������������������������������������������������������������������������������������������� 3
Problem�������������������������������������������������������������������������������������������������������������������������������������������������� 3
Solution�������������������������������������������������������������������������������������������������������������������������������������������������� 3
How It Works������������������������������������������������������������������������������������������������������������������������������������������� 7
1-3. Configuring the CLASSPATH�������������������������������������������������������������������������������������� 9
Problem�������������������������������������������������������������������������������������������������������������������������������������������������� 9
Solution�������������������������������������������������������������������������������������������������������������������������������������������������� 9
How It Works����������������������������������������������������������������������������������������������������������������������������������������� 10
1-4. Organizing Code with Packages����������������������������������������������������������������������������� 11
Problem������������������������������������������������������������������������������������������������������������������������������������������������ 11
Solution������������������������������������������������������������������������������������������������������������������������������������������������ 11
How It Works����������������������������������������������������������������������������������������������������������������������������������������� 12
1-5. Declaring Variables and Access Modifiers�������������������������������������������������������������� 14
Problem������������������������������������������������������������������������������������������������������������������������������������������������ 14
Solution������������������������������������������������������������������������������������������������������������������������������������������������ 14
How It Works����������������������������������������������������������������������������������������������������������������������������������������� 16
vii
■ Contents

1-6. Compiling and Executing from the Command-Line or Terminal Interpreter����������� 17


Problem������������������������������������������������������������������������������������������������������������������������������������������������ 17
Solution������������������������������������������������������������������������������������������������������������������������������������������������ 17
How It Works����������������������������������������������������������������������������������������������������������������������������������������� 18

1-7. Developing Within the Interactive jShell����������������������������������������������������������������� 19


Problem������������������������������������������������������������������������������������������������������������������������������������������������ 19
Solution������������������������������������������������������������������������������������������������������������������������������������������������ 20
How It Works����������������������������������������������������������������������������������������������������������������������������������������� 22

1-8. Converting to and from a String������������������������������������������������������������������������������ 24


Problem������������������������������������������������������������������������������������������������������������������������������������������������ 24
Solution������������������������������������������������������������������������������������������������������������������������������������������������ 24
How It Works����������������������������������������������������������������������������������������������������������������������������������������� 24

1-9. Passing Arguments via Command-Line Execution������������������������������������������������� 25


Problem������������������������������������������������������������������������������������������������������������������������������������������������ 25
Solution������������������������������������������������������������������������������������������������������������������������������������������������ 25
How It Works����������������������������������������������������������������������������������������������������������������������������������������� 26

1-10. Executing a Script via the jShell��������������������������������������������������������������������������� 27


Problem������������������������������������������������������������������������������������������������������������������������������������������������ 27
Solution������������������������������������������������������������������������������������������������������������������������������������������������ 27
How It Works����������������������������������������������������������������������������������������������������������������������������������������� 27

1-11. Accepting Input from the Keyboard���������������������������������������������������������������������� 28


Problem������������������������������������������������������������������������������������������������������������������������������������������������ 28
Solution������������������������������������������������������������������������������������������������������������������������������������������������ 28
How It Works����������������������������������������������������������������������������������������������������������������������������������������� 29

1-12. Documenting Your Code���������������������������������������������������������������������������������������� 30


Problem������������������������������������������������������������������������������������������������������������������������������������������������ 30
Solution������������������������������������������������������������������������������������������������������������������������������������������������ 30
How It Works����������������������������������������������������������������������������������������������������������������������������������������� 31

viii
■ Contents

1-13. Reading Environment Variables���������������������������������������������������������������������������� 33


Problem������������������������������������������������������������������������������������������������������������������������������������������������ 33
Solution������������������������������������������������������������������������������������������������������������������������������������������������ 33
How It Works����������������������������������������������������������������������������������������������������������������������������������������� 34

Summary������������������������������������������������������������������������������������������������������������������������ 34

■Chapter 2: Java 9 Enhancements������������������������������������������������������������������������ 35
2-1. Avoiding Redundancy in Interface Code����������������������������������������������������������������� 35
Problem������������������������������������������������������������������������������������������������������������������������������������������������ 35
Solution������������������������������������������������������������������������������������������������������������������������������������������������ 35
How It Works����������������������������������������������������������������������������������������������������������������������������������������� 36

2-2. Creating Modules for Simplifying and Code Reuse������������������������������������������������� 36


Problem������������������������������������������������������������������������������������������������������������������������������������������������ 36
Solution������������������������������������������������������������������������������������������������������������������������������������������������ 36
How It Works����������������������������������������������������������������������������������������������������������������������������������������� 38

2-3. Easily Retrieving Information on OS Processes������������������������������������������������������ 38


Problem������������������������������������������������������������������������������������������������������������������������������������������������ 38
Solution������������������������������������������������������������������������������������������������������������������������������������������������ 38
How It Works����������������������������������������������������������������������������������������������������������������������������������������� 40

2-4. Handling Errors with Ease�������������������������������������������������������������������������������������� 40


Problem������������������������������������������������������������������������������������������������������������������������������������������������ 40
Solution������������������������������������������������������������������������������������������������������������������������������������������������ 41
How It Works����������������������������������������������������������������������������������������������������������������������������������������� 41

2-5. Filtering Data Before and After a Condition with Streams�������������������������������������� 42


Problem������������������������������������������������������������������������������������������������������������������������������������������������ 42
Solution������������������������������������������������������������������������������������������������������������������������������������������������ 42
How It Works����������������������������������������������������������������������������������������������������������������������������������������� 42

2-6. Developing a Concise HTTP Client�������������������������������������������������������������������������� 43


Problem������������������������������������������������������������������������������������������������������������������������������������������������ 43
Solution������������������������������������������������������������������������������������������������������������������������������������������������ 43
How It Works����������������������������������������������������������������������������������������������������������������������������������������� 44

ix
■ Contents

2-7. Redirecting Platform Logs�������������������������������������������������������������������������������������� 44


Problem������������������������������������������������������������������������������������������������������������������������������������������������ 44
Solution������������������������������������������������������������������������������������������������������������������������������������������������ 44
How It Works����������������������������������������������������������������������������������������������������������������������������������������� 45

2-8. Utilizing Factory Methods to Create Immutable Collections����������������������������������� 45


Problem������������������������������������������������������������������������������������������������������������������������������������������������ 45
Solution������������������������������������������������������������������������������������������������������������������������������������������������ 45
How It Works����������������������������������������������������������������������������������������������������������������������������������������� 46

Summary������������������������������������������������������������������������������������������������������������������������ 46

■Chapter 3: Strings����������������������������������������������������������������������������������������������� 47
Compact Strings: Java 9 String Enhancements������������������������������������������������������������� 47
3-1. Obtaining a Subsection of a String������������������������������������������������������������������������� 47
Problem������������������������������������������������������������������������������������������������������������������������������������������������ 47
Solution������������������������������������������������������������������������������������������������������������������������������������������������ 47
How It Works����������������������������������������������������������������������������������������������������������������������������������������� 48

3-2. Comparing Strings�������������������������������������������������������������������������������������������������� 48


Problem������������������������������������������������������������������������������������������������������������������������������������������������ 48
Solution������������������������������������������������������������������������������������������������������������������������������������������������ 48
How It Works����������������������������������������������������������������������������������������������������������������������������������������� 50

3-3. Trimming Whitespace��������������������������������������������������������������������������������������������� 51


Problem������������������������������������������������������������������������������������������������������������������������������������������������ 51
Solution������������������������������������������������������������������������������������������������������������������������������������������������ 51
How It Works����������������������������������������������������������������������������������������������������������������������������������������� 52

3-4. Changing the Case of a String�������������������������������������������������������������������������������� 52


Problem������������������������������������������������������������������������������������������������������������������������������������������������ 52
Solution������������������������������������������������������������������������������������������������������������������������������������������������ 52
How It Works����������������������������������������������������������������������������������������������������������������������������������������� 52

3-5. Concatenating Strings�������������������������������������������������������������������������������������������� 53


Problem������������������������������������������������������������������������������������������������������������������������������������������������ 53
Solution 1��������������������������������������������������������������������������������������������������������������������������������������������� 53

x
■ Contents

Solution 2��������������������������������������������������������������������������������������������������������������������������������������������� 53
Solution 3��������������������������������������������������������������������������������������������������������������������������������������������� 54
How It Works����������������������������������������������������������������������������������������������������������������������������������������� 54

3-6. Converting Strings to Numeric Values�������������������������������������������������������������������� 55


Problem������������������������������������������������������������������������������������������������������������������������������������������������ 55
Solution 1��������������������������������������������������������������������������������������������������������������������������������������������� 55
Solution 2��������������������������������������������������������������������������������������������������������������������������������������������� 55
How It Works����������������������������������������������������������������������������������������������������������������������������������������� 55

3-7. Iterating Over the Characters of a String���������������������������������������������������������������� 56


Problem������������������������������������������������������������������������������������������������������������������������������������������������ 56
Solution������������������������������������������������������������������������������������������������������������������������������������������������ 56
How It Works����������������������������������������������������������������������������������������������������������������������������������������� 57

3-8. Finding Text Matches���������������������������������������������������������������������������������������������� 58


Problem������������������������������������������������������������������������������������������������������������������������������������������������ 58
Solution 1��������������������������������������������������������������������������������������������������������������������������������������������� 58
Solution 2��������������������������������������������������������������������������������������������������������������������������������������������� 59
How It Works����������������������������������������������������������������������������������������������������������������������������������������� 59

3-9. Replacing All Text Matches������������������������������������������������������������������������������������� 60


Problem������������������������������������������������������������������������������������������������������������������������������������������������ 60
Solution������������������������������������������������������������������������������������������������������������������������������������������������ 61
How It Works����������������������������������������������������������������������������������������������������������������������������������������� 61
3-10. Determining Whether a File Suffix Matches a Given String���������������������������������� 61
Problem������������������������������������������������������������������������������������������������������������������������������������������������ 61
Solution������������������������������������������������������������������������������������������������������������������������������������������������ 62
How It Works����������������������������������������������������������������������������������������������������������������������������������������� 62

3-11. Making a String That Can Contain Dynamic Information�������������������������������������� 62


Problem������������������������������������������������������������������������������������������������������������������������������������������������ 62
Solution 1��������������������������������������������������������������������������������������������������������������������������������������������� 62
Solution 2��������������������������������������������������������������������������������������������������������������������������������������������� 63
How It Works����������������������������������������������������������������������������������������������������������������������������������������� 63

Summary������������������������������������������������������������������������������������������������������������������������ 64

xi
■ Contents


■Chapter 4: Numbers and Dates���������������������������������������������������������������������������� 65
4-1. Rounding Float and Double Values to Integers������������������������������������������������������� 66
Problem������������������������������������������������������������������������������������������������������������������������������������������������ 66
Solution������������������������������������������������������������������������������������������������������������������������������������������������ 66
How It Works����������������������������������������������������������������������������������������������������������������������������������������� 66

4-2. Formatting Double and Long Decimal Values��������������������������������������������������������� 67


Problem������������������������������������������������������������������������������������������������������������������������������������������������ 67
Solution������������������������������������������������������������������������������������������������������������������������������������������������ 67
How It Works����������������������������������������������������������������������������������������������������������������������������������������� 68
4-3. Comparing int Values���������������������������������������������������������������������������������������������� 69
Problem������������������������������������������������������������������������������������������������������������������������������������������������ 69
Solution 1��������������������������������������������������������������������������������������������������������������������������������������������� 69
Solution 2��������������������������������������������������������������������������������������������������������������������������������������������� 69
How It Works����������������������������������������������������������������������������������������������������������������������������������������� 70

4-4. Comparing Floating-Point Numbers������������������������������������������������������������������������ 70


Problem������������������������������������������������������������������������������������������������������������������������������������������������ 70
Solution 1��������������������������������������������������������������������������������������������������������������������������������������������� 70
Solution 2��������������������������������������������������������������������������������������������������������������������������������������������� 71
How It Works����������������������������������������������������������������������������������������������������������������������������������������� 71

4-5. Calculating Monetary Values���������������������������������������������������������������������������������� 71


Problem������������������������������������������������������������������������������������������������������������������������������������������������ 71
Solution 1��������������������������������������������������������������������������������������������������������������������������������������������� 71
Solution 2��������������������������������������������������������������������������������������������������������������������������������������������� 72
How It Works����������������������������������������������������������������������������������������������������������������������������������������� 73

4-6. Randomly Generating Values���������������������������������������������������������������������������������� 74


Problem������������������������������������������������������������������������������������������������������������������������������������������������ 74
Solution 1��������������������������������������������������������������������������������������������������������������������������������������������� 74
Solution 2��������������������������������������������������������������������������������������������������������������������������������������������� 75
How It Works����������������������������������������������������������������������������������������������������������������������������������������� 75

xii
■ Contents

4-7. Obtaining the Current Date Without Time��������������������������������������������������������������� 76


Problem������������������������������������������������������������������������������������������������������������������������������������������������ 76
Solution������������������������������������������������������������������������������������������������������������������������������������������������ 76
How It Works����������������������������������������������������������������������������������������������������������������������������������������� 76

4-8. Obtaining a Date Object Given Date Criteria����������������������������������������������������������� 76


Problem������������������������������������������������������������������������������������������������������������������������������������������������ 76
Solution������������������������������������������������������������������������������������������������������������������������������������������������ 76
How It Works����������������������������������������������������������������������������������������������������������������������������������������� 77

4-9. Obtaining a Year-Month-Day Date Combination������������������������������������������������������ 77


Problem������������������������������������������������������������������������������������������������������������������������������������������������ 77
Solution 1��������������������������������������������������������������������������������������������������������������������������������������������� 77
Solution 2��������������������������������������������������������������������������������������������������������������������������������������������� 77
How It Works����������������������������������������������������������������������������������������������������������������������������������������� 78

4-10. Obtaining and Calculating Times Based on the Current Time������������������������������� 78


Problem������������������������������������������������������������������������������������������������������������������������������������������������ 78
Solution������������������������������������������������������������������������������������������������������������������������������������������������ 78
How It Works����������������������������������������������������������������������������������������������������������������������������������������� 79

4-11. Obtaining and Using the Date and Time Together������������������������������������������������� 80


Problem������������������������������������������������������������������������������������������������������������������������������������������������ 80
Solution 1��������������������������������������������������������������������������������������������������������������������������������������������� 80
Solution 2��������������������������������������������������������������������������������������������������������������������������������������������� 82
Solution 3��������������������������������������������������������������������������������������������������������������������������������������������� 82
How It Works����������������������������������������������������������������������������������������������������������������������������������������� 83

4-12. Obtaining a Machine Timestamp�������������������������������������������������������������������������� 84


Problem������������������������������������������������������������������������������������������������������������������������������������������������ 84
Solution������������������������������������������������������������������������������������������������������������������������������������������������ 84
How It Works����������������������������������������������������������������������������������������������������������������������������������������� 85

4-13. Converting Dates and Times Based on the Time Zone������������������������������������������ 85


Problem������������������������������������������������������������������������������������������������������������������������������������������������ 85
Solution������������������������������������������������������������������������������������������������������������������������������������������������ 85
How It Works����������������������������������������������������������������������������������������������������������������������������������������� 87

xiii
■ Contents

4-14. Comparing Two Dates������������������������������������������������������������������������������������������� 88


Problem������������������������������������������������������������������������������������������������������������������������������������������������ 88
Solution������������������������������������������������������������������������������������������������������������������������������������������������ 88
How It Works����������������������������������������������������������������������������������������������������������������������������������������� 89

4-15. Finding the Interval Between Dates and Times���������������������������������������������������� 89


Problem������������������������������������������������������������������������������������������������������������������������������������������������ 89
Solution 1��������������������������������������������������������������������������������������������������������������������������������������������� 89
Solution 2��������������������������������������������������������������������������������������������������������������������������������������������� 90
Solution 3��������������������������������������������������������������������������������������������������������������������������������������������� 91
How It Works����������������������������������������������������������������������������������������������������������������������������������������� 91

4-16. Obtaining Date-Time from a Specified String������������������������������������������������������� 92


Problem������������������������������������������������������������������������������������������������������������������������������������������������ 92
Solution������������������������������������������������������������������������������������������������������������������������������������������������ 92
How It Works����������������������������������������������������������������������������������������������������������������������������������������� 93

4-17. Formatting Dates for Display�������������������������������������������������������������������������������� 94


Problem������������������������������������������������������������������������������������������������������������������������������������������������ 94
Solution 1��������������������������������������������������������������������������������������������������������������������������������������������� 94
Solution 2��������������������������������������������������������������������������������������������������������������������������������������������� 94
How It Works����������������������������������������������������������������������������������������������������������������������������������������� 95

4-18. Writing Readable Numeric Literals����������������������������������������������������������������������� 97


Problem������������������������������������������������������������������������������������������������������������������������������������������������ 97
Solution������������������������������������������������������������������������������������������������������������������������������������������������ 97
How It Works����������������������������������������������������������������������������������������������������������������������������������������� 97

4-19. Declaring Binary Literals��������������������������������������������������������������������������������������� 97


Problem������������������������������������������������������������������������������������������������������������������������������������������������ 97
Solution������������������������������������������������������������������������������������������������������������������������������������������������ 98
How It Works����������������������������������������������������������������������������������������������������������������������������������������� 98

Summary������������������������������������������������������������������������������������������������������������������������ 98

xiv
■ Contents


■Chapter 5: Object-Oriented Java������������������������������������������������������������������������� 99
5-1. Controlling Access to Members of a Class�������������������������������������������������������������� 99
Problem������������������������������������������������������������������������������������������������������������������������������������������������ 99
Solution������������������������������������������������������������������������������������������������������������������������������������������������ 99
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 100

5-2. Making Private Fields Accessible to Other Classes���������������������������������������������� 100


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 100
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 100
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 100
5-3. Creating a Class with a Single Instance��������������������������������������������������������������� 101
Problem���������������������������������������������������������������������������������������������������������������������������������������������� 101
Solution 1������������������������������������������������������������������������������������������������������������������������������������������� 101
Solution 2������������������������������������������������������������������������������������������������������������������������������������������� 103
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 103

5-4. Generating Instances of a Class��������������������������������������������������������������������������� 104


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 104
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 104
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 106

5-5. Creating Reusable Objects������������������������������������������������������������������������������������ 106


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 106
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 106
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 107

5-6. Defining an Interface for a Class�������������������������������������������������������������������������� 108


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 108
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 108
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 108

5-7. Modifying Interfaces Without Breaking Existing Code������������������������������������������ 110


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 110
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 110
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 111

xv
■ Contents

5-8. Constructing Instances of the Same Class with Different Values������������������������� 112
Problem���������������������������������������������������������������������������������������������������������������������������������������������� 112
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 112
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 115

5-9. Interacting with a Class via Interfaces������������������������������������������������������������������ 116


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 116
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 116
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 116

5-10. Making a Class Cloneable����������������������������������������������������������������������������������� 117


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 117
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 117
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 121

5-11. Comparing Objects��������������������������������������������������������������������������������������������� 121


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 121
Solution 1������������������������������������������������������������������������������������������������������������������������������������������� 121
Solution 2������������������������������������������������������������������������������������������������������������������������������������������� 122
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 125

5-12. Extending the Functionality of a Class���������������������������������������������������������������� 126


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 126
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 126
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 129

5-13. Defining a Template for Classes to Extend��������������������������������������������������������� 129


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 129
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 129
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 130

5-14. Increasing Class Encapsulation�������������������������������������������������������������������������� 131


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 131
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 131
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 134

Summary���������������������������������������������������������������������������������������������������������������������� 136

xvi
■ Contents


■Chapter 6: Lambda Expressions������������������������������������������������������������������������ 137
6-1. Writing a Simple Lambda Expression������������������������������������������������������������������� 137
Problem���������������������������������������������������������������������������������������������������������������������������������������������� 137
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 137
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 138

6-2. Enabling the Use of Lambda Expressions������������������������������������������������������������� 140


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 140
Solution 1������������������������������������������������������������������������������������������������������������������������������������������� 140
Solution 2������������������������������������������������������������������������������������������������������������������������������������������� 140
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 141
6-3. Invoking Existing Methods by Name��������������������������������������������������������������������� 143
Problem���������������������������������������������������������������������������������������������������������������������������������������������� 143
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 144
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 145

6-4. Sorting with Fewer Lines of Code������������������������������������������������������������������������� 147


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 147
Solution 1������������������������������������������������������������������������������������������������������������������������������������������� 148
Solution 2������������������������������������������������������������������������������������������������������������������������������������������� 148
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 149

6-5. Filtering a Collection of Data��������������������������������������������������������������������������������� 149


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 149
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 150
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 150

6-6. Implementing Runnable���������������������������������������������������������������������������������������� 150


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 150
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 150
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 151

6-7. Replacing Anonymous Inner Classes�������������������������������������������������������������������� 151


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 151
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 151
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 152

xvii
■ Contents

6-8. Accessing Class Variables from a Lambda Expression����������������������������������������� 153


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 153
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 153
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 154

6-9. Passing Lambda Expressions to Methods������������������������������������������������������������ 155


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 155
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 155
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 157

Summary���������������������������������������������������������������������������������������������������������������������� 157

■Chapter 7: Data Sources and Collections���������������������������������������������������������� 159
7-1. Defining a Fixed Set of Related Constants������������������������������������������������������������ 159
Problem���������������������������������������������������������������������������������������������������������������������������������������������� 159
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 159
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 161

7-2. Designing Intelligent Constants���������������������������������������������������������������������������� 162


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 162
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 162
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 165

7-3. Executing Code Based on a Specified Value��������������������������������������������������������� 166


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 166
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 166
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 169

7-4. Working with Fix-Sized Arrays������������������������������������������������������������������������������ 170


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 170
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 170
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 172

7-5. Safely Enabling Types or Methods to Operate on Objects of Various Types���������� 174
Problem���������������������������������������������������������������������������������������������������������������������������������������������� 174
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 175
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 176

xviii
■ Contents

7-6. Working with Dynamic Arrays������������������������������������������������������������������������������� 180


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 180
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 180
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 182

7-7. Making Your Objects Iterable�������������������������������������������������������������������������������� 183


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 183
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 183
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 185

7-8. Iterating Over Collections�������������������������������������������������������������������������������������� 186


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 186
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 186
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 188

7-9. Iterating Over a Map��������������������������������������������������������������������������������������������� 189


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 189
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 189
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 190

7-10. Executing Streams in Parallel����������������������������������������������������������������������������� 192


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 192
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 192
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 193

Summary���������������������������������������������������������������������������������������������������������������������� 193

■Chapter 8: Input and Output������������������������������������������������������������������������������ 195
8-1. Serializing Java Objects���������������������������������������������������������������������������������������� 196
Problem���������������������������������������������������������������������������������������������������������������������������������������������� 196
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 196
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 197

8-2. Serializing Java Objects More Efficiently�������������������������������������������������������������� 199


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 199
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 199
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 199

xix
■ Contents

8-3. Serializing Java Objects as XML��������������������������������������������������������������������������� 200


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 200
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 200
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 201

8-4. Creating a Socket Connection and Sending Serializable Objects


Across the Wire����������������������������������������������������������������������������������������������������� 202
Problem���������������������������������������������������������������������������������������������������������������������������������������������� 202
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 202
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 204

8-5. Obtaining the Java Execution Path����������������������������������������������������������������������� 205


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 205
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 205
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 205

8-6. Copying a File������������������������������������������������������������������������������������������������������� 205


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 205
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 206
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 206

8-7. Moving a File�������������������������������������������������������������������������������������������������������� 206


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 206
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 206
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 207

8-8. Creating a Directory���������������������������������������������������������������������������������������������� 207


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 207
Solution 1������������������������������������������������������������������������������������������������������������������������������������������� 207
Solution 2������������������������������������������������������������������������������������������������������������������������������������������� 207
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 208

8-9. Iterating Over Files in a Directory������������������������������������������������������������������������� 208


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 208
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 208
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 209

xx
■ Contents

8-10. Querying (and Setting) File Metadata����������������������������������������������������������������� 209


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 209
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 209
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 210

8-11. Monitoring a Directory for Content Changes������������������������������������������������������ 211


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 211
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 211
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 212

8-12. Reading Property Files���������������������������������������������������������������������������������������� 212


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 212
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 213
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 214

8-13. Uncompressing Files������������������������������������������������������������������������������������������ 214


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 214
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 214
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 215

8-14. Managing Operating System Processes������������������������������������������������������������� 216


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 216
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 216
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 217

Summary���������������������������������������������������������������������������������������������������������������������� 219

■Chapter 9: Exceptions and Logging������������������������������������������������������������������� 221
9-1. Catching Exceptions��������������������������������������������������������������������������������������������� 222
Problem���������������������������������������������������������������������������������������������������������������������������������������������� 222
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 222
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 223

9-2. Guaranteeing a Block of Code Is Executed����������������������������������������������������������� 223


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 223
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 224
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 224

xxi
■ Contents

9-3. Throwing Exceptions��������������������������������������������������������������������������������������������� 224


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 224
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 225
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 225

9-4. Catching Multiple Exceptions������������������������������������������������������������������������������� 225


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 225
Solution 1������������������������������������������������������������������������������������������������������������������������������������������� 225
Solution 2������������������������������������������������������������������������������������������������������������������������������������������� 226
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 226

9-5. Catching the Uncaught Exceptions����������������������������������������������������������������������� 227


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 227
Solution 1������������������������������������������������������������������������������������������������������������������������������������������� 227
Solution 2������������������������������������������������������������������������������������������������������������������������������������������� 227
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 228

9-6. Managing Resources with try/catch Blocks��������������������������������������������������������� 228


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 228
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 228
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 229

9-7. Creating an Exception Class��������������������������������������������������������������������������������� 229


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 229
Solution 1������������������������������������������������������������������������������������������������������������������������������������������� 229
Solution 2������������������������������������������������������������������������������������������������������������������������������������������� 230
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 230

9-8. Rethrowing the Caught Exception������������������������������������������������������������������������ 230


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 230
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 230
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 231

9-9. Logging Events Within Your Application���������������������������������������������������������������� 231


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 231
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 231
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 232

xxii
■ Contents

9-10. Rotating and Purging Logs���������������������������������������������������������������������������������� 233


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 233
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 233
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 233

9-11. Logging Exceptions��������������������������������������������������������������������������������������������� 234


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 234
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 234
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 235

9-12. Logging with the Unified JVM Logger����������������������������������������������������������������� 235


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 235
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 235
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 236

Summary���������������������������������������������������������������������������������������������������������������������� 237

■Chapter 10: Concurrency����������������������������������������������������������������������������������� 239
10-1. Starting a Background Task�������������������������������������������������������������������������������� 239
Problem���������������������������������������������������������������������������������������������������������������������������������������������� 239
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 239
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 240

10-2. Updating (and Iterating) a Map��������������������������������������������������������������������������� 240


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 240
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 241
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 241

10-3. Inserting a Key into a Map Only If the Key Is Not Already Present���������������������� 242
Problem���������������������������������������������������������������������������������������������������������������������������������������������� 242
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 242
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 243

10-4. Iterating Through a Changing Collection������������������������������������������������������������� 244


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 244
Solution 1������������������������������������������������������������������������������������������������������������������������������������������� 244
Solution 2������������������������������������������������������������������������������������������������������������������������������������������� 244
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 244

xxiii
■ Contents

10-5. Coordinating Different Collections���������������������������������������������������������������������� 245


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 245
Solution 1������������������������������������������������������������������������������������������������������������������������������������������� 245
Solution 2������������������������������������������������������������������������������������������������������������������������������������������� 246
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 247

10-6. Splitting Work into Separate Threads����������������������������������������������������������������� 249


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 249
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 249
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 249

10-7. Coordinating Threads������������������������������������������������������������������������������������������ 250


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 250
Solution 1������������������������������������������������������������������������������������������������������������������������������������������� 250
Solution 2������������������������������������������������������������������������������������������������������������������������������������������� 251
Solution 3������������������������������������������������������������������������������������������������������������������������������������������� 252
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 253

10-8. Creating Thread-Safe Objects����������������������������������������������������������������������������� 255


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 255
Solution 1������������������������������������������������������������������������������������������������������������������������������������������� 255
Solution 2������������������������������������������������������������������������������������������������������������������������������������������� 256
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 256

10-9. Implementing Thread-Safe Counters������������������������������������������������������������������ 257


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 257
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 257
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 257

10-10. Breaking Down Tasks into Discrete Units of Work�������������������������������������������� 258


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 258
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 258
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 260

xxiv
■ Contents

10-11. Updating a Common Value Across Multiple Threads����������������������������������������� 261


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 261
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 261
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 263

10-12. Executing Multiple Tasks Asynchronously�������������������������������������������������������� 264


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 264
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 264
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 265

Summary���������������������������������������������������������������������������������������������������������������������� 266

■Chapter 11: Debugging and Unit Testing����������������������������������������������������������� 267
11-1. Understanding Exceptions���������������������������������������������������������������������������������� 267
Problem���������������������������������������������������������������������������������������������������������������������������������������������� 267
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 267
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 268

11-2. Locking Down Behavior of Your Classes������������������������������������������������������������� 268


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 268
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 269
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 270

11-3. Scripting Your Unit Tests������������������������������������������������������������������������������������� 270


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 270
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 271
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 273

11-4. Finding Bugs Early���������������������������������������������������������������������������������������������� 273


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 273
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 274
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 275

11-5. Monitoring Garbage Collection in Your Application��������������������������������������������� 276


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 276
Solution 1������������������������������������������������������������������������������������������������������������������������������������������� 276
Solution 2������������������������������������������������������������������������������������������������������������������������������������������� 276
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 278

xxv
■ Contents

11-6. Obtaining a Thread Dump����������������������������������������������������������������������������������� 278


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 278
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 278
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 284


■Chapter 12: Unicode, Internationalization, and Currency Codes����������������������� 285
12-1. Converting Unicode Characters to Digits������������������������������������������������������������ 285
Problem���������������������������������������������������������������������������������������������������������������������������������������������� 285
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 285
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 287

12-2. Creating and Working with Locales�������������������������������������������������������������������� 287


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 287
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 287
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 290

12-3. Setting the Default Locale���������������������������������������������������������������������������������� 291


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 291
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 291
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 292

12-4. Matching and Filtering Locales��������������������������������������������������������������������������� 293


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 293
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 293
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 295

12-5. Searching Unicode with Regular Expressions���������������������������������������������������� 295


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 295
Solution 1������������������������������������������������������������������������������������������������������������������������������������������� 295
Solution 2������������������������������������������������������������������������������������������������������������������������������������������� 297
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 297

12-6. Overriding the Default Currency������������������������������������������������������������������������� 298


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 298
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 298
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 299

xxvi
■ Contents

12-7. Converting Byte Arrays to and from Strings������������������������������������������������������� 300


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 300
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 300
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 301

12-8. Converting Character Streams and Buffers�������������������������������������������������������� 302


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 302
Solution 1������������������������������������������������������������������������������������������������������������������������������������������� 302
Solution 2������������������������������������������������������������������������������������������������������������������������������������������� 302
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 303

12-9. Setting the Search Order of Locale-Sensitive Services�������������������������������������� 304


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 304
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 304
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 304

Summary���������������������������������������������������������������������������������������������������������������������� 304

■Chapter 13: Working with Databases���������������������������������������������������������������� 305
13-1. Connecting to a Database����������������������������������������������������������������������������������� 305
Problem���������������������������������������������������������������������������������������������������������������������������������������������� 305
Solution 1������������������������������������������������������������������������������������������������������������������������������������������� 305
Solution 2������������������������������������������������������������������������������������������������������������������������������������������� 306
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 306

13-2. Handling Connection and SQL Exceptions���������������������������������������������������������� 308


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 308
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 308
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 309

13-3. Querying a Database and Retrieving Results������������������������������������������������������ 310


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 310
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 310
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 310

xxvii
■ Contents

13-4. Performing CRUD Operations������������������������������������������������������������������������������ 312


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 312
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 312
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 314

13-5. Simplifying Connection Management����������������������������������������������������������������� 315


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 315
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 315
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 318

13-6. Guarding Against SQL Injection��������������������������������������������������������������������������� 318


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 318
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 319
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 320

13-7. Performing Transactions������������������������������������������������������������������������������������� 322


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 322
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 322
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 324

13-8. Creating a Scrollable ResultSet�������������������������������������������������������������������������� 326


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 326
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 326
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 327

13-9. Creating an Updatable ResultSet������������������������������������������������������������������������ 328


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 328
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 328
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 329

13-10. Caching Data for Use When Disconnected�������������������������������������������������������� 330


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 330
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 330
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 333

xxviii
■ Contents

13-11. Joining RowSet Objects When Not Connected to the Data Source������������������� 335
Problem���������������������������������������������������������������������������������������������������������������������������������������������� 335
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 335
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 340

13-12. Filtering Data in a RowSet�������������������������������������������������������������������������������� 341


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 341
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 341
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 345

13-13. Querying and Storing Large Objects����������������������������������������������������������������� 346


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 346
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 347
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 348

13-14. Invoking Stored Procedures������������������������������������������������������������������������������ 349


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 349
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 350
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 350

13-15. Obtaining Dates for Database Use�������������������������������������������������������������������� 351


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 351
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 351
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 352

13-16. Closing Resources Automatically���������������������������������������������������������������������� 352


Problem���������������������������������������������������������������������������������������������������������������������������������������������� 352
Solution���������������������������������������������������������������������������������������������������������������������������������������������� 352
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 353

Summary���������������������������������������������������������������������������������������������������������������������� 353

■Chapter 14: JavaFX Fundamentals�������������������������������������������������������������������� 355
14-1. Creating a Simple User Interface������������������������������������������������������������������������ 356
Problem���������������������������������������������������������������������������������������������������������������������������������������������� 356
Solution 1������������������������������������������������������������������������������������������������������������������������������������������� 356
Solution 2������������������������������������������������������������������������������������������������������������������������������������������� 357
How It Works��������������������������������������������������������������������������������������������������������������������������������������� 359

xxix
Exploring the Variety of Random
Documents with Different Content
OFFENER BRIEF AN EINEN
UNBEKANNTEN

S EHR geehrter Herr! Ich nehme mir die Freiheit, in aller


Öffentlichkeit ein Schreiben an Sie zu richten, weil ich Sie nicht
länger darüber im Unklaren lassen möchte, wie unsympathisch
Sie mir sind.
Mit Erstaunen werden Sie fragen, welche Gründe um alles in der
Welt mich, der ich Sie nicht kenne, bewegen, Sie einen mir
unsympathischen Menschen zu heißen.
So hören Sie denn, daß ich nicht den winzigsten Grund habe, um
so mehr, als ich Sie, wie gesagt, nicht kenne.
Trotzdem sind Sie mir in tiefster Seele und aus einem, wenn ich
mich so ausdrücken darf, allgemeinen Gefühl heraus unausstehlich,
und ich versichere laut, daß ich jeden Zug Ihres Wesens, jede Spur
Ihres Seins widerlich finde, mögen Sie existieren oder nicht.
Ich bin überzeugt, daß Ihre sauber genähten Krawatten mir nicht
minder auf die Nerven fallen würden als die Handbewegungen,
womit Sie Ihrer jüngsten Tochter, wenn Sie eine hätten, über den
Scheitel fahren, wenn sie einen hätte, und daß mich die Geschwulst
hinter Ihrem rechten Ohre, gesetzt, Sie hätten eine, ebenso peinlich
berühren würde wie die Art, in der Sie über Angelegenheiten der
inneren Politik sprechen — wenn Sie darüber sprechen. Warum
übrigens in drei Teufels Namen lassen Sie sich jene Geschwulst
hinter dem rechten Ohre nicht endlich operieren — für den Fall, Sie
haben eine?
Sie gelten mir, klipp und klar, in jedweder Hinsicht als vollendeter
Typus eines Proleten — herrisch, ordinär, albern, rücksichtslos und
seicht, wie Sie hoffentlich sind. Um das Maß voll zu machen, lieben
Sie — Sie werden mich darin nicht enttäuschen — das Skatspiel und
die Lektüre infamer Schmöker, die nicht angeführt sein mögen, und
entrüsten sich womöglich als sogenannter Gegner des Fremdwortes,
daß ich Wörter wie «Lektüre» und «infam» anwende.
Ich gebe zu, daß ich meinem Vorurteil, das am Äußerlichen haftet,
allzu willfährig bin und besser daran täte, Ihr Inneres zu prüfen, muß
indessen zu meiner Rechtfertigung erklären, daß ich die
«Unsympathischkeit» auf den ersten Blick, die sich jederzeit in das
Gegenteil verkehren könnte, bei weitem der «Sympathischkeit», um
nicht zu sagen «Liebe» auf den ersten Blick den Vorzug gebe,
welche kritischen Erschütterungen nur in seltenen Fällen
standzuhalten vermag.
Mit Freuden bin ich bereit, mich mit Ihnen, den ich gottlob nicht
kenne, und von dem ich nicht weiß, ob er überhaupt auf Erden
wandelt, an drittem Orte zu treffen, um die wenig erquicklichen
Beziehungen, die uns verknüpfen, in erfreulichere oder sogar
erfreuliche zu verändern, obwohl ich meine Besorgnis nicht
verhehlen möchte, daß Sie gerade bei naher Bekanntschaft und nach
Preisgabe Ihres Inwendigen ein gräßliches Subjekt, unter
Umständen sogar ein hierorts als «Mistvieh» zu bezeichnendes
Individuum abgeben dürften, dem ich besser aus dem Wege trete.
Lassen wir es also zu beiderseitigem Vorteile bei der bestehenden
Unbekanntschaft verbleiben, und bauen wir auf unser Vorurteil, das
sicherlich wohl begründet ist, sei es auch nur gefühlsmäßig. «Unser»
Vorurteil schreibe ich, da ich allzu gut weiß, wie wenig Sie Ihrerseits
mich leiden mögen — mich, den es gibt.
Mit dem Ausdrucke vollkommener Hochachtung bin ich Ihnen, den
es nicht gibt, ergeben und schließe mit dem Bemerken, daß die
letztgebrauchte Redewendung eine leere Phrase ist und nichts
weiter.
H. R.
DER OCHSE
Personen:
Hans
Kurt
Theo

« W AS«Ich
stehst du da und sinnst?»
sinne nicht. Ich warte auf Theo.»
«Wartest du lange?»
«Ja, aber er kommt nicht.»
«Ich will dir helfen. Du weißt, daß der Ochse kommt, wenn man
von ihm spricht?»
«Freilich.»
«Also laß uns von Theo sprechen.»
Hans und Kurt sprechen von Theo, damit der Ochse kommt.
Aber er kommt nicht.
«Du, unser Sprechen ist für die Katz’. Theo kommt nicht.»
«Nein, er kommt nicht.»
Theo kommt.
Hans und Kurt brechen gleichzeitig in die Worte aus: «Siehst du,
er ist d o c h ein Ochse!»
«Wer?» fragt Theo.
«Du!» lautet die fröhliche Antwort.
Theo ist vom Gegenteil überzeugt.
VON DEM MANNE, DER AUSZOG,
ERDBEEREN ZU SUCHEN UND
PFIFFERLINGE MIT HEIMBRACHTE

E INE sehr schöne Geschichte.


Von mir.
Und außerdem eine sehr kurze Geschichte.
Aber auch kurze Geschichten können schön sein.
Ich liebe die kurzen Geschichten, die schön sind.
Dies ist eine.
Wenigstens meiner Meinung nach.
Also: ein Mann ging in den Wald, um Erdbeeren zu suchen.
Sogenannte Walderdbeeren.
(Weil sie im Walde wachsen!)
Aber er fand keine.
Aber Pfifferlinge fand er.
Einen ganzen Sack voll.
Er ging heim mit seinem Sack voller Pfifferlinge oder Pfefferlinge.
In Sachsen sagt man «Gehlchen».
Die Sachsen müssen immer eine Extrawurst haben.
Na, und die schmorte er sich.[1]
Und aß sie.
Und die schmeckten sehr gut.
[1] Die Pilze, meine Verehrten!

In Sachsen sagt man «schmeckten sehr s c h ö n ».


Die schmeckten also sehr schön.
Und da freute sich der Mann schrecklich und vergaß völlig, daß er
in den Wald gegangen war, um Erdbeeren zu suchen.
* *
*
Das ist die ganze Geschichte.
Ist sie nicht schön?
DIE WAHRHEIT

U M es ganz aufrichtig und ehrlich zu sagen, so halte ich —


menschlich — jeden beliebigen Kaufmann für tausendmal
wertvoller als irgendeinen Künstler.
Man wird mir diesen Satz nicht glauben — um so weniger, als ich
heftig beteuere, ihn durchweg ernst zu meinen.
Aber: ich halte zehn gute Kaufleute, Gott straf mich, für
tausendmal wichtiger — menschlich — als einen halben
Gymnasiallehrer.
Auch diesen Satz wird mir niemand glauben.
Nun denn, ganz aufrichtig und ehrlich: ich halte weder Kaufmann
noch Lehrer für wichtig, geschweige denn für wertvoll. Den Künstler
erst recht nicht.
Dies ist voller Ernst und mein letztes Wort in dieser Sache.
Punktum.
KEIN SCHÖNRER TOD IST AUF DER
WELT . . .

A LS es 418 (418!) Tage lang, 418 Tage lang hintereinander, 418


Tage lang ununterbrochen hintereinander geregnet hatte, 418
Tage lang geregnet hatte, waren alle Wesen des Lebens
überdrüssig.
Und der hochbetagte Bibliothekar Stibulke sprach zu seiner Frau:
«Rosa, weißt du was, wir ersäufen uns!»
Das war aber gar nicht mehr nötig; denn — siehe — in demselben
Augenblicke wurde das Ehepaar von den eindringenden Fluten
hinweggespült.
SERENISSIMUS JAGT
SCHMETTERLINGE

S ERENISSIMUS jagt Schmetterlinge. Für seine Sammlung. — Hat


eine Schmetterlings-Sammlung. — Lauter Schmetterlinge. Und
Käfer. — Und Briefmarken. — Alles durcheinander. — Auch
Strumpfbänder. Weibliche. — Souvenirs. — Namentlich
Strumpfbänder. — Nebenbei auch einige Schmetterlinge. — Zwei
oder drei. — Oder einen? — Ja, e i n e n . Einen einzigen. Tja. Aber
einen ganz seltenen! — Ein Mistpfauenauge. Oder so ähnlich. Ganz
drolliges Viech. — Sieht aus wie en Käfer. — Tja. — Ist auch en
Käfer. Heißt genau genommen Mistpfauenkäfer. — Oder so ähnlich.
— Oder Mistkäfer. — Ja: Mistkäfer. — Geschmacklos. — Warum nich
Guanokäfer? Oder Kloakenkäfer? — Tja. — Ein entzückender
Kloakenkäfer. — Schillert in allen Farben. — Täuschend imitiert. —
Sieht aus wie echt. Wie wenn er lebte. — Tja. — War ooch teuer
genug! Zierte Lisas Strumpfbänder, die Katze. — Z w e i waren es
sogar. Eigentlich. Ursprünglich. — Na, der e i n e ist gerettet. —
Apartes Andenken. An die verflossene Lisa. — Saßen auf dem
Strumpfband, die beiden Käfer. Oder vielmehr: auf d e n
Strumpfbändern. Auf jedem einer. — Lisa mußte zweie haben. —
Dolles Weib. T, t, t, t. — Viel Geld gekostet. — Tja. — Na, egal. —
War die Sache wert. — Süßer Käfer. — Hat Karriere gemacht. —
Nach unten. — Bis in den Rinnstein. — Ooch en Kloakenkäfer
geworden. Oder Mistkäfer. — Hähä, blendender Witz. — Jaja, feines
Köppchen! — Tja. — Na, wolln ma sehn, was sich tun läßt.
Serenissimus stelzt über ein Stoppelfeld. Das Schmetterlingsnetz
in der Hand.
Er will seine Sammlung bereichern.
Schmetterlinge jagen ist sein neuster Sport.
Serenissimus ist passionierter Schmetterlingsjäger.
Absolut einwandfrei edles Weidwerk.
Totschick! — Heissa, hussa!
Serenissimus stelzt über das Stoppelfeld. Mit sagenhaft elastischen
Schritten.
Einem Schmetterling ist er auf den Fersen.
Einem Sauerkohlweißling.
Der schillert so angenehm rötlich.
Vielleicht gar en Rotkohlweißling?
Oder en Sauerkohlrötling?
Vertrackt schwierige Kiste, Schmetterlinge jagen.
Die Tiere flattern in der Luft herum.
Sind gar nich en bißchen zutraulich.
Na, wern den Kerl schon kriegen!
— Serenissimus stelzt über die Stoppeln. Dem Weißling hinterher.
Da geschieht etwas durchaus Unerwartetes.
Eine Dampfwalze kommt in rasendem Tempo auf Serenissimus
zugeschossen. Wie ein Pfeil.
Serenissimus, der bei e i n e m H a a r e den Weißling im Netz
hatte, springt — juchopps — mit einem Fluch beiseite.
Himmelherrgottspappedeckel, Klabund und Wolkenbruch!!
— — — Die Dampfwalze prescht wie besessen an dem
verdatterten Ferschten vorüber . . . .
Da bemerkt Serenissimus dort, wo die Dampfwalze ihren Weg
genommen hat, einen rotgelben Tupfen: den zu Brei gequetschten
Sauerkohlrotweißling.
Er hebt ihn auf und steckt ihn ins Netz.
Das Netz schultert er und geht heim. Serenissime.
So fing Serenissimus seinen ersten
Schmetterling.
* *
*
Daraus geht hervor: Um einem Serenissimo dienstbar zu sein,
scheuen die himmlischen Gewalten weder Kosten noch Mühe.
DAS ZIMMER

L INKS eine Wand. Rechts eine Wand. Vorn eine Wand. Hinten eine
Wand. Oben die Decke. Unten die Diele. — In der linken Wand
eine Tür, in der rechten Wand zwei Fenster, in der vorderen
Wand nichts, in der hinteren Wand nichts. — An allen vier Wänden
Tapete. — In der Mitte der Diele ein Tisch, darauf eine Vase. Um den
Tisch drei Stühle. An der rechten Wand zwischen den Fenstern ein
Büchergestell. An der linken Wand über der Tür ein Haussegen. An
der vorderen Wand ein Ofen, ein Waschtisch, ein Bett, ein Spiegel.
An der hinteren Wand ein Sofa, ein Schreibtisch mit Lehnsessel, ein
Schrank; über dem Sofa ein großes Bild. An der Decke eine Lampe.
Dies ist ein Zimmer. —
Was ist ein Zimmer? — Ein Selbstmordmotiv.
Öde, kahl, ekel. — — —
Laß an den Fenstern Gardinen anbringen, und in der
Dämmerstunde stell auf den Tisch die duftenden Reseden: — das
Zimmer ist traut und wohnlich.
Und liegt ein sündhaft schönes Weib im Bett, der Teufel hole dich,
wenn du das Zimmer nicht mit Lust beziehst.
HAND UND AUGE
(Ein Reise-Erlebnis)

Personen:
Die anmutige Dame
Der stattliche Herr
Ort:
Eisenbahn-Abteil 2. Klasse

D ER Herr: «Darf ich das Fenster öffnen?»


Die Dame: «Ja.»
Der Herr: «Stört es Sie, wenn ich eine Zigarette rauche?»
Die Dame: «Nein.»
Der Herr: «Darf ich fragen, wohin Ihre Reise geht?»
Die Dame: «Ja. Nach Danzig.»
Der Herr: «Wie sich das trifft! Ausgerechnet nach Danzig fahre
auch i c h !»
Der Herr: «Ist es Ihnen unangenehm, mit mir im selben Abteil
fahren zu müssen?»
Die Dame: «Nein.»
Der Herr: «Fahren Sie gern Eisenbahn?»
Die Dame: «Nein.»
——
Ein Gespräch kommt nicht zustande.
Es ist frostern im Abteil. Die Dame ist zugeknöpft. Der Herr
versucht es mit einem Gewaltmittel:
«Schauen Sie», spricht er, «ich hab’ ein Glasauge!» und nimmt
sein linkes Auge heraus.
Die Dame taut auf: «Ach!? — Ist das echt?»
«Jawohl — es ist ein echtes nachgemachtes Auge.»
«Gott, wie goldig!»
«Nicht wahr?»
«Und o h n e das Auge sehen Sie gar nichts?»
«Nein, nicht das mindeste.»
«Und m i t dem Auge?»
«Sehe ich auch nichts!»
«Ja, ist denn das Auge nicht durchsichtig?»
«Doch — aber womit sollte ich hindurchsehen?»
«Haben Sie das Auge verloren?»
«Ja — ein Fräulein hat es mir mit der Hutnadel ausgestochen.»
«Wie gemein!»
«Ich habe mich gebührend gerächt.»
«Inwiefern?»
«Ich habe das Fräulein geheiratet.»
Die Dame rückt ab und knöpft sich wiederum zu. Der Herr hat
seinen Reiz zur guten Hälfte verloren. Er ist verheiratet!
Der Herr steckt sein Auge ein.
Die Dame — nach langer Pause —: «Sie tragen ja gar keinen
Trauring?»
«Nein, warum? Ich bin ja nicht verheiratet.»
«Sie sagten doch . . .»
«Ein Scherz.»
«Aber das falsche Auge ist doch wenigstens e c h t , wie?»
«Völlig echt, meine Gnädige.»
«Darf ich es mal sehen?»
«Mit Vergnügen.»
Der Herr reicht der Dame das echte falsche Auge. Die Dame
nimmt es in die linke Hand.
Sie faßt das Auge scharf ins Auge und spricht:
«Es ist täuschend imitiert. Besser als diese meine linke Hand.»
«Was ist mit der Hand?»
«Sie ist künstlich. Aus Marmor.»
«Seltsam. Ein falsches Auge in falscher Hand!»
«Ich finde das weniger seltsam, als wenn ein echtes Auge in einer
echten Hand läge.»
«So? Wäre das seltsamer?»
«Es wäre nicht nur seltsamer, es wäre u n m ö g l i c h .»
«Es ist nicht unmöglich. — Mein Auge ist kein Glasauge. — Das
Auge ist mein wirkliches, echtes Auge.»
Die Dame läßt erschreckt das Auge fallen.
Das Auge blickt die Dame wehmutig an.
Die Dame greift gerührt mit ihrer Linken nach dem Auge — — —
die Hand füllt sich mit Leben, Blut durchrinnt sie, Puls klopft auf.
Das Auge zwinkert bedeutsam.
Der Herr sieht die marmornen Finger der Dame sich regen; «Ihre
Hand, Gnädige, scheint lebend zu sein!»
Die Dame krümmt die Finger — und ist selbst betroffen über die
Verwandlung.
Sie streicht mit der Rechten über das Auge in ihrer Linken, und
das Auge schläft ein.
Der Herr nimmt es und steckt es in seine Höhle zurück.
Die Dame kann nicht anders, sie drückt einen Kuß auf das Auge.
Der Herr küßt der Dame die linke Hand.
Das Auge öffnet sich und blickt dankbar.
Die Linke der Dame streichelt die Wange des Herrn.
«D a n z i g —!»
TROPFEN AUS HEITERM HIMMEL

A UF der Wiese steht ein Greis und will eine Kneippkur machen.
Er ist barfuß und barhaupt.
Über ihm hängt ein wunderschöner, blauer, wolkenloser
Himmel.
Der Greis hält Ausschau nach einer Kuh, die fern am Waldrande
Bedürfnis über Bedürfnis verrichtet.
Da tropft dem Greis etwas aufs Haupt.
Ein dicker Tropfen.
Der Greis greift mit der Hand auf seinen Schädel und wischt den
Tropfen ab.
Dann lugt er auf zum Himmel.
Der Himmel glänzt in seidiger Bläue.
«Wie?» denkt der Greis, «ein Tropfen aus heiterm Himmel?»
Und er begibt sich von dem Flecke, auf dem er gestanden, weg
und pflanzt sich anderswo auf.
Daselbst hält er wiederum Ausschau nach jener
bedürfnisstrotzenden Kuh.
Er steht nicht lange — der Greis —, so kleckt ihm ein zweiter
Tropfen aufs Haupt.
Aufschauend zum Himmel, wundert er sich ins Fäustchen und
wischt sodann den nassen Tropfen sich vom Schädel.
Der Himmel lacht. Mit Recht.
«Wenn das so weitergeht,» denkt unser Greis bei sich, «das kann
ja gut werden!»
Und er bleibt stehen, wo er steht.
Er will herauskriegen, wo die Tropfen herkommen; auch will er
wissen, ob ihrer noch mehr herunterklecken.
Abermals wendet er sein Augenmerk nach jener fladenden Kuh
und vergißt über sie das Tropfen.
Es währt nur kurze Zeit, so tropft dem Greis ein dritter Tropfen auf
den Kopf.
Der Greis runzelt die Stirn und betrachtet den Himmel. Der thront
unschuldig und engelisch-rein über der Szenerie.
Der Greis legt sich ins grüne Gras und läßt den Himmel nicht aus
dem Auge.
Es kleckt kein Tropfen mehr vom Himmel.
«Aha,» denkt sich der Greis, «dies geschieht, weil ich Obacht
gebe».
Und er paßt auf. Er wendet keinen Blick vom Himmel.
—————
Auf der Wiese liegt ein Greis. Er hat eine Kneippkur machen wollen,
aber er muß aufpassen, ob es tropft. Er ist überzeugt, daß in dem
Augenblicke, wo er den Himmel außer acht läßt, ein Tropfen ihm
aufs Haupt kleckt.
Der Greis schläft darüber ein.
Er träumt, daß ihm ein Tropfen auf den Kopf kleckt. Er stellt sich
anderswohin, und ein zweiter Tropfen kleckt. Er bleibt stehen, und
ein dritter Tropfen kleckt. Da legt er sich ins grüne Gras und spannt
auf den Himmel. — Dies träumt der Greis.
Die Kuh möhkt plötzlich dicht bei ihm.
Davon erwacht der Greis, erhebt sich ächzend und begibt sich an
die Kneippkur.
Ihm ist, als seien drei Tropfen auf seinen Kopf gekleckt.
Dies ist jedoch völlig unmöglich. Denn der Himmel ist blau, heiter
und wolkenlos.
Hat der Greis geträumt?
DAS ALTER
Personen:
Der gutgelaunte Vorgesetzte
Der wie auf den Kopf gefallene Bewerber

D ER Vorgesetzte läßt den Bewerber eintreten und ersucht ihn,


Platz zu greifen. Es entspinnt sich eine Unterredung, die auf
einem gewissen halbtoten Punkt stehen bleibt: Der Vorgesetzte
möchte Einzelheiten aus dem Privatleben des Bewerbers wissen. Er
fragt zuvörderst nach dem Alter. «Wie alt sind Sie denn?»
«Ich werde 32.»
«Wie alt Sie sind?»
«Ich werde 32.»
«Ich will nicht wissen, wie alt Sie w e r d e n ; ich will wissen, wie
alt Sie s i n d .»
Der Bewerber schweigt kopfscheu.
«Na wie alt s i n d Sie denn?»
«Ich bin 31 gewesen.»
«Guter Mann, hm, wenn Sie 31 g e w e s e n sind, so sind Sie zur
Zeit 32. Soeben behaupten Sie jedoch, Sie w ü r d e n erst 32.»
«Ja, das stimmt.»
«Nee, das stimmt nicht. Wenn Sie 32 w e r d e n , können Sie nicht
32 s e i n .»
«Nein, so nicht, — ich bin nicht 32. Ich w e r d e 32.»
«Schön. Demnach dürften Sie 31 sein.»
«Ja natürlich. Ich bin 31!»
«Also Sie sind 31. — Wann ist Ihr Geburtstag?»
«Am 5. April.»
«Das wäre heute in 6 Wochen?»
«Zu dienen.»
«Wie alt werden Sie heute in 6 Wochen?»
Der Bewerber, zaghaft und scheu: «32 . .»
«Richtig.»
«Ihr wievielter Geburtstag ist das?»
«Mein 32. selbstredend.»
«Durchaus nicht! — Ihr 33.!»
«Das verstehe ich nicht.»
«Nein? — Merken Sie auf: Als Sie zur Welt kamen, begingen Sie
Ihren ersten Geburtstag. An jenem ersten Geburtstage waren Sie
null Jahre alt. — Als Sie Ihren zweiten Geburtstag feierten,
vollendeten Sie das erste Jahr, d. h. Sie wurden am z w e i t e n
Geburtstag e i n Jahr alt. — Sehen Sie das ein?»
Der Bewerber, gänzlich verwirrt: «Oh ja!»
«Nun also. — Sie s i n d 30 g e w e s e n , s i n d 31, w e r d e n 32
und feiern in Kürze den 33. Geburtstag.»
Der Bewerber bricht ohnmächtig zusammen.
Die Unterredung ist beendet.
ALLE WEGE FÜHREN NACH ROM

D IESES Sprichwort ist eine hundsgemeine Lüge.


Der Privatdozent Kladderosinenzagel mußte es am eigenen
Leibe erfahren.
Er, den wir um der Kürze willen K. nennen wollen, machte sich an
einem Ferientage auf die denn doch nicht mehr so eigentlich ganz
naturfarbig genannt werden dürfenden Socken, um gen Rom zu
fahrten.
Er, K., fußte auf dem Sprichwort: Alle Wege führen nach Rom.
K. wanderte, mit reichlichem Mundvorrate und einer leeren
Thermosflasche ausgestattet, einen vollen Nachmittag lang.
Reiseziel: Rom.
Es führen aber mitnichten alle Wege nach Rom.
D e r W e g , den K. einzuschlagen für ratsam befunden hatte,
hörte plötzlich auf, ein Weg zu sein und verwandelte sich in eine
Wiese, auf welcher notgedrungen sieben Kühe — die Verkörperung
der fetten Jahre — sich an ihrem Anblicke und dem saftigen Grün
weideten.
Und K. stand hinter einer Tafel, die von vorn zu besichtigen er
nicht umhinkonnte.
Die Tafel bezog sich auf den Weg, welchen K. zurückgelegt hatte,
und trug die Aufschrift: «Verbotener Weg».
In einem Lande, wo die Polizei so auf dem Damme ist wie in
Deutschland, führt zwar mancher Weg nach Rom, aber er ist
verboten.
K. mußte umkehren und sich des Planes, auf natürlichem Wege
nach Rom zu gelangen, entschlagen.
«HÖHENLUFT»
Ein Roman aus den Tiroler Bergen
von
Paul Grabein

ist im Okt. 1916 als Ullstein-Buch — 1 M.! — erschienen. Ich habe


das Buch gelesen — unter Aufgebot größter Energie. Ein paar Worte
darüber und dazu.
Die Personen des Buches sind:
Karl Gerboth, Maler,
Hilde, seine Tochter,
Franz Hilgers, Maler,
Günther Marr, Leutnant.
Handlung: Franz hat seinen Jugendfreund Günther eingeladen.
Günther leistet der Einladung — Erholungsurlaub — Folge. Auf Seite
19 trifft er, nach dem Dörfchen, in dem Franz wohnt, wandernd, eine
Dame. Dies ist Hilde Gerboth. Sofort weiß man «alles», und es
kommt auch tatsächlich «alles» so. Franz ist der einzige Schüler Karl
Gerboths und Bräutigam eben jener Hilde, freilich, ohne daß diese
darum weiß. Der alte Gerboth hat sich von der Welt zurückgezogen
und schafft in aller Stille. Hilde wird von ihm behütet und betreut,
daß es eine Art hat. Sie ist die Tochter einer Dame, die — als Gattin
Gerboths — Temperament und etliches darüber hinaus besaß. Aus
Angst, Hilde könne ihrer Mutter nachschlagen, läßt sie der alte
Gerboth nicht von sich. Sie ist absolut naiv und ahnungslos. Sie weiß
nicht Musik, Tramway, Kino, Theater, Börse, Bordell, Liebe, Geld,
Börse (absichtlich 2 Mal) — kurz: was Leben ist. Das weiß sie nicht.
Sie ist 20 Jahre alt. Und Franz ist ein Schwächling, ein thraniger,
limonadiger Hampelmann. Er muß kurz nach Günthers Ankunft
verreisen. Infolgedessen Solo-Szene zwischen Günther und Hilde.
Aussprache — er schildert ihr die Welt und das Leben. Sie — die
Freiheit lockt — verliebt sich in ihn. Sie will hinaus — in die
sogenannte Welt. Sagt’s ihrem Vater. Der refüsiert. Hilde knickt
zusammen. Günther trifft sie — tatsächlich durch Zufall! (Ich glaub’s!
Wer noch?) — ein zweites Mal. Er redet ihr energisch zu. Franz kehrt
zurück (aber das ging fix!) und erfährt durch Günther selbst, daß er,
G., Hilde liebt und überhaupt: daß was los war. Franz zum alten
Gerock oder Gehrock oder Gerboth: Höre mal, so und so — — und
Gerboth spricht gründlich mit seinem Töchting. Klamauk. Sie will
Franz nicht. Sie will Günther. Und in die Welt hinaus. Bon. Am Tag
drauf hält Günther um ihre Hand an beim alten Klopstock. Der sagt
Nein. Da sagt Günther: Dann heirat ich Ihre Hilde gegen Ihren
Willen. Bumms. Aber der Alte — philosophisch! — gestattet eine
letzte Aussprache zwischen Hilde und Günther, worin sie ihm erklärt,
er dürfe hoffen, wenn er vor sie hinträte.
Am nächsten Tag reist Günther nicht ab, oh nein. Er kann nicht:
eine richtige Lawine hat sich bemüht, herniederzugehen, und das ist
ihr auch gelungen. Aber die gute Hilde, die irgendeinen Schafhirten
hat retten wollen vom Hungertode, gerät mitsamst ihrem
Freßkörbchen und dem Bernhardiner (aha!) in sie (die Lawinije)
hinein.
Na, und Günther rettet sie selbstredend.
Na, und dann kriegen sie sich.
Na, und das ist ja die Hauptsache.
Das Buch schließt (auf Seite 253!) mit den Worten Günthers:
«Wagen wir es denn zusammen, Hilde!»
Und nun sind sie glücklich, und uns entpullert eine Träne.
Ich setze das Romänchen fort:
Am 12. Sept. 1916 fällt Günther in der Sommeschlacht (das Buch
spielt nämlich direktemang im Weltkrieg).
Daraufhin begeht seine Frau einen ganz totsicheren Selbstmord.
Daraufhin kriegt ihr Vater einen geharnischten Schlaganfall.
Sela.
EHE

M ANN und Frau faulenzen auf dem Diwan. Der Mann ist am
Einschlafen. Die Frau wird von Halbträumen umfangen.
Eine Fliege summt.
Die Glocken einer fernen Kirche baumeln.
— — — Der Mann ächzt, räkelt sich, fragt: «Sind das Glocken?»
Die Frau horcht. «Das sind doch keine Glocken. — Das ist eine
Fliege.»
«Unsinn. Das ist doch keine Fliege. — Das sind Glocken.»
«Das ist eine Fliege.»
«Das sind Glocken.»
Beide horchen.
Der Mann: «Selbstredend sind das Glocken. — Warum wird denn
geläutet?»
Die Frau: «Ich werde doch Glocken von einer Fliege unterscheiden
können! Ich höre keine Glocken. Das ist eine Fliege.»
«Das sind Glocken.»
«Wenn ich dir sage, das ist eine Fliege.»
«Herrgott, das sind Glocken. Das ist doch keine Fliege!»
«Das i s t eine Fliege!»
«Das sind G l o c k e n !»
«Na, da bleib’ bei deinem Glauben.»
«So etwas Dummes! Ich bin doch nicht verrückt. Natürlich sind
das Glocken. — Ganz deutlich.»
«Eine Fliege ist es.»
«Wo ich genau die einzelnen Glocken heraushöre.»
«Was d u alles fertig bringst. — Ich höre bloß eine Fliege. —
Warum sollten denn jetzt die Glocken läuten?!»
«Ja, das möchte ich eben gerne wissen.»
«Du kannst dich drauf verlassen, das ist eine Fliege.»
Beide horchen.
Die Glocken haben aufgehört, zu summen.
Auch die Fliege läutet nicht mehr.
Der Mann denkt: Ekelhaft. So macht sie’s immer. Bei jeder
Gelegenheit. Da ist einfach nichts zu wollen. Zum Auswachsen. —
Eine Fliege! Lachhaft. — Aber da kann sie niemand davon abbringen.
Sie bleibt bei ihrer Fliege. Es ist eine Fliege. Und wenn die Glocken
hier in der Stube vor ihrer Nase läuteten, — — es ist eben eine
Fliege. Albern. Wenn sie sich etwas einbildet, bleibt sie dabei. —
Selbstredend waren es Glocken. — — — Mir einstreiten zu wollen,
daß es eine Fliege war . . . .
Er schläft.
Die Frau denkt: Wenn es nicht zufällig mein Mann wäre, ich
konnte ihn ohrfeigen. Das Schaf. Immer recht haben. Immer recht
haben. Muß er. — Ich höre deutlich die Fliege summen. Nein, es sind
eben Glocken. — — Ich kann sagen, was ich will: er bleibt bei seinen
Glocken. — Jetzt, um die Zeit Glocken! — — — So ein Schaf! — — —
Aber das ist jeden Tag so. — — — Das Kamel . . . .
Sie schläft.
Sie träumt von einer Fliege, die hoch auf dem Kirchturme geläutet
wird.
Der Mann träumt von Glocken, die ihm über das Gesicht krabbeln.
Ganz leise fängt die Fliege wieder an, zu summen.
Es klingt wie fernes Glockenläuten.
ICH BIN, ICH WAR

I CH bin eine Blume. Ich blühe auf der Heide.


Ich bin eine Blume und blühe auf der Heide.
Da kommt eine Kuh und frißt mich ab.
Nun bin ich eine Blume gewesen. Nun bin ich keine Blume mehr.
Wie bin ich traurig!
—————
Ich bin eine Kuh und grase.
Niemand merkt mir an, daß ich traurig bin.
Grasen ist fade, Kuhsein ist fade; als Blume hatte ich es besser.
Aber muß man als Kuh nicht stoisch sein und tragen, was man
aufgebürdet kriegt?
Geduldig sein und grasen und sich fassen, möh. —
Es ist schließlich gar nicht so traurig, Kuh zu sein.
Die Sonne scheint, die Wiese duftet, der Himmel bläut — und da
soll ich traurig sein?
Ich bin lustig.
Aber es ist nicht die Blumenlustigkeit, die mich durchglüht, es ist
die Lustigkeit der Kühe.
Ich mache mutwillige Sprünge und möhe und muhe.
Die Welt ist schön, muh.
Muh, schön ist die Welt.
Und ich bin doch traurig!
(Ich war eine Blume!!)
———
Da kommen zwei vermummte Kerle. Die fackeln nicht lange: Einer
packt mich hinterrücks und ringelt mir den Schwanz zusammen, das
tut weh. Der andere schlingt mir eine Kette ums Gehörn und knufft
mich. Sein Spießgeselle peitscht auf mich ein. Ich weiß nicht, was
gehauen und gestochen ist.
(Einst war ich eine Blume.)
Man führt mich hinweg von meiner Wiese. Ade, du Wiese, ade!
———
In der Abendstunde erreichen wir ein Gehöft.
Einst war ich eine Blume, ich denke dran.
Blume bin ich nimmer; bin eine armselige, wehrlose Kuh, muh.
(Hilft mir der Stoizismus etwas?)
Rasch tritt der Tod die Kühe an: Eine Ledermaske mit einem bösen
Stirnbolzen wird mir aufgestülpt — — — ein Schlag, und ich stürze
hin. Da hilft kein Muhen.
Mit einem Rohrstock pfählt man mir das arme Hirn. Das macht
mich traurig. Oder lustig? Ich weiß nicht, ich glaube, ich bin tot.
Kuh bin ich gewesen.
Blume bin ich gewesen.
Ich entsinne mich wirr . . . es ist mir, ja . . . vor langer, langer Zeit
— war ich ein Falter. Aber ich weiß es nicht.
Daß ich Blume war, weiß ich mit Sicherheit. Ich lege meinen Huf
dafür ins Feuer.
Es ist vorbei.
Bin weder Kuh noch Blume mehr.
—————
Bin Wurst. Salamiwurst. Ich koste das Pfund 1.80 M.[2] Ich bin
erstklassige Ware, elektrisch hergestellt.
Den Stoizismus habe ich behalten. Dennoch stimmt es trübe,
Wurst sein zu müssen, wenn man Blume hat sein dürfen.
Ich bin mir Wurst. Ich nehme es hin. Muh. (Eigentlich dürfte ich
als Wurst nimmer muhen. Ich nehme das Muh als anachronistisch
zurück.)
Ich habe keine Freude mehr auf der Welt.
Ich bin eine kalte Wurst. Nichts tangiert mich.
Wenn ich mein Leben überdenke, so muß ich frank gestehen:
Wurst sein, das ist das Schlimmste nicht. Mensch sein ist weitaus
schlimmer!
Doch Kuh sein, das ist schöner als Wurst sein.
Das Allerallerschönste freilich war: Blume sein, Blume gewesen
sein, Blume sein gedurft zu haben.
Mir war’s verstattet.
[2] Wer’s glaubt.

Ich war Blume, ich war Blume!


O Blumen, ihr seid glücklicher als Kuh und Wurst!
O Blumen, nichts auf Erden ist glücklicher denn ihr.
O Blumen — —
* *
*
Vom wurstigen Standpunkt gesehen, ist es vielleicht das Vorteilhafteste, Kuh zu
sein.
Die Kuh ist besser dran als die Blume.
Denn während eine Kuh sehr wohl Blumen fressen kann, kann eine Blume nichts
fressen.
Und eine Wurst kann auch nichts fressen: nicht Kuh, nicht Blume.
Kuh gewesen sein gedurft zu haben ist also — mit Vorbehalt — noch erhebender
als Blume gewesen sein gedurft zu haben.
Ich wünsch’ euch eine gute Nacht und mir, wieder Kuh werden zu dürfen.
MÄRCHEN

E S war einmal ein Frosch, der konnte sich gewaltig giften, wenn
seine Frau zu ihm quakte: «I, sei doch kein Frosch!»
Infolgedessen quakte die Fröschin den Satz bei jeder
Gelegenheit. Der Frosch getraute sich überhaupt nichts mehr zu
äußern. Sagte er etwas, so mußte er als Antwort hören: «I, sei doch
kein Frosch!»
Da raffte er sich auf und nahm seine Ehefrau ernstlich ins Gebet,
sie solle es fürderhin gefälligst unterlassen, den albernen Satz zu
quaken.
«I, sei doch kein Frosch!» stereotypte die Fröschin. Es war mit ihr
nichts anzufangen.
Sie war in der Ehe verblödet.
Da verfiel der Frosch, der keiner sein sollte, auf einen Ausweg: Er
kam seiner Frau mit der Redensart zuvor und apostrophierte sie, wo
immer er ihrer ansichtig wurde, mit dem Satze: «I, sei doch keine
Fröschin!»
Er antwortete mit nichts anderem als mit diesem Satze. Er sagte
nichts als diesen Satz. Er verkehrte mit seiner Frau nur noch auf
Grund und unter Zuhilfenahme dieses Satzes.
Die Fröschin zeigte sich der Situation nicht gewachsen und
ersäufte sich.
Der Frosch war kein Frosch und holte sich eine andere heim.
M o r a l : Ihr Frauen, reizet eure Männer nicht zum Äußersten und
lasset sie gewähren, selbst wenn sie Frösche sind.
AUF DER OALM, DOA GIBT’S EINEM
ON DIT ZUFOLGE KOA SÜAND!

D IE weitverbreitete Meinung, auf der Alm gäbe es ka Sünd, hat


ihren Ursprung in dem sprichwortgewordenen Liedertext: «Auf
der Alm, da gibt’s ka Sünd».
Selbstverständlich gibt es auf der Alm a Sünd.
Das wäre ja n o c h schöner, wenn es auf der Alm ka Sünd geben
täte!
Von ka Sünd kann gar keine Rede nicht sein.
A Sünd gibt’s überall — namentlich auf der Alm.
Ich möchte sogar so weit gehen, zu behaupten: Wenn es
überhaupt a Sünd gibt, so vor allem auf der Alm.
..........
Plötzlich erschallt draußen unter meinem Fenster das Gerassel und
Gebimmel der Feuerwehr.
Ich armer, schwacher Mensch unterbreche mein Schreiben und
stehe eilends auf, um nachzusehen, wo es brennt.
..........
Es war weiter nichts.
Ein Pferd ist gestützt.
Ich kann also in meinem Schreiben fortfahren.
Aber ich habe, offen gestanden, nicht mehr die rechte Lust dazu
und stecke es auf.
Ein ander Mal.
Der Zensor würde die Geschichte ohnehin gestrichen haben; denn
es geht toll zu auf der Alm. I c h h a b e B e w e i s e .
PETERLE
Ein Märchen

P ETERLE war ein gutes Kind und machte dennoch seinen Eltern
großen Kummer.
Wie ist das möglich?
Es lag an Peterle.
Peterle hätte nicht soviel träumen sollen, bei Nacht nicht und bei
hellerlichtem Tag nicht. Peterle träumte, wo sie ging und stand; wo
sie lag und saß. Sie träumte immerfort. Nichts war mit ihr
anzufangen, kein vernünftiges Wort mit ihr zu reden. Sie spielte
nicht die Spiele ihresgleichen; sie spielte nicht mit anderen und nicht
für sich allein — sie puppelte nicht einmal! Nein, von Puppen mochte
sie gar nichts wissen.
Und was das Tollste ist: Peterle wollte durchaus ein Junge sein,
obwohl sie doch ein Fräulein war. Sie behauptete, sie sei ein Junge
namens Peterle, und damit holla! Sie und ein Mädchen — haha! «Ich
bin ein Junge» verkündete sie jedem, der es wissen wollte, und
beharrte eigensinnig auf diesem ihrem Vorurteil.
Peterle hatte ihre lustigen Seiten. Nicht nur die, daß sie ein Junge
sein wollte, sondern vor allem ihre Person, ihre «Erscheinung», ihr
«Äußeres».
Peterle war winzig klein, aber dafür dick wie ein Moppel. Sie hatte
eine kurze, umgestülpte Nase, zwei wasserblaue Guckaugen und
einen verschmitzten Mund. Aber das Putzigste an ihr war die Frisur:
sie trug die spärlichen, bindfadendünnen Zöpfchen in zwei
Schnecken prätentiös über die Ohren geringelt! Und die Zöpfe waren
strohgelb.
Und doch war sie den Eltern ein Persönchen — Gegenstand kann
man wohl nicht sagen — argen Kummers.
Während andere Eltern prahlten und Stolzes voll die Taten,
Antworten und sonstigen Äußerungen ihrer «aufgeweckten» Kinder
zum besten gaben, empfanden Peterles Eltern schmerzliche
Beschämung, wenn sie von ihrem Mädelchen nichts aussagen
konnten als: «Sie träumt.»
Peterle tat nämlich nichts als Träumen. Stundenlang saß sie
hinterm Ofen oder auf dem Boden und träumte für sich hin. Wovon
sie träumte, das erfuhr kein Mensch; denn sie teilte sich nicht mit,
sondern behielt alles fein im Herzen.
Aber sie war nun schon fünf Jahre alt und sollte über ein
dreiviertel Jahr bereits zur Schule.
Noch hatte sie große Ferien. Waren die erst einmal verstrichen,
diese sechsjährigen großen Ferien, dann stand es bös.
Ach, es würden trübe Zeiten kommen für Peterle; denn war sie
erst schulpflichtig, mußte die Träumerei ein Ende nehmen.
Die Eltern wußten sich keinen Rat und hätten ihr Kind am liebsten
der Schule ferngehalten.
Da erschien eines Tages — und zwar an jenem, der jenem, an
welchem sie ihr fünftes Lebensjahr vollendete, vorausging — dem
Peterle eine Fee. Keine großartige, sondern eine ganz gewöhnliche
Fee, wie sie täglich dutzendweise den braven Kindern erscheinen.
Diese Fee stellte dem Peterle einen Wunsch frei. Sie dürfe sich zu
ihrem morgigen Geburtstage etwas wünschen — gleichviel was —,
der Wunsch werde in Erfüllung gehen.
Peterle schwankte keinen Augenblick, obwohl sich tausend
Wünsche auf ihre niedliche Zunge drängen wollten.
Sie wünschte sich das Schönste, das sie sich je hatte ersinnen
können: Schnee. — Sie wünschte sich Schnee. — Sie wünschte, daß
zu ihrem Geburtstage Schnee fiele.
Die Fee runzelte die Stirn, aber da sie sich keine Blöße geben
wollte, sprach sie: «Es wird geschehen; was du wünschest. An
deinem Wiegenfeste soll es schneen.»
Und verschwand, nicht ohne einen merklich holden Duft zu
hinterlassen.
Klein-Peterle hüpfte nicht und tanzte nicht vor Freuden, sondern
träumte weiter in sich hinein — wenn auch in einer mäßig
aufgeregten Erwartung und Neugier. Sie träumte dem Geburtstage
entgegen.
Die Fee setzte schleunigst alle Hebel in Bewegung; denn es war
kein Kleines, des Peterles Wunsch zu erfüllen und Schnee fallen zu
lassen.
Es sei eine kurze Unterbrechung verstattet: w a n n beginnt ein
Geburtstag?
Zweifellos in der Sekunde, womit der Geburtstag selbst anhebt,
mithin nach Ablauf der zwölften Stunde des Vortages.
Es hätte demzufolge unmittelbar auf den zwölften,
mitternächtigen Glockenschlag desselben Tages, an dem die Fee bei
Peterle vorsprach, zu schneen einsetzen müssen. Indes sind Feen
und Kinder nicht so spitzfindig wie die Herren Juristen, die gewißlich
zunächst untersucht haben würden, ob die Äußerung des Wunsches
jenes Kindes namens Peterle (unvorbestraft, besondere Merkmale:
prätentiöse Schnecken) die Bedingung in sich geschlossen habe, daß
es den g e s c h l a g e n e n G e b u r t s t a g oder nur ü b e r h a u p t
am Geburtstage schneen solle usw., — und daher zerbrach sich die
Fee ihren anmutig geformten Kopf nicht über Dinge, die das
Kopfzerbrechen nicht verlohnen, sintemal ihr aus der eigenen
Jugend wohl bewußt war, daß für jegliches Kind der Geburtstag dann
anfängt, wenn es erwacht und sich der Tatsache, daß heut’
Geburtstag ist, bewußt wird.
Peterle erwachte erst gegen neun Uhr.
Ihr erster Blick fiel durch das Fenster auf die Straße hinaus.
Peterle jubilierte: Schnee!
Es schneete wirklich! Und zwar in glitzrigen, silbrigen Flöckchen, in
zierlichen.
Peterle freute sich unbändig. Nicht, weil es schneete; auch nicht,
weil die Fee den Wunsch erfüllt hatte, sondern, weil sie — Peterle —
den Schnee (indirekt) s e l b s t «gemacht» hatte.
Es war i h r Schnee, der da draußen fiel.
Sie ließ zu ihrem Geburtstage Schnee fallen.
Schnee — zu ihrem Geburtstage!
Ihr meint, das sei nichts Besonderes?
Oho, da muß ich sehr bitten: das ist etwas ganz besonders
Besonderes!
Peterle ist nämlich am elften Juni zur Welt gekommen.
Nun stellt Euch vor: an einem elften Juni schneete es!
War das nicht Grund genug für Peterle, sich des Schnees zu
freuen und den ganzen Geburtstag am Fenster zu kauern und in den
Schnee zu gucken?
Ich denke doch.
Peterle saß denn auch am elften Juni unerschütterlich am Fenster
und war glücklich über den vielen, vielen Schnee, der da vom
Himmel heruntergeschüttet wurde.
——
Es ist nichts mehr von Peterle zu erzählen. Sie hat ihren Schnee
gehabt und weiter geträumt, bis sie zur Schule mußte. Und der
Rohrstock des Lehrers erwies sich — bezüglich der Träumereien —
als ein besserer Pädagog als die verhätschelnde Liebe der Eltern.
Es wäre vielleicht dem oder jenem Leser angenehm gewesen,
wenn sich herausgestellt hätte, daß Klein-Peterle Fieber gehabt hätte
und an ihrem Geburtstage (nach Erledigung der «Schnee-Vision»)
ein Englein geworden sei. Sozusagen: der «tragische» Tod eines
Kindes.
Oh nein! Peterle hat kein Fieber gehabt — und der Schnee war
wirklicher, e c h t e r Schnee.
Meine Eltern wohnten damals in derselben Straße wie Peterles
Eltern, und ich bin Zeuge — ich erinnere mich noch deutlich —, daß
es im Jahre 18 . ., am elften Juni den lieben, langen Tag über
ununterbrochen geschneet hat. Allerdings nur in u n s e r e r Straße
und sonst nirgends. Das war damals ein allgemeines Verwundern
und Kopfschütteln in Klotzsche — in Klotzsche hat sich der Schneefall
begeben! —, und meine Eltern und wir alle haben nichts damit
anzufangen gewußt, bis mir vierzehn Jahre später Peterle selbst von
ihrem Geburtstagswunsche und der Fee berichtet hat.
Peterle ist nämlich meine Frau geworden. Aber eine Fee ist ihr
nicht wieder erschienen. Ich glaube, daran bin i c h schuld.
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade

Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.

Let us accompany you on the journey of exploring knowledge and


personal growth!

textbookfull.com

You might also like