Course topics
- JVM platform. Primitive types
- Java Platform & Java Language.
- Garbage collector.
- Class Concept. Objects life cycle. Methods. Arrays. Key OOP Concepts
- Java Classes. The main Method. Creating simple Java classes.
- Compiling and running Java applications.
- Primitive variables and wrappers.
- Describing Objects and Classes. Working with Object References.
- Creating and Using Methods. Method arguments and return values. Static methods and variables. Overloading methods. Overloaded method resolution.
- Creating and manipulate arrays. Alternate Looping Constructs. Arrays Class.
- Constructing objects and Encapsulation
- Default constructor and User-defined constructors. Order of fields initialization.
- Using encapsulation in Java class design. Java access specifiers.
- Inheritance and Polymorphism. Subclasses and superclasses. Overriding methods. Using virtual method invocation.
- Abstract Classes and Interfaces.
- Inner Classes. Anonymous inner classes.
- Class Object.
- Enumerated Types.
- Exceptions. Overriding
- Generics & Collections
- Java Collections. Interface: List, Set, Queue, Dequeue, Map.
- Hashing and hash codes.
- Traversing Collections. Ordering collections.
- Type systems. Liskov Substitution Principle.
- Java Generics. Type erasure. Wildcards. Function subtyping.
- Object Oriented Architecture and Design.
- S.O.L.I.D. and introduction to patterns
- Design principles.
- S.O.L.I.D.
- Lazy evaluations.
- Demetra law.
- Software Design Patterns.
- GOF and GRASP