Advanced Java Programming FeaturesLaajuus (3 ECTS)
Course unit code: TX00FI95
General information
- Credits
- 3 ECTS
Objective
The Java programming language steadily integrates new language features, to adjust with evolving requirements. These features render Java a more expressive, more effective, and safer language.
This course covers a selection of advanced features that are commonly underused. Students learn how to make best use of them, to solve real-world problems, and learn about these features' respective advantages and limitations.
Content
Topics discussed are:
* Records, immutability and mutability, delegation and inheritance.
* Nested types, their application for factories and object pooling;
Inner classes for tightly coupled objects;
Local and anonymous types for one-shot use.
* Functional interfaces, Lambdas and method references.
* Streams and their application of lambdas;
Streams as an alternative to loops, and Optional vs null.
* Generic types and methods, Wildcard types and type variances,
the Java compiler's type inference.
* Enhanced Switch statements and Type patterns, deconstruction of records.
Qualifications
Moderate Java programming proficiency is required, as well as an understanding of object oriented key concepts, like classes, inheritance and interfaces.