Java Programming 2
Modern Java-kod sträcker sig långt bortom objektorientering och dess tillhörande principer. Den här praktiska kursen, som genomförs med Java 17, syftar till att ge en grund i avancerade ämnen som generics, funktionell programmering, concurrency, annotationer, reflektion och säkerhet (bland andra).
Boka utbildning
Utbildningen lyfter dig till nästa nivå i Java med praktiska kunskaper om de delar av Javas programspråk och standardbibliotek som ligger till grund för modern utveckling i Java.
Kursen är utformad för att noggrant följa den officiella Oracle Java-läroplanen för certifiering. Övningar och exempel används genomgående i kursen för att ge praktisk erfarenhet av de tekniker som täcks.
Målgrupp och förkunskaper
Kursen riktar sig till till befintliga Java-utvecklare som vill bygga vidare på sin grundläggande kunskap för att kunna utnyttja språkets avancerade funktioner fullt ut.
Du behöver förkunskaper i Java motsvarande kursen Java Programming 1 samt praktisk erfarenhet av programmering i Java.
För att alltid hålla en hög kvalitet på våra teknikkurser använder vi både engelsk- och svensktalande experter som kursledare.
Certifieringar
Den här kursen är lämplig om du vill förbereda dig för certifieringstestet Oracle Certified Professional (OCP) Java SE 8 Programmer II: 1Z0-809. Tillsammans med kursen Java Programming 1 är kursen ett bra val om du förbereder dig antingen för certifieringen Oracle Certified Professional (OCP) Java SE 11 Developer: 1Z0-819 eller för Oracle Certified Professional (OCP) Java SE 17 Developer: 1Z0-829.
Certifieringstest ingår inte i kursen.
Detaljerad information
Kursmaterialet är på engelska, med följande innehåll:
Session 1: GENERICS
- Generic types
- Generic methods
- Bounded type parameters
- Generics and inheritance
- Type inference
- Wildcards
- Type erasure
- Restrictions
Session 2: COLLECTIONS
- The Collection interface hierarchy
- Iterable and Iterator
- Collection operations and traversal
- The Collections class
- Collection types (characteristics and implementations) incl. List, Set and Queue
- The Map interface hierarchy
- Map operations and traversal
- Map types (characteristics and implementations)
Session 3: hashCode, equals & compareTo/compare
- The Object class
- Overriding toString
- Equality and membership testing
- Hashing collections
- Overriding hashCode and equals
- The Comparable and Comparator interfaces
- Searching and sorting
- Overriding compareTo and compare
Session 4: NESTED CLASSES
- Static nested classes
- Inner classes
- Shadowing
- Local classes
- Anonymous classes
- Variable capture and effectively final
Session 5: LAMBDA EXPRESSIONS & METHOD REFERENCES
- What is a lambda expression?
- Lambda use case: collection filter
- Lambda syntax
- What is a method reference?
- Method reference use case: collection sort
- Method reference types x 4
Session 6: FUNCTIONAL PROGRAMMING
- What is functional programming?
- Functions as first class objects
- Pure functions
- Higher order functions
- Immutable objects
- Java's functional interfaces
- Functional composition
Session 7: STREAMS
- What is a stream?
- Obtaining/creating a stream
- Intermediate (non-terminal) operations
- Terminal operations
- The Optional class
- The Collectors class
- Stream concatenation
- Primitive streams
Session 8: EXCEPTIONS, ASSERTIONS & LOCALISATION
- Exceptions (a review)
- Custom exceptions
- Try with resources
- Assertions
- Dates and times
- Internationalisation and localisation
- Resource bundles
Session 9: MODULAR APPLICATIONS
- Modules (a review)
- Module types
- Analysing dependencies
- Migrating an existing application
- Creating a service
Session 10: CONCURRENCY
- Low-level threading incl. Runnable, sleep, join
- The Java memory model
- Threading problems incl. race conditions, deadlock, and starvation
- Immutable objects and ThreadLocal
- Thread synchronization incl. volatile, synchronized, atomic data types, and locks
Session 10 (Continued): CONCURRENCY
- ExecutorService, thread pools, Callable, and Future
- Concurrent and immutable collections
- Parallel streams
Session 11: I/O
- Files and directories
- I/O streams
- Common operations
- Binary data, character data, and serialisation
- Console I/O
Session 12: NIO.2
- What is NIO?
- Paths
- Manipulating the filesystem
- File attributes
- Listing, traversing, and searching a directory
Session 13: ANNOTATIONS
- What is an annotation?
- Form and application
- Standard annotations
- Declaring an annotation
Session 14: REFLECTION
- What is reflection?
- Modules, classes, constructors, fields, and methods
- Private members
- Annotations
- Generics and arrays
- Dynamic proxies
- Dynamic class loading
Session 15: SECURITY
- Securing objects
- Injection and input validation
- Handling confidential information
- Serialising and deserialising objects
- Sensitive objects
- Preventing denial of service attacks