A beginner's library for learning about essential Java programming concepts, syntax, APIs, and packages.
Complete your introduction to the Regex API, then find out how regular expressions make quicker work of common tasks like code documentation and lexical analysis.
Pattern matching is an important technique used in text processing, and Regex is here to help. Find out how to use the Pattern class and constructs like quantifiers and boundary matchers to describe patterns in your Java programs.
End your tour of Java's essential language features with Java 8's method references, interface default and static methods, and three lesser known language updates, then preview new features coming in Java 9.
Learn by example how lambdas interact with scopes, local variables, the <code>this</code> and <code>super</code> keywords, and exceptions in Java programs.
Not all varargs methods will contribute to heap pollution, so find out which ones do and why, in this second half of Jeff Friesen's introduction to small language changes that have made a big difference since JDK 7.
Project Coin was the Java 7 language update that emphasized small changes with a big impact. Get a primer on automatic resource management with try-with-resources, then zip through three more JDK 7 updates: switch-on-string, multi-catch, and final re....
Get introduced to the last but not least of new features that have improved Java's productivity since JDK 5: Autoboxing and unboxing, the enhanced for loop, static imports, varargs, and covariant return types.
Learn how to use typesafe enums in <code>switch</code> statements, then get started with Java annotations and meta-annotations types like <code>Target</code>, which can clarify the meaning of annotations in your Java code.
From assertions in JDK 1.4 to the forthcoming lambdas in Java 8, the Java language has evolved considerably since its inception. Start building your toolbox of essential Java language features this week, with assertions and generics.
Learn how the Java Concurrency Utilities handle locking, atomic variables, and fork/join operations. Then prepare for the future with an overview of anticipated changes to the Java Concurrency Utilities coming in Java 8.
When concurrency gets complex, Java developers can count on the Java Concurrency Utilities to smooth the bumps. Get started with the Executor framework, concurrent synchronizer types, and the Java Concurrent Collections package, and discover how thes....
Find out how the Java Date and Time API addresses the need for a more robust date and time infrastructure in Java SE, then familiarize yourself with the java.time classes you're most likely to use, in this inaugural installment of Java 101: The ....
Java developers use the Character, String, StringBuffer, and StringTokenizer classes to represent and manipulate text in programs. Learn how to create objects from these classes and examine their methods, then get the answers to three common question....
Create packages, import packaged classes and interfaces into your programs, move packages, and encapsulate them in jar files.
The "Understanding Java threads" series concludes by uncovering some of the loose ends of threading: thread groups, volatility, thread-local variables, timers, and thread death.
Jeff Friesen keeps the <em>Java 101</em> focus on Java threads this month, introducing the mechanisms that allow you to select and manage thread priority. Learn how thread scheduling, the wait/notify mechanism, and thread interruption sho....
Multithreaded programming brings a new order of complexity to Java threads, and you'll need some new tools to manage it successfully. In this second article in the <em>Java 101</em> "Understanding Java threads" series, Jeff....
Java application users have little patience with poor performance, and threading is one of the best tools we have for allocating application resources efficiently. Jeff Friesen spends the next four articles in the <em>Java 101</em> series....
Java's garbage collection features tend to confuse new developers. I wrote this two-part series on garbage collection to dispel that confusion. Part 1 introduced you to garbage collection, explored various garbage collection algorithms, showed y....
One feature that distinguishes Java from other computer languages is its garbage collection abilities. In this article, Jeff Friesen introduces you to garbage collection and shows how Java's optional support for it affects your programs. Whil....
Jeff celebrates Java 101's first anniversary with this short primer on class and object initialization in Java programming.
Want to know more about standard Java I/O concepts like standard input, standard output, and standard error? Read on!
Java 101 is evolving. Under new authorship, this column will continue to take you on an incredible journey into the world of Java -- a journey that you will not soon forget! This transition article establishes our bearings and sets sail to the land o....
In this installment of Java 101, Jacob Weintraub gives details on how to create a class in Java. He discusses using access modifiers to protect your data from unwanted manipulation, implementing constructors to initialize class instances, and using m....