This course introduces you to the power and scalability of Java, one of the most widely used programming languages with abundant career opportunities. You’ll start by learning core OOP concepts like inheritance and polymorphism, along with essential Java keywords, operators, loops, and expressions. The course covers setting up coding tools, code refactoring, and using Java packages effectively. You’ll also explore multithreading, debugging techniques such as stack traces and breakpoints, log analysis, and testing with JUnit. Finally, you’ll gain insight into Java design patterns, equipping you with practical skills to build robust applications.
Who should take this course?
This course is ideal for complete beginners with no prior programming experience who want to start their coding journey with Java. It’s also great for students, aspiring developers, and anyone looking to build a strong foundation in programming basics.
What you will learn
Learn all about Object-Oriented Programming (OOP)
Learn how to debug the Java program
Learn how to use JUnit to test
Learn how to use design pattern practices
Explore the various types of authenticators
Learn how to perform code refactoring
Course Outline
Java 11 Introduction and OOPS Concepts
Learning Objectives
Introduction
Working of Java Program
Object-Oriented Programming
Install and Work with Eclipse
Basic Elements of Java
Unicode Characters
Variables
Data Types
Operators
Logical Operator
Operators Precedence
Type Casting – Type Conversion
Conditional Statements
Nested-if
Loops
'For' Versus 'While' Versus 'Do While'
Access Specifiers
Java 11
'NULL', 'this' and 'instanceof' Operators
Destructors
Code Refactoring
Garbage Collector
Static Code Analysis
String
Arrays – Part 1
Arrays – Part 2
'for each' Loop
Method Overloading
Command-Line Arguments
Parameter Passing Techniques
Types of Parameters
Variable Arguments
Initializer
Demo – Basic Java Program
Demo – Displaying Content
Demo – Quiz Program
Demo – String Functions Program
Demo – Student Record Program
Summary
Utility Packages and Inheritance
Learning Objective
Packages in Java
Demo – Utility Package
Inheritance in Java
Demo – Bank Account Statement Using Inheritance
Object Type Casting
Method Overriding
Demo – House Architecture using Polymorphism
Lambda Expression
Static Variable and Methods
Abstract Classes
Interface in Java
Java Set Interface
Marker Interface
Inner Class
Exception Handling in Java
Demo – Exception Handling
Memory Management
Summary
Multithreading Concepts
Learning Objective
Multithreading
Introduction to Threads
Threads Lifecycle
Thread Priority
Daemon Thread
Thread Scheduling and Sleeping
Thread Synchronization
Wrapper Classes
Autoboxing and Unboxing
'java util' and 'java lang' Classes
javalang – String Class
javautil – StringBuilder and StringTokenizer Classes
javalang – Math Class
javautil – Locale Class
Java Generics
Collections Frameworks
Set Interface in Collections
Hashcode() in Collections
List in Collections
Queues in Collections
Comparator Interface in Collections
Deque in Collections
Map in Collections
'for each' method
Difference: Collections and Array Class
Input Output Stream
Java.io.File Class
Byte Stream Hierarchy
CharacterStream Classes
Serialization
JUnit
Logger – Log4j
Demo – Sorting Student Registration Using Arrays
Demo – Stack, Queue, and Linked List
Demo – Multithreading
Summary
Debugging Concepts
Learning Objective
Debugging Techniques
Tracing and Logging Analysis
Log Levels and Log Analysis
Stack Trace
Logging using Log4j
Best practices of Log4j – Part 1
Best Practices of Log4j – Part 2
Log4j Levels
Eclipse Debugging
Setting Breakpoints
Stepping Through or Variable Inspection
Demo – Analysis of Reports with Logging
Summary
JUnit
Learning Objective
Introduction
Unit Testing
JUnit Test Framework
JUnit Test Framework - Annotation
JUnit Test Framework – Assert Class
JUnit Test Framework – Test Suite
JUnit Test Framework – Exceptions Test
Demo – Generating Report using JUnit
Demo – testing Student Mark System using JUnit
Summary
Java Cryptographic Extensions
Learning Objective
Cryptography
Types of Authenticators
CHACHA20 Stream Cipher and Poly1305 Authenticator
Example Program
Demo – Cryptographic Program
Summary
Design Patterns
Learning Objective
Introduction to Design Patterns
Types of Design Patterns
Creational Patterns
Factory Method Pattern
Demo – Creating a Family of Objects Using the Factory Design Pattern
Singleton Design Pattern
Builder Pattern
Structural Pattern
Adapter Pattern
Bridge Pattern
Facade Pattern
Flyweight Design Pattern
Behavioral Design Pattern
Demo – Loan Approval Process Using Behavioral Design Pattern