Programming in Java and mastering its object concepts
Programme
The Java platform
- History of the platform
- The virtual machine
- Compilation and execution
- JRE and JDK
IDE (Eclipse)
- Concepts and organization
- Creating a project
- Creating a class
- Compiling, executing and debugging a Java program
Syntax, basics
- Comments
- Identifiers
- Literals
- Variables
- Primitive types
- Basic operators
- Strings of characters
- Conditional branches
- Loops
- Functions and procedures
- Arrays
- Packages and Imports
- Classpath and java archives (jar)
- Visibility
Basics object concepts
- Object concepts: the origins
- Problem with structured programming
- Object concepts: principle, properties, messages
- Class and instance concepts
- Encapsulation
- Implementation with Java
- Explanation of strings
- Attribute markers
- Method markers
- Constructors
- Use of the constructor, instantiation
- this keyword
- Getters and setters
- Common good and bad practices
Advanced object concepts
- Abstraction, objects and classes
- Inheritance and redefinition
- Abstract class and abstract method
- Understanding polymorphism
- super keyword
- Method overloading
- Understanding polymorphism (again)
- Relationship between classes
- Association
- Aggregation
- Composition
- Dependency
- Reuse
- Implementation with Java
Syntax and advanced concepts
- Operator precedence
- Switch instruction
- Break and continue
- Special characters
- Multidimensional arrays
- System class
- Enumerated types
- Interfaces
- Transtyping (cast)
- instanceof keyword
- Collections
- Wrapper of primitives
- Auto-boxing and auto-unboxing
- Generic types
- Generic collections
- Iterators
- Loop on an Iterable
- varargs” method
- Comparable and Comparator
- Internal class
Exceptions
- principles, use
- Checked exception, Error exception, Runtime exception
- Call stack
- Interception
- Exception handling
- Propagating the exception
- Exception handling
- finally block
Inputs/Outputs
- Inputs/Outputs
- Outputs
- Package java.io
- File flow
- Data flow
- Object flow
- Serialization
Introspection and reflection
- Annotations
- Principle, use
- Creation of annotations
- Code annotation
- Some important annotations
Logging
- Presentation
- Logging APIs
- Log4j components
- Level, Logger, Appenders, Layouts
- Configuration
Multitasking
- Motivation
- Simple thread
- Runnable
- Resource sharing
- Thread management
- Best practices
JDBC
- JDBC architecture and drivers
- Databases and drivers
- Loading the driver
- Connecting to the database
- Executing SQL queries
- ResultSet browsing
- Parameterized query
- Object persistence
- Principle of object/relational mapping
- Illustration with Hibernate
Architecture and design
- MVC model
- Design Patterns
- Singleton
- Facade
- Observer
- State
- Abstract factory
- Visitor
- Inversion of control