- Class and its responsibility
- Method and its intention
- Package and its cohesion
- JARs
- Simple App with packages and JAR demo
- Build cycle
- Dependencies
- Über-jar pattern POM structure
- Building
- Debugging
- Naming conventions
- Code style conventions
- Static modifier
- Enums
- Flow control structures
- Primitive types
- Operators
- Casting
- Test structure
- Tests as specifications
- Heap and Stack
- Parameter passing styles
- Arrays
- Strings
- Wrappers
- Visibility
- Constructor
- Inheritance
- Classes and Interfaces
- Polymorphism
- Best practices for class design
- Design quality criteria
- Exceptions in Java
- Exception handling strategies
- Try-with-resources
- Exception types in Java
- Best practices for exception type system design
- j.l.System
- j.l.Object
- Collections API Overview
- Java 8 Streams Overview
- Threads in Java
- Thread API
- Concurrency issues overview
- Best practices for multithreaded design
- j.i.File
- Java IO Streams Overview
- Apache Commons IO library
- Apache Commons CSV library
- Apache POI library
- XML recap: namespaces, elements, attributes
- Well-formed vs Valid documents
- APIs overview: SAX vs DOM
- Java API for SAX
- Java API for DOM
- OXM with JAXB overview
- JSON recap
- Jackson library
- JDBC API Overview
- Derby Overview
- Connection, DriverManager and ConnectionPools
- DDL and DML recap
- Inserting and updating data with Statement and PreparedStatement
- Fetching data with ResultSet
- Intro to Spring
- Spring configuration for dataSource
- JdbcTemplate and RowMapper
- DAO pattern
- ORM concept
- Key annotations
- JPA API Overview