Description
We love Programming. Our aim with this course is to create a love for Programming.
Java is one of the most popular programming languages. Java offers both object oriented and functional programming features.
We take an hands-on approach using a combination of JShell(An awesome new feature in Java 9) and Eclipse as an IDE to illustrate more than 200 Java Coding Exercises, Puzzles and Code Examples.
In more than 250 Steps, we explore the most important Java Programming Language Features
Basics of Java Programming - Expressions, Variables and Printing Output
Java Operators - Java Assignment Operator, Relational and Logical Operators, Short Circuit Operators
Java Conditionals and If Statement
Methods - Parameters, Arguments and Return Values
Object Oriented Programming - Class, Object, State and Behavior
Basics of OOPS - Encapsulation, Abstraction, Inheritance and Polymorphism
Basics about Java Data Types - Casting, Operators and More
Java Built in Classes - BigDecimal, String, Java Wrapper Classes
Conditionals with Java - If Else Statement, Nested If Else, Java Switch Statement, Java Ternary Operator
Loops - For Loop, While Loop in Java, Do While Loop, Break and Continue
Immutablity of Java Wrapper Classes, String and BigDecimal
Java Dates - Introduction to LocalDate, LocalTime and LocalDateTime
Java Array and ArrayList - Java String Arrays, Arrays of Objects, Primitive Data Types, toString and Exceptions
Introduction to Variable Arguments
Basics of Designing a Class - Class, Object, State and Behavior. Deciding State and Constructors.
Understanding Object Composition and Inheritance
Java Abstract Class and Interfaces. Introduction to Polymorphism.
Java Collections - List Interface(ArrayList, LinkedList and Vector), Set Interface (HashSet, LinkedHashSet and TreeSet), Queue Interface (PriorityQueue) and Map Interface (HashMap, HashTable, LinkedHashMap and TreeMap() - Compare, Contrast and Choose
Generics - Why do we need Generics? Restrictions with extends and Generic Methods, WildCards - Upper Bound and Lower Bound.
Functional Programming - Lambda Expression, Stream and Operations on a Stream (Intermediate Operations - Sort, Distinct, Filter, Map and Terminal Operations - max, min, collect to List), Functional Interfaces - Predicate Interface,Consumer Interface, Function Inteface for Mapping, Method References - static and instance methods
Introduction to Threads and MultiThreading - Need for Threads
Implementing Threads - Extending Thread Class and Implementing Runnable Interface
States of a Thread and Communication between Threads
Introduction to Executor Service - Customizing number of Active Threads. Returning a Future, invokeAll and invokeAny
Introduction to Exception Handling - Your Thought Process during Exception Handling. try, catch and finally. Exception Hierarchy - Checked Exceptions vs Unchecked Exceptions. Throwing an Exception. Creating and Throwing a Custom Exception - CurrenciesDoNotMatchException. Try with Resources - New Feature in Java 7.
List files and folders in Directory with Files list method, File walk method and find methods. Read and write from a File.
Who is the target audience?
You want to learn Programming
You are a beginner and want to explore Java further
You want to learn the basics of Object Oriented Programming with Java
You want to learn the basics of Functional Programming with Java
Basic knowledge
Connectivity to Internet to download Java 9 and Eclipse.
We will help you install Eclipse and Java 9
Oracle Solaris or 64 bit Microsoft Windows or Linux or macOS
Java 9 does NOT work on 32 bit Microsoft Windows! You would need a 64 bit Microsoft Windows if you would want to use Windows.
What will you learn
You will learn how to think as a Java Programmer
You will learn how to start your journey as a Java Programmer
You will learn the basics of Eclipse IDE and JShell
You will learn to develop awesome object oriented programs with Java
You will solve a wide variety of hands-on exercises with Java
You will learn the basics of programming - variables, choosing a data type, conditional execution, loops, writing great methods, breaking down problems into sub problems and implementing great Exception Handling
You will learn the basics of Object Oriented Programming - Intefaces, Inheritance, Abstract Class and Constructors
You will learn the important concepts of Object Oriented Programming - Abstraction, Inheritance, Encapsulation and Polymorphism
You will learn to do basic functional programming with Java
You will learn the basics of MultiThreading - with Executor Service
You will learn about a wide variety of Collections - List, Map, Set and Queue Interfaces