Introduction to lambdas and Streams in Java: introduced in Java 8, see how these bring more flexibility and and conciseness to your code.
Java lambdas tutorial
An introduction to "raw" threads in Java, looking at the Thread and Runnable classes and issues such as thread safety. See also: Java and threading performance on Apple Silicon (M1) vs Intel i7.
Java threads tutorial
Aspects of synchronization and concurrency in Java that go beyond basic thread programming, including how to balance thread-safety and performance requirements.
Java concurrency tutorial
Java's Collections framework provides a range of key classes for organising data in memory. How to hash maps work? When should you pick a list versus a set versus a queue...? How do you ensure your code is thread-safe?
Java collections tutorial
How to use exceptions to manage error flow in Java: how do you throw and catch exceptions? When do you use the different exception classes? Which exceptions can be thrown by the JVM?
Java exceptions tutorial
Doing math in Java: an overview to using math primitives and utility classes. How do different maths operations perform in Java? How do you perform arbitrary precision arithmetic?
Java maths tutorial
How to generate random numbers in Java. What are the limitations of java.lang.Random and when is it not suitable? When and how should you use ThreadLocalRandom?
Java random tutorial
How to calculate or query the memory usage of Java objects. How much memory do strings and other objects take up in Java?
Java memory usage
An overview of the main encryption and authentication facilities offered by Java. How do you encrypt data and files in Java? Which algorithm should you use? Which key length should you pick?
Java cryptography tutorial
The standard Java I/O libraries: how to read and write to files, sockets; how to improve Java I/O performance.
Java I/O tutorial
Tutorial on using regular expressions in Java, including basic expressions with the String.matches() method plus performance considerations.
Java regex tutorial
How to access databases at a lower level in Java using the JDBC API.
Read JDBC tutorial
Performance profiling in Java: using Java's built-in profiling facilities to find bottlenecks in your production code.
Java profiling tutorial
Java Servlets provide a framework for serving dynamic web pages supported by many cloud services.
Java Servlets tutorial
How to use the standard Java compression libraries, including some more advanced techniques.
Java compression tutorial
How to use Swing, Java's rich and extensible user interface library.
Section on how to immitate in Java certain features of other languages, notably C and C++.
Java equivalents tutorial
What to do with those awkward OutOfMemoryErrors, StackOverflowErrors...