Java Programming Level 3: Developer Deep Dive Course Outline
Overview
This is a deep dive course for experienced Java programmers who are looking to take their Java skills to the next professional level. Students will learn: object-oriented design principles; how to make best use of Java libraries; multithreading and concurrent processing; Network, Java GUI, and Functional programming; advanced data processing; and the best design and programming practices
Audience
Students already familiar with Java programming.
Prerequisites
Students should have experience with Java and working knowledge of the skills covered in Core Skills: Level 1 and Core Skills: Level 2. Specifically, you should know how Java works and its place in the world of programming languages; how to work with and manipulate strings; how to perform math operations; how to work with Java operators and loops; Object Oriented Programming concepts; how to make best use of the Java collections framework; best practices for dealing with exceptions; how to package Java code; and how to work with external data storage systems. Additionally, you should be familiar with: applying encryption; working with processes and regular expressions; functional programming with lambda expressions; processing data with streams; functional interfaces; and unit testing.
For more information on the Level 1 and 2 courses, go to:
Java Programming Level 1: Introduction for Programmers
Java Programming Level 2: Advanced Programming Techniques
Course Outline
Section 1: Overview of Java Programming
1 Getting Started with Java 12
How to install and run Java
How to install and run an IDE
Java primitive types and operators
String types and literals
Identifiers and variables
Java statements
2 Java Object-Oriented Programming (OOP)
OOP concepts
Class
Interface
Overloading, overriding, and hiding
Final variable, method, and classes
Polymorphism in action
3 Java Fundamentals
Packages, importing, and access
Java reference types
Reserved and restricted keywords
Usage of the this and super keywords
Converting between primitive types
Converting between primitive and reference types
Section 2: Building Blocks of Java
4 Exception Handling
Java exceptions framework
Checked and unchecked exceptions
The try, catch, and finally blocks
The throws statement
The throw statement
The assert statement
Best practices of exceptions handling
5 Strings, Input/Output, and Files
Strings processing
I/O streams
File management
Apache Commons utilities FileUtils and IOUtils
6 Data Structures, Generics, and Popular Utilities
List, Set, and Map interfaces
Collections utilities
Arrays utilities
Object utilities
java.time package
7 Java Standard and External Libraries
Java Class Library
External libraries
8 Multithreading and Concurrent Processing
Thread versus process
User thread versus daemon
Extending class thread
Implementing interface Runnable
Extending thread vs implementing Runnable
Using pool of threads
Getting results from thread
Parallel vs concurrent processing
Concurrent modification of the same resource
9 JVM Structure and Garbage Collection
Java application execution
Java processes
JVM structure
Garbage collection
10 Managing Data in a Database
Creating a database
Creating a database structure
Connecting to a database
Releasing the connection
CRUD data
11 Network Programming
Network protocols
UDP-based communication
TCP-based communication
UDP versus TCP protocols
URL-based communication
Using the HTTP 2 Client API
12 Java GUI Programming
Java GUI technologies
JavaFX fundamentals
Hello with JavaFX
Control elements
Charts
Applying CSS
Using FXML
Embedding HTML
Playing media
Adding effects
Section 3: Advanced Java
13 Functional Programming
What is functional programming?
Standard functional interfaces
Lambda expression limitations
Method references
14 Java Standard Streams
Streams as a source of data and operations
Stream initialization
Operations (methods)
Numeric stream interfaces
Parallel streams
15 Microservices
What is a microservice?
The size of a microservice
How microservices talk to each other
The reactive system of microservices
View outline in Word
XJVI12