Presentation of the language
- Presentation and history of language
- The Java ecosystem: Java SE, Java EE
The development environment
- Presentation of the JDK
- Introduction to Eclipse (Integrated Development Environment)
- Perspectives, views and editors
- Edit, compile and execute code
- Document the code with Javadoc
- Import external libraries
- Wizards, keyboard shortcuts, tips and tricks
- Refactoring: formatting, import management, code generation
Declarations and access control (java.lang)
- JavaBean standard and validity of identifiers
- Declare a class, organization into packages
- Declare members of a class
- Data types: primitive types, references, tables
- Declare a property
- Declare a method: parameters and type of return
- Builder concept, instantiation process
- Abstract classes and interfaces
- Access control
- Visibility modifiers: public, protected, package, private
- Other modifiers: final, static
Object programming (java.lang)
- Introduction to object design, notions of class and instance
- Introduction to UML notation: class and sequence diagrams
- Principles of strong encapsulation and weak coupling
- Composition concept (« HAS-A »)
- Notions of inheritance (« IS-A »), polymorphism, cast
- Overloading (« overloading ») and overriding (« overriding »)
- Notion of object identity: equals and hashCode
Operators (java.lang)
- Assignment
- Equality and comparison
- Boolean operators
- Instanceof
Control structure and exceptions (java.lang)
- Tests: if, switch
- Loops: for, foreach, while, do-while
- Notions of exceptions
- Declaration in the signatures of the methodes
- Capture and treatment with « try/catch »
- Notion of « finally » block
- Hierarchy of exceptions, « checked » vs « runtime »
Paintings and Collections (java.util)
- Collection types: List, Set, Map
- Understanding the collections API: introduction to parameter types (« generics »)
- Choose the right collection
- Browse a collection or table: Iterator concept
- Sort a collection or table: Comparable and Comparator
- Search a collection or table
Formatting and Internationalization (java.text)
- Notion of Locale
- Format dates and numbers with DateFormat and NumberFormat
- Format messages with MessageFormat and ChoiceFormat
- Outsource messages with ResourceBundle
I/O Files (java.io)
- Text flow (Reader/Writer) and binary (Streams)
- Hierarchy of classes of java.io and notion of adapting
- Write and read a text file on disk with BufferedReader and PrintWriter
- Notion of serialization, transient variables
- Write and read a graph of objects on disk with ObjectOutputStream and ObjectInputStream
I/O Network (java.io)
- Network and port address concept
- Socket concept
- Connecting to a server in TCP, reading and writing the stream
- Development of a server
- Notion of protocol, presentation of existing protocols
Access to databases with JDBC (java.sql)
- Opening a connection
- Make a write request
- Perform a read query, ResultSet concept
- Use PreparedStatement