Table of Contents
Basics
Data types and variables
- Types and variables
- Sizes and ranges
- Type casting
- Primitive and reference types
- Final variables
- Floating-point types
Control flow statements
- Conditional statement
- Ternary operator
- The while and do-while loops
- The for-loop
- Branching statements
- Switch statement
- Switch expression
Operations on primitive types
- Arithmetic operations
- Integer types and operations
- Floating-point types
- Boolean and logical operations
- Relational operators
- Increment and decrement
- Characters
- Bitwise and bit-shift operations
- Operator Precedence in Java
Code organization
Code style
Methods
- Calling a method
- Declaring a method
- The main method
- Overloading
- Arrays as parameters
- Functional decomposition
Object-oriented programming
Classes and objects
Classes and members
Access control
Objects
Class hierarchies
Building class hierarchies
The base class
Overriding methods
Interfaces and abstract classes
Annotations
Nested classes
Enumerations
Source structure
Generics
- Introduction to generic programming
- Generics and Object
- Generic methods
- Type Bounds
- Wildcards
- Type Erasure
- Reification
Functional programming
Functions
- Lambda expressions
- Method references
- Functional interfaces
- Standard functional interfaces
- Optional
- Function composition
Functional streams
- Functional data processing with streams
- Infinite streams
- Stream filtering
- Reduction methods
- Taking elements
- Map and flatMap
- Collectors
- Grouping collectors
- Streams of primitives
- Stream pipelines
- Parallel streams
Working with data
Arrays
File processing
Collections
- What are collections
- The Collections Framework overview
- The List interface
- ArrayList
- The Set interface
- The Map interface
- Iterator and Iterable
- The utility class Collections
- Comparator
IO streams
Multithreading
Basics of threads
Synchronization
Task processing
Thread-safe collections
Errorless code
Exception handling
- What is an exception
- NPE (NullPointerException)
- Hierarchy of exceptions
- Throwing exceptions
- Exception handling
Logging
Java Internals
JVM
Inside the JVM
- Running programs on your computer
- Class files and Bytecode
- Class Loader
- Call stack
- Stack trace
- Object interning